30 #include "sidplayfp/siddefs.h"
31 #include "sidplayfp/SidConfig.h"
32 #include "sidplayfp/SidTuneInfo.h"
34 #include "SidInfoImpl.h"
35 #include "sidrandom.h"
50 namespace libsidplayfp
80 const char *m_errorString;
82 volatile state_t m_isPlaying;
116 bool forced,
const std::vector<unsigned int> &extraSidAddresses);
126 void sidParams(
double cpuFreq,
int frequency,
129 inline void run(
unsigned int events);
135 const SidConfig &config()
const {
return m_cfg; }
137 const SidInfo &info()
const {
return m_info; }
139 bool config(
const SidConfig &cfg,
bool force=
false);
141 bool fastForward(
unsigned int percent);
145 uint_least32_t play(
short *buffer, uint_least32_t samples);
147 bool isPlaying()
const {
return m_isPlaying != STOPPED; }
151 uint_least32_t time()
const {
return m_c64.getTime(); }
153 uint_least32_t timeMs()
const {
return m_c64.getTimeMs(); }
155 void debug(
const bool enable, FILE *out) { m_c64.debug(enable, out); }
157 void mute(
unsigned int sidNum,
unsigned int voice,
bool enable);
159 const char *error()
const {
return m_errorString; }
161 void setRoms(
const uint8_t* kernal,
const uint8_t* basic,
const uint8_t* character);
163 uint_least16_t getCia1TimerA()
const {
return m_c64.getCia1TimerA(); }