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
|
||||
}
|
||||
|
||||
#[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 {
|
||||
Header,
|
||||
Data
|
||||
@ -176,10 +191,9 @@ fn db(data: &[u8]) {
|
||||
},
|
||||
[109, 104, 111, 100] => { // mhod
|
||||
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 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);
|
||||
let mut bytes = Vec::new();
|
||||
|
||||
@ -190,10 +204,19 @@ fn db(data: &[u8]) {
|
||||
}
|
||||
h+=1;
|
||||
}
|
||||
//info!("bytes: {:?}", &data[i+header_offset..i+str_end]);
|
||||
let g = String::from_utf8(bytes).unwrap();
|
||||
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
|
||||
}
|
||||
i += u;
|
||||
|
Loading…
x
Reference in New Issue
Block a user