diff --git a/Cargo.toml b/Cargo.toml index 41f4184..f37c677 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "itunesdb" -version = "0.1.68" +version = "0.1.69" edition = "2021" authors = ["alterwain"] diff --git a/src/objects.rs b/src/objects.rs index 4e92b9b..73ec2d8 100644 --- a/src/objects.rs +++ b/src/objects.rs @@ -89,11 +89,11 @@ pub struct DataSet { #[derive(Serialize, Deserialize, PartialEq, Debug)] pub struct AlbumItem { - number_of_strings: u32, - unknown: u16, - album_id_for_track: u16, - timestamp: u64, - unknown1: u32, + pub number_of_strings: u32, + pub unknown: u16, + pub album_id_for_track: u16, + pub timestamp: u64, + pub unknown1: u32, } #[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Copy)] diff --git a/src/xobjects.rs b/src/xobjects.rs index 1d58390..af3c0a4 100644 --- a/src/xobjects.rs +++ b/src/xobjects.rs @@ -329,6 +329,22 @@ impl XDatabase { playlist.data.playlist_item_count -= (s as u32); } } + + fn check_albums(&mut self) { + if let XSomeList::AlbumList(albums) = &mut self.find_dataset(4).child { + *albums = vec![XAlbumItem { + header: ChunkHeader::empty(), + data: AlbumItem { + number_of_strings: 0, + unknown: 158, + album_id_for_track: 0, + timestamp: 4378368642261474841, + unknown1: 2, + }, + args: Vec::new() + }]; + } + } fn add_track_to_playlists(&mut self, n: u32, track: &XTrackItem) { if let XSomeList::Playlists(playlists) = &mut self.find_dataset(n).child { @@ -342,6 +358,7 @@ impl XDatabase { pl_item.data_object_child_count = 1; playlist.elems.push((pl_item, vec![XPlArgument::RawArgument(raw)])); rebuild_quick_sort(playlist); + self.check_albums(); } /*if let XSomeList::Playlists(playlists) = &mut self.find_dataset(n).child {