From 96a121046119e1600ae4566372444d524fcb9466 Mon Sep 17 00:00:00 2001 From: "alterwain@protonmail.com" Date: Sun, 9 Feb 2025 05:54:05 +0300 Subject: [PATCH] modified: outdb modified: src/main.rs modified: src/objects.rs modified: src/xobjects.rs --- outdb | Bin 16862 -> 16862 bytes src/main.rs | 6 ++++-- src/objects.rs | 2 +- src/xobjects.rs | 30 ++++++++++++++++++++++++++++++ 4 files changed, 35 insertions(+), 3 deletions(-) diff --git a/outdb b/outdb index c5aad1a197d3b1c152e3d633811d9a51b6a63f69..98c84f925bdd3e8e8a49ea6c84a8ecb910f9e6b1 100644 GIT binary patch delta 86 zcmccD%y_SvaYF &mut XDataSet { self.children.iter_mut().find(|d| d.data.data_type == data_type).unwrap() } + + pub fn add_track(&mut self, track: XTrackItem) { + self.add_track_to_playlists(2, &track); + self.add_track_to_playlists(3, &track); + + if let XSomeList::TrackList(tracks) = &mut self.find_dataset(1).child { + tracks.push(track); + } + } + + fn add_track_to_playlists(&mut self, n: u32, track: &XTrackItem) { + if let XSomeList::Playlists(playlists) = &mut self.find_dataset(n).child { + let playlist = playlists.last_mut().unwrap(); + playlist.data.playlist_item_count = playlist.data.playlist_item_count + 1; + + let elem = playlist.elems.last().unwrap(); + let mut pl_item = elem.0.clone(); + pl_item.track_id = track.data.unique_id; + + pl_item.group_id = rand::thread_rng().gen_range(10..255); + let mut args = elem.1.clone(); + if let XPlArgument::RawArgument(raw) = args.last_mut().unwrap() { + raw[24] = pl_item.group_id as u8; + } + + playlist.elems.push((pl_item, args)); + } + } } \ No newline at end of file