Improve member name

This commit is contained in:
Jaby 2022-10-23 16:30:51 +02:00
parent f9220ed14f
commit e2750b105e
2 changed files with 8 additions and 8 deletions

View File

@ -1,14 +1,14 @@
use super::{helper::{force_convert_ascii_to_str}, lsb_msb::{EndianFamilyTypes, ReadWriteEndian, LittleEndianFamily, BigEndianFamily}};
pub type PathTableL = PathTableBase<LittleEndianFamily>;
pub type PathTableM = PathTableBase<BigEndianFamily>;
pub type PathTableB = PathTableBase<BigEndianFamily>;
#[repr(packed(1))]
pub struct PathTableBase<EndianFamily: EndianFamilyTypes> {
pub name_length: [u8; 1],
pub extended_attribute_length: [u8; 1],
pub directory_logical_block: EndianFamily::U32,
pub parent_logical_block: EndianFamily::U16,
pub parent_table_id: EndianFamily::U16,
//name: DString<name_length>
//padding: only if name_length is odd
}
@ -19,7 +19,7 @@ impl<EndianFamily: EndianFamilyTypes> PathTableBase<EndianFamily> {
name_length: [name.len() as u8],
extended_attribute_length: [0],
directory_logical_block: EndianFamily::U32::default(),
parent_logical_block: EndianFamily::U16::default(),
parent_table_id: EndianFamily::U16::default(),
};
self.set_name(name);
@ -65,7 +65,7 @@ impl<EndianFamily: EndianFamilyTypes> PathTableBase<EndianFamily> {
impl<EndianFamily: EndianFamilyTypes> std::fmt::Display for PathTableBase<EndianFamily> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
let (dir_block, parent_block) = unsafe {
(std::ptr::addr_of!(self.directory_logical_block).read_unaligned().read(), std::ptr::addr_of!(self.parent_logical_block).read_unaligned().read())
(std::ptr::addr_of!(self.directory_logical_block).read_unaligned().read(), std::ptr::addr_of!(self.parent_table_id).read_unaligned().read())
};
write!(f, "\"{}\" @{} ^{}", self.get_name(), dir_block, parent_block)

View File

@ -12,7 +12,7 @@ use cdtypes::{
dir_record::DirectoryRecord,
helper::sector_count_mode2_form1,
lsb_msb::*,
path_table::{PathTableL, PathTableM},
path_table::{PathTableL, PathTableB},
sector::{AudioSample, Mode2Form1},
}
};
@ -401,7 +401,7 @@ fn write_path_tables(arranged_root_dir: &DirectoryDataType, sectors: &mut Vec<In
};
path_entry.directory_logical_block.write(lba as u32);
path_entry.parent_logical_block.write(parent_table_id as u16);
path_entry.parent_table_id.write(parent_table_id as u16);
raw_buffer.1 += entry_size;
Ok(())
@ -438,10 +438,10 @@ fn write_path_tables(arranged_root_dir: &DirectoryDataType, sectors: &mut Vec<In
let mut idx = 0;
while idx < data_l.len() {
let org_value = unsafe {std::mem::transmute::<&u8, &PathTableL>(&data_l[idx])};
let new_value = unsafe {std::mem::transmute::<&mut u8, &mut PathTableM>(&mut data_l[idx])};
let new_value = unsafe {std::mem::transmute::<&mut u8, &mut PathTableB>(&mut data_l[idx])};
new_value.directory_logical_block.write(org_value.directory_logical_block.read());
new_value.parent_logical_block.write(org_value.parent_logical_block.read());
new_value.parent_table_id.write(org_value.parent_table_id.read());
idx += new_value.get_size();
}