Improve member name
This commit is contained in:
parent
e9f970efa1
commit
00d6bd3ad9
|
@ -1,14 +1,14 @@
|
||||||
use super::{helper::{force_convert_ascii_to_str}, lsb_msb::{EndianFamilyTypes, ReadWriteEndian, LittleEndianFamily, BigEndianFamily}};
|
use super::{helper::{force_convert_ascii_to_str}, lsb_msb::{EndianFamilyTypes, ReadWriteEndian, LittleEndianFamily, BigEndianFamily}};
|
||||||
|
|
||||||
pub type PathTableL = PathTableBase<LittleEndianFamily>;
|
pub type PathTableL = PathTableBase<LittleEndianFamily>;
|
||||||
pub type PathTableM = PathTableBase<BigEndianFamily>;
|
pub type PathTableB = PathTableBase<BigEndianFamily>;
|
||||||
|
|
||||||
#[repr(packed(1))]
|
#[repr(packed(1))]
|
||||||
pub struct PathTableBase<EndianFamily: EndianFamilyTypes> {
|
pub struct PathTableBase<EndianFamily: EndianFamilyTypes> {
|
||||||
pub name_length: [u8; 1],
|
pub name_length: [u8; 1],
|
||||||
pub extended_attribute_length: [u8; 1],
|
pub extended_attribute_length: [u8; 1],
|
||||||
pub directory_logical_block: EndianFamily::U32,
|
pub directory_logical_block: EndianFamily::U32,
|
||||||
pub parent_logical_block: EndianFamily::U16,
|
pub parent_table_id: EndianFamily::U16,
|
||||||
//name: DString<name_length>
|
//name: DString<name_length>
|
||||||
//padding: only if name_length is odd
|
//padding: only if name_length is odd
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ impl<EndianFamily: EndianFamilyTypes> PathTableBase<EndianFamily> {
|
||||||
name_length: [name.len() as u8],
|
name_length: [name.len() as u8],
|
||||||
extended_attribute_length: [0],
|
extended_attribute_length: [0],
|
||||||
directory_logical_block: EndianFamily::U32::default(),
|
directory_logical_block: EndianFamily::U32::default(),
|
||||||
parent_logical_block: EndianFamily::U16::default(),
|
parent_table_id: EndianFamily::U16::default(),
|
||||||
};
|
};
|
||||||
|
|
||||||
self.set_name(name);
|
self.set_name(name);
|
||||||
|
@ -65,7 +65,7 @@ impl<EndianFamily: EndianFamilyTypes> PathTableBase<EndianFamily> {
|
||||||
impl<EndianFamily: EndianFamilyTypes> std::fmt::Display for PathTableBase<EndianFamily> {
|
impl<EndianFamily: EndianFamilyTypes> std::fmt::Display for PathTableBase<EndianFamily> {
|
||||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
let (dir_block, parent_block) = unsafe {
|
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)
|
write!(f, "\"{}\" @{} ^{}", self.get_name(), dir_block, parent_block)
|
||||||
|
|
|
@ -12,7 +12,7 @@ use cdtypes::{
|
||||||
dir_record::DirectoryRecord,
|
dir_record::DirectoryRecord,
|
||||||
helper::sector_count_mode2_form1,
|
helper::sector_count_mode2_form1,
|
||||||
lsb_msb::*,
|
lsb_msb::*,
|
||||||
path_table::{PathTableL, PathTableM},
|
path_table::{PathTableL, PathTableB},
|
||||||
sector::{AudioSample, Mode2Form1},
|
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.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;
|
raw_buffer.1 += entry_size;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
@ -438,10 +438,10 @@ fn write_path_tables(arranged_root_dir: &DirectoryDataType, sectors: &mut Vec<In
|
||||||
let mut idx = 0;
|
let mut idx = 0;
|
||||||
while idx < data_l.len() {
|
while idx < data_l.len() {
|
||||||
let org_value = unsafe {std::mem::transmute::<&u8, &PathTableL>(&data_l[idx])};
|
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.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();
|
idx += new_value.get_size();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue