0.1.63 upd

This commit is contained in:
Michael Wain 2025-02-20 20:20:29 +03:00
parent 22eae1627a
commit af6ec7a913
3 changed files with 19 additions and 2 deletions

2
Cargo.lock generated
View File

@ -90,7 +90,7 @@ checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
[[package]]
name = "itunesdb"
version = "0.1.61"
version = "0.1.63"
dependencies = [
"bincode",
"env_logger",

View File

@ -1,6 +1,6 @@
[package]
name = "itunesdb"
version = "0.1.62"
version = "0.1.63"
edition = "2021"
authors = ["alterwain"]

View File

@ -272,6 +272,23 @@ impl XDatabase {
tracks.push(track);
}
}
pub fn remove_track_from_playlist(&mut self, track_id: u32, pl_id: u64) {
self.remove_track_from_playlist_(track_id, pl_id, 2);
self.remove_track_from_playlist_(track_id, pl_id, 3);
}
fn remove_track_from_playlist_(&mut self, track_id: u32, pl_id: u64, n: u32) {
if let XSomeList::Playlists(playlists ) = &mut self.find_dataset(n).child {
let playlist = playlists.iter_mut().find(|t| t.data.is_master_playlist_flag != 0);
if playlist.is_none() { return; }
let playlist = playlist.unwrap();
let mut s = playlist.elems.len();
playlist.elems.retain_mut(|t| t.0.track_id == track_id);
s -= playlist.elems.len();
playlist.data.playlist_item_count -= (s as u32);
}
}
fn add_track_to_playlists(&mut self, n: u32, track: &XTrackItem) {
if let XSomeList::Playlists(playlists) = &mut self.find_dataset(n).child {