0.1.37 upd
This commit is contained in:
parent
c9135b64dd
commit
766003ce9d
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "itunesdb"
|
name = "itunesdb"
|
||||||
version = "0.1.36"
|
version = "0.1.37"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
authors = ["alterwain"]
|
authors = ["alterwain"]
|
||||||
|
|
||||||
|
@ -101,6 +101,7 @@ pub mod deserializer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub mod serializer {
|
pub mod serializer {
|
||||||
|
use log::info;
|
||||||
use crate::artworkdb::aobjects::ADatabase;
|
use crate::artworkdb::aobjects::ADatabase;
|
||||||
use crate::artworkdb::objects::{ChunkHeader, ChunkType};
|
use crate::artworkdb::objects::{ChunkHeader, ChunkType};
|
||||||
|
|
||||||
@ -108,6 +109,7 @@ pub mod serializer {
|
|||||||
let mut bytes: Vec<u8> = Vec::new();
|
let mut bytes: Vec<u8> = Vec::new();
|
||||||
for i in 0..(adb.children.len()) {
|
for i in 0..(adb.children.len()) {
|
||||||
let data_set = adb.children.get(i).unwrap();
|
let data_set = adb.children.get(i).unwrap();
|
||||||
|
let mut entry_bytes = Vec::new();
|
||||||
for img in data_set.child.iter() {
|
for img in data_set.child.iter() {
|
||||||
let mut args = Vec::new();
|
let mut args = Vec::new();
|
||||||
for arg in img.args.iter() {
|
for arg in img.args.iter() {
|
||||||
@ -119,10 +121,13 @@ pub mod serializer {
|
|||||||
argv.append(&mut generate_header(ChunkType::LocationTag, 12, str_b.len()));
|
argv.append(&mut generate_header(ChunkType::LocationTag, 12, str_b.len()));
|
||||||
argv.append(&mut str_b);
|
argv.append(&mut str_b);
|
||||||
},
|
},
|
||||||
_ => { // 2
|
2 => {
|
||||||
let mut data = [2u32.to_le_bytes(), 0u32.to_le_bytes(), 0u32.to_le_bytes()].concat();
|
let mut data = [2u32.to_le_bytes(), 0u32.to_le_bytes(), 0u32.to_le_bytes()].concat();
|
||||||
argv.append(&mut generate_header(ChunkType::LocationTag, 12, 0));
|
argv.append(&mut generate_header(ChunkType::LocationTag, 12, 0));
|
||||||
argv.append(&mut data);
|
argv.append(&mut data);
|
||||||
|
},
|
||||||
|
_ => {
|
||||||
|
info!("Other datatype found!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,12 +143,28 @@ pub mod serializer {
|
|||||||
let mut item = Vec::new();
|
let mut item = Vec::new();
|
||||||
item.append(&mut generate_header(ChunkType::ImageItem, 40, args.len()));
|
item.append(&mut generate_header(ChunkType::ImageItem, 40, args.len()));
|
||||||
item.append(&mut bincode::serialize(img.data.as_ref().unwrap()).unwrap());
|
item.append(&mut bincode::serialize(img.data.as_ref().unwrap()).unwrap());
|
||||||
|
entry_bytes.append(&mut item);
|
||||||
}
|
}
|
||||||
|
|
||||||
if img.file.is_some() {
|
if img.file.is_some() {
|
||||||
|
entry_bytes.append(&mut generate_header(ChunkType::FileImage, 12, 0));
|
||||||
|
entry_bytes.append(&mut bincode::serialize(img.file.as_ref().unwrap()).unwrap());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
entry_bytes.append(&mut args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
match data_set.data.data_type {
|
||||||
|
1 => {
|
||||||
|
entry_bytes.append(&mut generate_header(ChunkType::ImageList, 80, data_set.child.len()));
|
||||||
|
entry_bytes.append(&mut [0; 76].to_vec());
|
||||||
|
} // Image List
|
||||||
|
_ => { info!("Unknown data_set type!"); }
|
||||||
|
}
|
||||||
|
|
||||||
|
bytes.append(&mut generate_header(ChunkType::DataSet, 84, entry_bytes.len()));
|
||||||
|
bytes.append(&mut [0; 80].to_vec());
|
||||||
|
bytes.append(&mut bincode::serialize(&data_set.data).unwrap())
|
||||||
}
|
}
|
||||||
|
|
||||||
bytes
|
bytes
|
||||||
|
Loading…
x
Reference in New Issue
Block a user