73 std::string m_errorString;
77 uint_least32_t m_startTime = 0;
80 uint8_t m_videoSwitch;
82 std::vector<sidemu*> m_chips;
84 std::unique_ptr<SimpleMixer> m_simpleMixer;
113 bool forced,
const std::vector<unsigned int> &extraSidAddresses);
122 void sidParams(
double cpuFreq,
int frequency,
125 inline void run(
unsigned int events);
131 const SidConfig &config()
const {
return m_cfg; }
133 const SidInfo &info()
const {
return m_info; }
135 bool config(
const SidConfig &cfg,
bool force=
false);
139 void buffers(
short** buffers)
const;
141 int play(
unsigned int cycles);
143 uint_least32_t timeMs()
const {
return m_c64.getTimeMs() - m_startTime; }
145 void debug(
const bool enable, FILE *out) { m_c64.debug(enable, out); }
147 void mute(
unsigned int sidNum,
unsigned int voice,
bool enable);
149 void filter(
unsigned int sidNum,
bool enable);
151 const char *error()
const {
return m_errorString.c_str(); }
153 void setKernal(
const uint8_t* rom);
154 void setBasic(
const uint8_t* rom);
155 void setChargen(
const uint8_t* rom);
157 uint_least16_t getCia1TimerA()
const {
return m_c64.getCia1TimerA(); }
159 bool getSidStatus(
unsigned int sidNum, uint8_t regs[32]);
161 unsigned int installedSIDs()
const {
return m_chips.size(); }
163 void initMixer(
bool stereo);
165 unsigned int mix(
short *buffer,
unsigned int samples);
169 int getBufSize(
unsigned int cycles);