2016-06-12 19:11:11 -04:00
|
|
|
#pragma once
|
|
|
|
#include "stdafx.h"
|
|
|
|
#include "Snapshotable.h"
|
|
|
|
#include "EmulationSettings.h"
|
|
|
|
|
|
|
|
class BaseExpansionAudio : public Snapshotable
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
double _clocksNeeded = 0;
|
|
|
|
|
|
|
|
protected:
|
|
|
|
virtual void ClockAudio() = 0;
|
|
|
|
|
2016-12-17 23:14:47 -05:00
|
|
|
void StreamState(bool saving) override
|
2016-06-12 19:11:11 -04:00
|
|
|
{
|
|
|
|
Stream(_clocksNeeded);
|
|
|
|
}
|
|
|
|
|
|
|
|
public:
|
|
|
|
void Clock()
|
|
|
|
{
|
2016-06-21 18:58:22 -04:00
|
|
|
if(EmulationSettings::GetOverclockRate(true) == 100) {
|
2016-06-12 19:11:11 -04:00
|
|
|
ClockAudio();
|
|
|
|
} else {
|
2016-06-21 18:58:22 -04:00
|
|
|
_clocksNeeded += 1.0 / ((double)EmulationSettings::GetOverclockRate(true) / 100);
|
2016-06-12 19:11:11 -04:00
|
|
|
while(_clocksNeeded >= 1.0) {
|
|
|
|
ClockAudio();
|
|
|
|
_clocksNeeded--;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|