31 #include "SidConfig.h"
32 #include "SidTuneInfo.h"
33 #include "SidInfoImpl.h"
34 #include "sidrandom.h"
54 SIDPLAYFP_NAMESPACE_START
68 configError(
const char* msg) : m_msg(msg) {}
69 const char* message()
const {
return m_msg; }
83 const char *m_errorString;
85 volatile bool m_isPlaying;
93 c64::model_t c64model(SidConfig::c64_model_t defaultModel,
bool forced);
96 void sidCreate(
sidbuilder *builder, SidConfig::sid_model_t defaultModel,
97 bool forced,
unsigned int channels);
98 void sidParams(
double cpuFreq,
int frequency,
99 SidConfig::sampling_method_t sampling,
bool fastSampling);
101 static SidConfig::sid_model_t getModel (SidTuneInfo::model_t sidModel, SidConfig::sid_model_t defaultModel,
bool forced);
103 #ifdef PC64_TESTSUITE
104 void load(
const char *file)
106 std::string name(PC64_TESTSUITE);
110 m_tune->
load(name.c_str());
120 const SidConfig &config()
const {
return m_cfg; }
122 const SidInfo &info()
const {
return m_info; }
126 bool fastForward(
unsigned int percent);
132 uint_least32_t play(
short *buffer, uint_least32_t samples);
134 bool isPlaying()
const {
return m_isPlaying; }
138 uint_least32_t time()
const {
return (uint_least32_t)(m_c64.
getEventScheduler().
getTime(EVENT_CLOCK_PHI1) / cpuFreq()); }
140 void debug(
const bool enable, FILE *out) { m_c64.debug (enable, out); }
142 void mute(
unsigned int sidNum,
unsigned int voice,
bool enable);
144 const char *error()
const {
return m_errorString; }
146 void setRoms(
const uint8_t* kernal,
const uint8_t* basic,
const uint8_t* character);
150 uint_least16_t getCia1TimerA()
const {
return m_c64.getCia1TimerA(); }
153 SIDPLAYFP_NAMESPACE_STOP