0.1.37 upd

This commit is contained in:
Michael Wain 2025-02-17 03:20:37 +03:00
parent c9135b64dd
commit 766003ce9d
2 changed files with 25 additions and 4 deletions

View File

@ -1,6 +1,6 @@
[package]
name = "itunesdb"
version = "0.1.36"
version = "0.1.37"
edition = "2021"
authors = ["alterwain"]

View File

@ -101,6 +101,7 @@ pub mod deserializer {
}
pub mod serializer {
use log::info;
use crate::artworkdb::aobjects::ADatabase;
use crate::artworkdb::objects::{ChunkHeader, ChunkType};
@ -108,6 +109,7 @@ pub mod serializer {
let mut bytes: Vec<u8> = Vec::new();
for i in 0..(adb.children.len()) {
let data_set = adb.children.get(i).unwrap();
let mut entry_bytes = Vec::new();
for img in data_set.child.iter() {
let mut args = Vec::new();
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 str_b);
},
_ => { // 2
2 => {
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 data);
},
_ => {
info!("Other datatype found!");
}
}
@ -138,12 +143,28 @@ pub mod serializer {
let mut item = Vec::new();
item.append(&mut generate_header(ChunkType::ImageItem, 40, args.len()));
item.append(&mut bincode::serialize(img.data.as_ref().unwrap()).unwrap());
entry_bytes.append(&mut item);
}
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