Restructure code to write license
This commit is contained in:
parent
a632b84970
commit
0b5e67582d
|
@ -88,6 +88,47 @@ pub fn encode_psx_image(cd_desc: CDDesc, sec_writer: &mut dyn SectorWriter) -> R
|
|||
}
|
||||
|
||||
fn process_system_area(system_area: &SystemArea, sec_writer: &mut dyn SectorWriter) -> Result<(), Error> {
|
||||
fn write_license_file(sec_writer: &mut dyn SectorWriter) -> Result<(), Error> {
|
||||
fn write_data_zeros(sec_writer: &mut dyn SectorWriter) -> Result<(), Error> {
|
||||
for _ in 0..4 {
|
||||
sec_writer.write_cd_xa_data(builder::create_xa_data_zero())?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn write_license_string(sec_writer: &mut dyn SectorWriter) -> Result<(), Error> {
|
||||
sec_writer.write_cd_xa_data(builder::create_xa_data_zero())?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn write_license_logo(sec_writer: &mut dyn SectorWriter) -> Result<(), Error> {
|
||||
for _ in 0..4 {
|
||||
sec_writer.write_cd_xa_data(builder::create_xa_data_zero())?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn write_audio_zeros(sec_writer: &mut dyn SectorWriter) -> Result<(), Error> {
|
||||
for _ in 0..4 {
|
||||
let sector = {
|
||||
let mut sector = builder::create_xa_audio_zero();
|
||||
|
||||
sector.sub_header.sub_mode.clear_audio();
|
||||
sector
|
||||
};
|
||||
sec_writer.write_cd_xa_audio(sector)?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
write_data_zeros(sec_writer)?;
|
||||
write_license_string(sec_writer)?;
|
||||
write_license_logo(sec_writer)?;
|
||||
write_audio_zeros(sec_writer)
|
||||
}
|
||||
|
||||
let system_area_lba = system_area.track_rel_lba;
|
||||
if system_area_lba != 0 {
|
||||
return Err(Error::from_text(format!("System Area required to start at sector 0 of Track - found LBA: {}", system_area_lba)));
|
||||
|
@ -98,30 +139,13 @@ fn process_system_area(system_area: &SystemArea, sec_writer: &mut dyn SectorWrit
|
|||
for _ in 0..SYSTEM_AREA_SECTOR_COUNT {
|
||||
sec_writer.write_cd_xa_data(builder::create_xa_data_zero())?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
else {
|
||||
for _ in 0..4 {
|
||||
sec_writer.write_cd_xa_data(builder::create_xa_data_zero())?;
|
||||
}
|
||||
|
||||
// Read from CD License file
|
||||
for _ in 0..8 {
|
||||
sec_writer.write_cd_xa_data(builder::create_xa_data_zero())?;
|
||||
}
|
||||
|
||||
for _ in 0..4 {
|
||||
let sector = {
|
||||
let mut sector = builder::create_xa_audio_zero();
|
||||
|
||||
sector.sub_header.sub_mode.clear_audio();
|
||||
sector
|
||||
};
|
||||
sec_writer.write_cd_xa_audio(sector)?;
|
||||
}
|
||||
write_license_file(sec_writer)
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn process_pvd(pvd: &PrimaryVolumeDescriptor, path_table: SharedPtr<PathTable>, root_dir: SharedPtr<Directory>, vol_sector_count: usize, sec_writer: &mut dyn SectorWriter) -> Result<(), Error> {
|
||||
|
|
Loading…
Reference in New Issue