diff --git a/src/Tools/psxcdgen_ex/src/encoder/mod.rs b/src/Tools/psxcdgen_ex/src/encoder/mod.rs index 2064fdc7..19929cd1 100644 --- a/src/Tools/psxcdgen_ex/src/encoder/mod.rs +++ b/src/Tools/psxcdgen_ex/src/encoder/mod.rs @@ -1 +1,5 @@ -pub mod psx; \ No newline at end of file +use super::{file_writer::SectorWriter, types::{CDDesc, Error}}; + +pub mod psx; + +pub type EncoderFunction = fn(CDDesc, &mut dyn SectorWriter) -> Result<(), Error>; \ No newline at end of file diff --git a/src/Tools/psxcdgen_ex/src/encoder/psx.rs b/src/Tools/psxcdgen_ex/src/encoder/psx.rs index e69de29b..1e67ddca 100644 --- a/src/Tools/psxcdgen_ex/src/encoder/psx.rs +++ b/src/Tools/psxcdgen_ex/src/encoder/psx.rs @@ -0,0 +1,5 @@ +use super::{SectorWriter, {CDDesc, Error}}; + +pub fn encode_psx_image(_: CDDesc, _: &mut dyn SectorWriter) -> Result<(), Error> { + Err(Error::not_implemented("encode_psx_image")) +} \ No newline at end of file diff --git a/src/Tools/psxcdgen_ex/src/file_writer/mod.rs b/src/Tools/psxcdgen_ex/src/file_writer/mod.rs index 08a6f6fa..2b2e453f 100644 --- a/src/Tools/psxcdgen_ex/src/file_writer/mod.rs +++ b/src/Tools/psxcdgen_ex/src/file_writer/mod.rs @@ -1,7 +1,7 @@ pub mod bin_cue; +use super::{encoder::EncoderFunction, types::CDDesc}; use bin_cue::BinCueWriter; -use super::types::CDDesc; use std::path::PathBuf; use tool_helper::{Error, open_output_file}; @@ -14,12 +14,12 @@ pub trait SectorWriter { fn sector_written_count(&self) -> usize; } -pub fn write_image(_cd_desc: CDDesc, image_type: ImageType, output_path: PathBuf) -> Result<(), Error> { +pub fn write_image(cd_desc: CDDesc, encoder: EncoderFunction, image_type: ImageType, output_path: PathBuf) -> Result<(), Error> { match image_type { ImageType::BinCue => { - let mut _writer = BinCueWriter::new(open_output_file(output_path)?); + let mut writer = BinCueWriter::new(open_output_file(output_path)?); - Ok(()) + encoder(cd_desc, &mut writer) } } } \ No newline at end of file diff --git a/src/Tools/psxcdgen_ex/src/lib.rs b/src/Tools/psxcdgen_ex/src/lib.rs index c05ae5b6..56694d6f 100644 --- a/src/Tools/psxcdgen_ex/src/lib.rs +++ b/src/Tools/psxcdgen_ex/src/lib.rs @@ -1,2 +1,3 @@ +pub mod encoder; pub mod file_writer; pub mod types; \ No newline at end of file diff --git a/src/Tools/psxcdgen_ex/src/main.rs b/src/Tools/psxcdgen_ex/src/main.rs index 1b82b6d8..159d2aea 100644 --- a/src/Tools/psxcdgen_ex/src/main.rs +++ b/src/Tools/psxcdgen_ex/src/main.rs @@ -1,4 +1,4 @@ -use psxcdgen_ex::{file_writer::{ImageType, write_image}, types::{layout::Layout, CDDesc, File, Directory}}; +use psxcdgen_ex::{encoder::psx::encode_psx_image, file_writer::{ImageType, write_image}, types::{layout::Layout, CDDesc, File, Directory}}; use std::{path::PathBuf, str::FromStr}; use tool_helper::Error; @@ -54,7 +54,8 @@ fn run_main() -> Result<(), Error> { println!("{}", rand_item.0); } - write_image(desc, ImageType::BinCue, PathBuf::from_str("planschi.bin")?) + println!("\n<== Planschbecken ==>\nStart encoding"); + write_image(desc, encode_psx_image, ImageType::BinCue, PathBuf::from_str("planschi.bin")?) } fn main() { diff --git a/src/Tools/psxcdgen_ex/src/types/mod.rs b/src/Tools/psxcdgen_ex/src/types/mod.rs index 48ac9c69..c6d5ff25 100644 --- a/src/Tools/psxcdgen_ex/src/types/mod.rs +++ b/src/Tools/psxcdgen_ex/src/types/mod.rs @@ -5,9 +5,9 @@ pub mod file_map; use cdtypes::types::{cdstring::DString, dir_record::DirectoryRecord, helper::{round_bytes_mode2_form1, sector_count_mode2_form1}, sector::*, path_table::PathTableL}; use file_map::FileSystemMap; use layout::Layout; -use tool_helper::Error; use std::{cell::RefCell, rc::Rc}; +pub use tool_helper::Error; pub type SharedPtr = Rc>; pub fn new_shared_ptr(value: T) -> SharedPtr {