modified: src/main.rs
This commit is contained in:
parent
ed5b5638ba
commit
45f90c65d4
31
src/main.rs
31
src/main.rs
@ -127,6 +127,21 @@ struct Entry { // mhod
|
|||||||
unk4: u32
|
unk4: u32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Archive, Deserialize, Serialize, Debug, PartialEq)]
|
||||||
|
#[rkyv(compare(PartialEq), derive(Debug))]
|
||||||
|
struct Playlist {
|
||||||
|
data_object_child_count: u32,
|
||||||
|
playlist_item_count: u32,
|
||||||
|
is_master_playlist_flag: u8,
|
||||||
|
unk: [u8; 3],
|
||||||
|
timestamp: u32,
|
||||||
|
persistent_playlist_id: u64,
|
||||||
|
unk3: u32,
|
||||||
|
string_mhod_count: u16,
|
||||||
|
podcast_flag: u16,
|
||||||
|
list_sort_order: u32
|
||||||
|
}
|
||||||
|
|
||||||
enum ChunkState {
|
enum ChunkState {
|
||||||
Header,
|
Header,
|
||||||
Data
|
Data
|
||||||
@ -176,10 +191,9 @@ fn db(data: &[u8]) {
|
|||||||
},
|
},
|
||||||
[109, 104, 111, 100] => { // mhod
|
[109, 104, 111, 100] => { // mhod
|
||||||
u = usize::try_from(header.children_count).unwrap() - 12;
|
u = usize::try_from(header.children_count).unwrap() - 12;
|
||||||
//info!("head: {}, {}", header.end_of_chunk, header.children_count);
|
|
||||||
let header_offset: usize = (header.end_of_chunk + 4) as usize;
|
let header_offset: usize = (header.end_of_chunk + 4) as usize;
|
||||||
let str_end: usize = (header.children_count - 12) as usize;
|
let str_end: usize = (header.children_count - 12) as usize;
|
||||||
let entry = rkyv::access::<ArchivedEntry, Error>(&data[i..]).unwrap();
|
let entry = rkyv::access::<ArchivedEntry, Error>(&data[i..i+28]).unwrap();
|
||||||
info!("val: {:?}", &entry);
|
info!("val: {:?}", &entry);
|
||||||
let mut bytes = Vec::new();
|
let mut bytes = Vec::new();
|
||||||
|
|
||||||
@ -190,10 +204,19 @@ fn db(data: &[u8]) {
|
|||||||
}
|
}
|
||||||
h+=1;
|
h+=1;
|
||||||
}
|
}
|
||||||
//info!("bytes: {:?}", &data[i+header_offset..i+str_end]);
|
|
||||||
let g = String::from_utf8(bytes).unwrap();
|
let g = String::from_utf8(bytes).unwrap();
|
||||||
info!("str: {}", g);
|
info!("str: {}", g);
|
||||||
}
|
},
|
||||||
|
[0x6D, 0x68, 0x6C, 0x70] => { // mhlp
|
||||||
|
//info!("head: {}, {}", header.end_of_chunk, header.children_count);
|
||||||
|
info!("Playlists count: {}", header.children_count);
|
||||||
|
u = usize::try_from(header.end_of_chunk).unwrap() - 12;
|
||||||
|
},
|
||||||
|
[0x6D, 0x68, 0x79, 0x70] => { // mhyp
|
||||||
|
u = usize::try_from(header.end_of_chunk).unwrap() - 12;
|
||||||
|
let playlist = rkyv::access::<ArchivedPlaylist, Error>(&data[i..i+u]).unwrap();
|
||||||
|
info!("playlist: {:?}", playlist);
|
||||||
|
},
|
||||||
_ => return
|
_ => return
|
||||||
}
|
}
|
||||||
i += u;
|
i += u;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user