#ifndef __JABYENGINE_CD_FILE_PROCESSOR_HPP__ #define __JABYENGINE_CD_FILE_PROCESSOR_HPP__ #include "../../AutoLBA/auto_lba.hpp" #include "../../Auxiliary/circular_buffer.hpp" #include "../../Auxiliary/lz4_decompressor.hpp" #include "../../System/IOPorts/cd_io.hpp" #include "../cd_file_types.hpp" #include "file_processor.hpp" extern "C" uint32_t __heap_base; namespace JabyEngine { class CDFileProcessor { public: struct JobArray { const CDFile* files = nullptr; size_t size = 0; }; private: FileProcessor::State file_pro_state; CircularBuffer circular_buffer; LZ4Decompressor lz4_decomp; JobArray jobs; uint8_t* work_area = nullptr; const AutoLBAEntry* lba = nullptr; void start_cur_job(); public: CDFileProcessor() = default; void setup(const volatile AutoLBAEntry* lba, JobArray jobs, uint8_t* work_area = reinterpret_cast(&__heap_base)); Progress process(); }; } // This will be used as the file processor but will work on cd types // Will probably use file_processor // Will also setup the circular buffer for the CD code #endif //!__JABYENGINE_CD_FILE_PROCESSOR_HPP__