(Re)store currently playing track + shuffle state

Solves #448
This commit is contained in:
Henrik Friedrichsen
2021-04-09 19:10:34 +02:00
parent d0db141c2d
commit cea5228245
5 changed files with 61 additions and 25 deletions

View File

@@ -60,12 +60,21 @@ pub struct SortingOrder {
pub direction: SortDirection,
}
#[derive(Serialize, Default, Deserialize, Debug, Clone)]
pub struct QueueState {
pub current_track: Option<usize>,
pub random_order: Option<Vec<usize>>,
pub track_progress: std::time::Duration,
pub queue: Vec<Playable>,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct UserState {
pub volume: u16,
pub shuffle: bool,
pub repeat: queue::RepeatSetting,
pub queue: Vec<Playable>,
pub queuestate: QueueState,
#[serde(serialize_with = "toml::ser::tables_last")]
pub playlist_orders: HashMap<String, SortingOrder>,
}
@@ -75,7 +84,7 @@ impl Default for UserState {
volume: u16::max_value(),
shuffle: false,
repeat: queue::RepeatSetting::None,
queue: Vec::new(),
queuestate: QueueState::default(),
playlist_orders: HashMap::new(),
}
}