modified: outdb

modified:   src/main.rs
	modified:   src/xobjects.rs
This commit is contained in:
Michael Wain 2025-02-09 16:32:32 +03:00
parent 96a1210461
commit de2c8bb1be
3 changed files with 33 additions and 1 deletions

BIN
outdb

Binary file not shown.

View File

@ -33,6 +33,20 @@ fn main() {
let unique_id = rand::thread_rng().gen_range(10..999); let unique_id = rand::thread_rng().gen_range(10..999);
if let XSomeList::TrackList(tracks) = &mut xdb.find_dataset(1).child { if let XSomeList::TrackList(tracks) = &mut xdb.find_dataset(1).child {
let mut item = (*tracks.last().unwrap()).clone();
let mut xargs = Vec::new();
xargs.push(XArgument { arg_type: 1, val: String::from("They beat you") });
xargs.push(XArgument { arg_type: 6, val: String::from("MPEG audio file")});
xargs.push(XArgument { arg_type: 2, val: String::from(":iPod_Control:Music:F38:ZXXX.mp3") });
item.args = xargs;
item.data.number_of_strings = 3;
item.data.unique_id = unique_id;
item.data.dbid = rand::thread_rng().gen_range(10000..100000);
item.data.dbid2 = item.data.dbid;
xdb.add_track(item);
}
/*if let XSomeList::TrackList(tracks) = &mut xdb.find_dataset(1).child {
let mut item = (*tracks.last().unwrap()).clone(); let mut item = (*tracks.last().unwrap()).clone();
let mut xargs = Vec::new(); let mut xargs = Vec::new();
xargs.push(XArgument { arg_type: 1, val: String::from("They beat you") }); xargs.push(XArgument { arg_type: 1, val: String::from("They beat you") });
@ -75,7 +89,7 @@ fn main() {
} }
playlist.elems.push((pl_item, args)); playlist.elems.push((pl_item, args));
} }*/
let mut op = File::create("outdb").unwrap(); let mut op = File::create("outdb").unwrap();
info!("Write res: {:?}", op.write(&serializer::to_bytes(xdb))); info!("Write res: {:?}", op.write(&serializer::to_bytes(xdb)));

View File

@ -77,6 +77,24 @@ impl XDatabase {
self.children.iter_mut().find(|d| d.data.data_type == data_type).unwrap() self.children.iter_mut().find(|d| d.data.data_type == data_type).unwrap()
} }
pub fn remove_track(&mut self, unique_id: u32) {
if let XSomeList::TrackList(tracks) = &mut self.find_dataset(1).child {
tracks.retain_mut(|t| t.data.unique_id != unique_id);
}
if let XSomeList::Playlists(playlists) = &mut self.find_dataset(2).child {
for playlist in playlists.iter_mut() {
playlist.elems.retain_mut(|t| t.0.track_id != unique_id);
}
}
if let XSomeList::Playlists(playlists) = &mut self.find_dataset(3).child {
for playlist in playlists.iter_mut() {
playlist.elems.retain_mut(|t| t.0.track_id != unique_id);
}
}
}
pub fn add_track(&mut self, track: XTrackItem) { pub fn add_track(&mut self, track: XTrackItem) {
self.add_track_to_playlists(2, &track); self.add_track_to_playlists(2, &track);
self.add_track_to_playlists(3, &track); self.add_track_to_playlists(3, &track);