25 #include "audio/audiostream.h" 27 #include "common/func.h" 28 #include "common/ptr.h" 29 #include "common/scummsys.h" 55 kFlagDualOpl2 = (1 << 1),
68 typedef int8 DriverId;
71 const char *description;
99 static DriverId detect(
OplType type);
104 static OPL *create(DriverId driver,
OplType type);
126 static bool _hasInstance;
129 virtual ~
OPL() { _hasInstance =
false; }
136 virtual bool init() = 0;
141 virtual void reset() = 0;
149 virtual void write(
int a,
int v) = 0;
157 virtual byte read(
int a) = 0;
168 virtual void writeReg(
int r,
int v) = 0;
173 void start(TimerCallback *callback,
int timerFrequency = kDefaultCallbackFrequency);
184 virtual void setCallbackFrequency(
int timerFrequency) = 0;
190 kDefaultCallbackFrequency = 250
219 virtual void startCallbacks(
int timerFrequency) = 0;
224 virtual void stopCallbacks() = 0;
232 int _connectionFeedbackValues[3];
247 void setCallbackFrequency(
int timerFrequency);
251 void startCallbacks(
int timerFrequency);
252 void stopCallbacks();
253 virtual void onTimer();
256 static void timerProc(
void *refCon);
259 uint _remainingTicks;
278 void setCallbackFrequency(
int timerFrequency);
281 int readBuffer(int16 *buffer,
const int numSamples);
287 void startCallbacks(
int timerFrequency);
288 void stopCallbacks();
300 virtual void generateSamples(int16 *buffer,
int numSamples) = 0;
Common::Functor0< void > TimerCallback
Definition: fmopl.h:119
static const EmulatorDescription * getAvailable()
Definition: fmopl.h:81
OplType
Definition: fmopl.h:62
Definition: algorithm.h:29
Definition: audiostream.h:50
bool endOfData() const
Definition: fmopl.h:283
Common::ScopedPtr< TimerCallback > _callback
Definition: fmopl.h:229