mirror of
https://github.com/librespot-org/librespot.git
synced 2024-11-08 16:45:43 +00:00
Disable gapless playback via runtime flag (#444)
* Enable gapless playback via runtime flag * Set gapless playback as default, use `--disable-gapless` to turn it off * Ensure sink restarts b/w tracks when gapless is disabled
This commit is contained in:
parent
66f8a98ad2
commit
ef27b4bce3
3 changed files with 11 additions and 1 deletions
|
@ -30,6 +30,7 @@ pub struct PlayerConfig {
|
|||
pub bitrate: Bitrate,
|
||||
pub normalisation: bool,
|
||||
pub normalisation_pregain: f32,
|
||||
pub gapless: bool,
|
||||
}
|
||||
|
||||
impl Default for PlayerConfig {
|
||||
|
@ -38,6 +39,7 @@ impl Default for PlayerConfig {
|
|||
bitrate: Bitrate::default(),
|
||||
normalisation: false,
|
||||
normalisation_pregain: 0.0,
|
||||
gapless: true,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1065,6 +1065,9 @@ impl PlayerInternal {
|
|||
play: bool,
|
||||
position_ms: u32,
|
||||
) {
|
||||
if !self.config.gapless {
|
||||
self.ensure_sink_stopped();
|
||||
}
|
||||
// emit the correct player event
|
||||
match self.state {
|
||||
PlayerState::Playing {
|
||||
|
|
|
@ -180,6 +180,11 @@ fn setup(args: &[String]) -> Setup {
|
|||
"",
|
||||
"autoplay",
|
||||
"autoplay similar songs when your music ends.",
|
||||
)
|
||||
.optflag(
|
||||
"",
|
||||
"disable-gapless",
|
||||
"disable gapless playback.",
|
||||
);
|
||||
|
||||
let matches = match opts.parse(&args[1..]) {
|
||||
|
@ -312,9 +317,9 @@ fn setup(args: &[String]) -> Setup {
|
|||
.as_ref()
|
||||
.map(|bitrate| Bitrate::from_str(bitrate).expect("Invalid bitrate"))
|
||||
.unwrap_or(Bitrate::default());
|
||||
|
||||
PlayerConfig {
|
||||
bitrate: bitrate,
|
||||
gapless: !matches.opt_present("disable-gapless"),
|
||||
normalisation: matches.opt_present("enable-volume-normalisation"),
|
||||
normalisation_pregain: matches
|
||||
.opt_str("normalisation-pregain")
|
||||
|
|
Loading…
Reference in a new issue