gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

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 };