27 #include "SidConfig.h"
29 #include "SidTuneInfo.h"
30 #include "SidInfoImpl.h"
31 #include "sidrandom.h"
44 SIDPLAYFP_NAMESPACE_START
58 configError(
const char* msg) : m_msg(msg) {}
59 const char* message()
const {
return m_msg; }
73 const char *m_errorString;
75 volatile bool m_isPlaying;
80 c64::model_t c64model(SidConfig::c64_model_t defaultModel,
bool forced);
83 void sidCreate(
sidbuilder *builder, SidConfig::sid_model_t defaultModel,
84 bool forced,
unsigned int channels);
85 void sidParams(
double cpuFreq,
int frequency,
86 SidConfig::sampling_method_t sampling,
bool fastSampling);
88 static SidConfig::sid_model_t getModel (SidTuneInfo::model_t sidModel, SidConfig::sid_model_t defaultModel,
bool forced);
91 void load(
const char *file)
93 char name[0x100] = PC64_TESTSUITE;
95 strcat (name,
".prg");
107 const SidConfig &config()
const {
return m_cfg; }
109 const SidInfo &info()
const {
return m_info; }
113 bool fastForward(
unsigned int percent);
119 uint_least32_t play(
short *buffer, uint_least32_t samples);
121 bool isPlaying()
const {
return m_isPlaying; }
125 uint_least32_t time()
const {
return (uint_least32_t)(m_c64.
getEventScheduler().
getTime(EVENT_CLOCK_PHI1) / cpuFreq()); }
127 void debug(
const bool enable, FILE *out) { m_c64.debug (enable, out); }
129 void mute(
unsigned int sidNum,
unsigned int voice,
bool enable);
131 const char *error()
const {
return m_errorString; }
133 void setRoms(
const uint8_t* kernal,
const uint8_t* basic,
const uint8_t* character);
137 uint_least16_t getCia1TimerA()
const {
return m_c64.getCia1TimerA(); }
140 SIDPLAYFP_NAMESPACE_STOP