consoleApp.h (1262B)
1 #pragma once 2 #include <string> 3 4 #include "virusLib/romfile.h" 5 #include "virusLib/microcontroller.h" 6 #include "virusLib/demoplayback.h" 7 #include "virusLib/dspSingle.h" 8 9 class ConsoleApp 10 { 11 public: 12 ConsoleApp(const std::string& _romFile, virusLib::DeviceModel _tiModel); 13 ~ConsoleApp(); 14 15 bool isValid() const; 16 17 void loadSingle(int b, int p); 18 bool loadSingle(const std::string& _preset); 19 20 bool loadDemo(const std::string& _filename); 21 bool loadInternalDemo(); 22 23 std::string getSingleName() const; 24 std::string getSingleNameAsFilename() const; 25 26 static void waitReturn(); 27 28 void run(const std::string& _audioOutputFilename, uint32_t _maxSampleCount = 0, uint32_t _blockSize = 64, bool _createDebugger = false, bool _dumpAssembler = false); 29 30 const virusLib::ROMFile& getRom() const { return m_rom; } 31 32 private: 33 34 void bootDSP(bool _createDebugger) const; 35 dsp56k::IPeripherals& getYPeripherals() const; 36 void audioCallback(uint32_t _audioCallbackCount); 37 void destroy(); 38 39 const std::string m_romName; 40 virusLib::ROMFile m_rom; 41 std::unique_ptr<virusLib::DspSingle> m_dsp1; 42 virusLib::DspSingle* m_dsp2 = nullptr; 43 std::unique_ptr<virusLib::Microcontroller> m_uc; 44 std::unique_ptr<virusLib::DemoPlayback> m_demo; 45 46 virusLib::Microcontroller::TPreset m_preset; 47 };