ROLAND
0.70
Amstrad Emulator based on Caprice Source rewritten in C++.
|
The sound chip of the CPC. More...
#include <sound.h>
Classes | |
union | LoopCount |
union | TCounter |
Public Attributes | |
~Sound() ROLAND_DEFAULT typedef void(Sound typedef void(Sound::* | CaseEnvType )(void) |
uint | low |
uint | high |
struct S { | |
uint low | |
uint high | |
} | s |
tINT64 | both |
struct S { | |
uint low | |
uint high | |
} | s |
tWORD | low |
tWORD | val |
struct S { | |
tWORD low | |
tWORD val | |
} | s |
tDWORD | seed |
tDWORD | low |
tDWORD | high |
struct S { | |
tDWORD low | |
tDWORD high | |
} | s |
Static Private Attributes | |
static const tUWORD | mAmplitudesAY [16] |
static const tDWORD | mFreqTable [5] |
The sound chip of the CPC.
References Sound::init().
|
inline |
References Sound::mSndBits.
Referenced by Sound::calculateLevelTables(), Audio::init(), and Sound::initAY().
|
inline |
References Sound::mSndBuffer.
Referenced by Audio::dist(), Audio::init(), Audio::quit(), and Audio::update().
|
inline |
References Sound::mSndBufferEnd.
Referenced by Audio::dist(), and Audio::update().
|
inline |
References Sound::mBufferFull.
Referenced by Z80::execute().
|
inline |
References Sound::mSndBufferPtr.
Referenced by Audio::dist().
|
inline |
References Sound::mSndBufferSize.
Referenced by Audio::init().
void calculateLevelTables | ( | ) |
References b, Sound::bits(), Sound::mAmplitudesAY, Sound::mIndexAL, Sound::mIndexAR, Sound::mIndexBL, Sound::mIndexBR, Sound::mIndexCL, Sound::mIndexCR, Sound::mLevelAL, Sound::mLevelAR, Sound::mLevelBL, Sound::mLevelBR, Sound::mLevelCL, Sound::mLevelCR, Sound::mLevelPP, Sound::mLevelTape, Sound::mPreAmpMax, r, Sound::stereo(), TAPE_VOLUME, and Sound::volume().
Referenced by Sound::initAY(), and Sound::synthesizer().
void caseEnvType0_3__9 | ( | ) |
References Psg::amplitudeEnv(), Psg::firstPeriod(), Sound::mPsg, Psg::setAmplitudeEnv(), and Psg::setFirstPeriod().
Referenced by Sound::setEnvelopeRegister(), and Sound::synthesizer().
void caseEnvType10 | ( | ) |
References Psg::amplitudeEnv(), Psg::firstPeriod(), Sound::mPsg, Psg::setAmplitudeEnv(), and Psg::setFirstPeriod().
Referenced by Sound::setEnvelopeRegister(), and Sound::synthesizer().
void caseEnvType11 | ( | ) |
References Psg::amplitudeEnv(), Psg::firstPeriod(), Sound::mPsg, Psg::setAmplitudeEnv(), and Psg::setFirstPeriod().
Referenced by Sound::setEnvelopeRegister(), and Sound::synthesizer().
void caseEnvType12 | ( | ) |
References Psg::amplitudeEnv(), Sound::mPsg, and Psg::setAmplitudeEnv().
Referenced by Sound::setEnvelopeRegister(), and Sound::synthesizer().
void caseEnvType13 | ( | ) |
References Psg::amplitudeEnv(), Psg::firstPeriod(), Sound::mPsg, Psg::setAmplitudeEnv(), and Psg::setFirstPeriod().
Referenced by Sound::setEnvelopeRegister(), and Sound::synthesizer().
void caseEnvType14 | ( | ) |
References Psg::amplitudeEnv(), Psg::firstPeriod(), Sound::mPsg, Psg::setAmplitudeEnv(), and Psg::setFirstPeriod().
Referenced by Sound::setEnvelopeRegister(), and Sound::synthesizer().
void caseEnvType4_7__15 | ( | ) |
References Psg::amplitudeEnv(), Psg::firstPeriod(), Sound::mPsg, Psg::setAmplitudeEnv(), and Psg::setFirstPeriod().
Referenced by Sound::setEnvelopeRegister(), and Sound::synthesizer().
void caseEnvType8 | ( | ) |
References Psg::amplitudeEnv(), Sound::mPsg, and Psg::setAmplitudeEnv().
Referenced by Sound::setEnvelopeRegister(), and Sound::synthesizer().
|
inline |
References Sound::mCycleCount.
Referenced by Cpc::waitstates().
|
inline |
References Sound::mCycleCount.
Referenced by Cpc::waitstates().
|
inline |
References Sound::mCycleCountInit.
Referenced by Cpc::waitstates().
|
inline |
References Sound::mCycleCountInit.
Referenced by Cpc::waitstates().
|
inline |
References Sound::mCycleCountInit.
|
inline |
References Sound::mCycleCount.
|
inline |
References Sound::mSndDevice.
Referenced by Sound::synthesizerMixerQMono().
|
inline |
References Sound::mSndEnabled.
Referenced by Audio::init(), Audio::pause(), and Cpc::waitstates().
|
inline |
References Sound::mFreqTable.
Referenced by Audio::init().
void init | ( | Psg * | psg = 0 | ) |
References CYCLE_COUNT_INIT, Sound::mBufferFull, Sound::mCycleCountInit, Sound::mPsg, Sound::mSndBits, Sound::mSndBufferPtr, Sound::mSndBufferSize, Sound::mSndDevice, Sound::mSndEnabled, Sound::mSndPlaybackRate, Sound::mSndStereo, Sound::mSndVolume, n, Psg::registerAY(), and Sound::setAYRegister().
Referenced by Sound::Sound().
void initAY | ( | ) |
References Sound::bits(), Sound::calculateLevelTables(), Sound::initAYCounterVars(), Sound::mIndexAL, Sound::mIndexAR, Sound::mIndexBL, Sound::mIndexBR, Sound::mIndexCL, Sound::mIndexCR, Sound::mPreAmpMax, Sound::resetAYChipEmulation(), Sound::setSynthesizer(), Sound::stereo(), Sound::synthesizerMono16(), Sound::synthesizerMono8(), Sound::synthesizerStereo16(), and Sound::synthesizerStereo8().
Referenced by Audio::init(), and Sound::synthesizer().
void initAYCounterVars | ( | ) |
References Sound::mCycleCountInit, Sound::mFreqTable, Sound::mLoopCount, Sound::mLoopCountInit, and Sound::playbackRate().
Referenced by Sound::initAY(), and Sound::synthesizer().
|
inline |
References Sound::mSndPlaybackRate.
Referenced by Audio::init(), and Sound::initAYCounterVars().
void resetAYChipEmulation | ( | ) |
References Sound::mEnvelopeCounter, Sound::mLeftChan, Sound::mNoise, Sound::mNoiseCounter, Sound::mRightChan, Sound::mTonA, Sound::mTonB, Sound::mTonC, Sound::mTonCounterA, Sound::mTonCounterB, and Sound::mTonCounterC.
Referenced by Sound::initAY(), and Sound::synthesizer().
|
inline |
References Sound::mEnvelopeEnA, Sound::mPsg, and Psg::setAmplitudeA().
Referenced by Sound::setAYRegister(), and Sound::synthesizer().
|
inline |
References Sound::mEnvelopeEnB, Sound::mPsg, and Psg::setAmplitudeB().
Referenced by Sound::setAYRegister(), and Sound::synthesizer().
|
inline |
References Sound::mEnvelopeEnC, Sound::mPsg, and Psg::setAmplitudeC().
Referenced by Sound::setAYRegister(), and Sound::synthesizer().
|
inline |
References Sound::mPsg, Sound::setAmplA(), Sound::setAmplB(), Sound::setAmplC(), Sound::setEnvelopeRegister(), Sound::setMixerRegister(), Psg::setNoise(), and Psg::setRegisterAY().
Referenced by Sound::init(), and Sound::synthesizer().
|
inline |
References Sound::mSndBits.
|
inline |
References Sound::mSndBuffer.
Referenced by Audio::init().
|
inline |
References Sound::mSndBufferEnd.
Referenced by Audio::init().
|
inline |
References Sound::mBufferFull.
|
inline |
References Sound::mSndBufferPtr.
Referenced by Audio::init().
|
inline |
References Sound::mSndBufferPtr.
|
inline |
References Sound::mSndBufferPtr.
Referenced by Sound::synthesizerMono8().
|
inline |
References Sound::mSndBufferPtr.
Referenced by Sound::synthesizerMono16(), and Sound::synthesizerStereo8().
|
inline |
References Sound::mSndBufferSize.
Referenced by Audio::init().
|
inline |
References Sound::mCycleCount.
Referenced by Cpc::waitstates().
|
inline |
References Sound::mCycleCount.
Referenced by Cpc::waitstates().
|
inline |
References Sound::mCycleCountInit.
|
inline |
References Sound::mCycleCount.
|
inline |
References Sound::mSndDevice.
|
inline |
References Sound::mSndEnabled.
|
inline |
References Sound::caseEnvType0_3__9(), Sound::caseEnvType10(), Sound::caseEnvType11(), Sound::caseEnvType12(), Sound::caseEnvType13(), Sound::caseEnvType14(), Sound::caseEnvType4_7__15(), Sound::caseEnvType8(), Sound::mCaseEnvType, Sound::mEnvelopeCounter, Sound::mPsg, Psg::setAmplitudeEnv(), Psg::setEnvType(), and Psg::setFirstPeriod().
Referenced by Sound::setAYRegister(), and Sound::synthesizer().
|
inline |
References Sound::mNoiseEnA, Sound::mNoiseEnB, Sound::mNoiseEnC, Sound::mPsg, Sound::mTonEnA, Sound::mTonEnB, Sound::mTonEnC, and Psg::setMixer().
Referenced by Sound::setAYRegister(), and Sound::synthesizer().
|
inline |
References Sound::mSndPlaybackRate.
|
inline |
References Sound::mSndStereo.
|
inline |
References Sound::mSndStream.
Referenced by Audio::init(), and Audio::update().
|
inline |
References Sound::mSynthesizer.
Referenced by Sound::initAY().
|
inline |
References Sound::mSndVolume.
|
inline |
References Sound::mSndStereo.
Referenced by Sound::calculateLevelTables(), Audio::init(), and Sound::initAY().
|
inline |
References Sound::mSndStream.
Referenced by Audio::dist(), and Audio::update().
|
inline |
References Sound::calculateLevelTables(), Sound::caseEnvType0_3__9(), Sound::caseEnvType10(), Sound::caseEnvType11(), Sound::caseEnvType12(), Sound::caseEnvType13(), Sound::caseEnvType14(), Sound::caseEnvType4_7__15(), Sound::caseEnvType8(), Sound::initAY(), Sound::initAYCounterVars(), Sound::mSynthesizer, Sound::resetAYChipEmulation(), Sound::setAmplA(), Sound::setAmplB(), Sound::setAmplC(), Sound::setAYRegister(), Sound::setEnvelopeRegister(), Sound::setMixerRegister(), Sound::synthesizerLogicQ(), Sound::synthesizerMixerQ(), Sound::synthesizerMixerQMono(), Sound::synthesizerMono16(), Sound::synthesizerMono8(), Sound::synthesizerStereo16(), and Sound::synthesizerStereo8().
Referenced by Cpc::waitstates().
|
inline |
<
<
<
<
References Psg::envelopeLoW(), Sound::mCaseEnvType, Sound::mEnvelopeCounter, Sound::mNoise, Sound::mNoiseCounter, Sound::mPsg, Sound::mTonA, Sound::mTonB, Sound::mTonC, Sound::mTonCounterA, Sound::mTonCounterB, Sound::mTonCounterC, Psg::noise(), Psg::tonALoW(), Psg::tonBLoW(), and Psg::tonCLoW().
Referenced by Sound::synthesizer(), Sound::synthesizerMono16(), Sound::synthesizerMono8(), Sound::synthesizerStereo16(), and Sound::synthesizerStereo8().
|
inline |
<
<
<
References Psg::amplitudeA(), Psg::amplitudeB(), Psg::amplitudeC(), Psg::amplitudeEnv(), Sound::mEnvelopeEnA, Sound::mEnvelopeEnB, Sound::mEnvelopeEnC, Sound::mLeftChan, Sound::mLevelAL, Sound::mLevelAR, Sound::mLevelBL, Sound::mLevelBR, Sound::mLevelCL, Sound::mLevelCR, Sound::mLevelTape, Sound::mNoise, Sound::mNoiseEnA, Sound::mNoiseEnB, Sound::mNoiseEnC, Sound::mPsg, Sound::mRightChan, Sound::mTapeLevel, Sound::mTonA, Sound::mTonB, Sound::mTonC, Sound::mTonEnA, Sound::mTonEnB, Sound::mTonEnC, Psg::tonALoW(), Psg::tonBLoW(), and Psg::tonCLoW().
Referenced by Sound::synthesizer(), Sound::synthesizerStereo16(), and Sound::synthesizerStereo8().
|
inline |
<
<
<
References Psg::amplitudeA(), Psg::amplitudeB(), Psg::amplitudeC(), Psg::amplitudeEnv(), Sound::device(), Sound::mEnvelopeEnA, Sound::mEnvelopeEnB, Sound::mEnvelopeEnC, Sound::mLeftChan, Sound::mLevelAL, Sound::mLevelBL, Sound::mLevelCL, Sound::mLevelTape, Sound::mNoise, Sound::mNoiseEnA, Sound::mNoiseEnB, Sound::mNoiseEnC, Sound::mPsg, Sound::mTapeLevel, Sound::mTonA, Sound::mTonB, Sound::mTonC, Sound::mTonEnA, Sound::mTonEnB, Sound::mTonEnC, Psg::tonALoW(), Psg::tonBLoW(), and Psg::tonCLo().
Referenced by Sound::synthesizer(), Sound::synthesizerMono16(), and Sound::synthesizerMono8().
void synthesizerMono16 | ( | ) |
void synthesizerMono8 | ( | ) |
void synthesizerStereo16 | ( | ) |
References Sound::mBufferFull, Sound::mLeftChan, Sound::mLoopCount, Sound::mLoopCountInit, Sound::mRightChan, Sound::mSndBuffer, Sound::mSndBufferEnd, Sound::mSndBufferPtr, Sound::synthesizerLogicQ(), Sound::synthesizerMixerQ(), and Sound::val.
Referenced by Sound::initAY(), and Sound::synthesizer().
void synthesizerStereo8 | ( | ) |
References Sound::mBufferFull, Sound::mLeftChan, Sound::mLoopCount, Sound::mLoopCountInit, Sound::mRightChan, Sound::mSndBuffer, Sound::mSndBufferEnd, Sound::mSndBufferPtr, Sound::setBufferPtrW(), Sound::synthesizerLogicQ(), Sound::synthesizerMixerQ(), and Sound::val.
Referenced by Sound::initAY(), and Sound::synthesizer().
|
inline |
References Sound::mSndVolume.
Referenced by Sound::calculateLevelTables().
tINT64 both |
~Sound () ROLAND_DEFAULT typedef void (Sound typedef void(Sound::* CaseEnvType) (void) |
uint high |
tDWORD high |
uint low |
tWORD low |
tDWORD low |
|
staticprivate |
Referenced by Sound::calculateLevelTables().
|
private |
|
private |
Referenced by Sound::setEnvelopeRegister(), and Sound::synthesizerLogicQ().
union { ... } mCycleCount |
union { ... } mCycleCountInit |
union { ... } mEnvelopeCounter |
Referenced by Sound::resetAYChipEmulation(), Sound::setEnvelopeRegister(), and Sound::synthesizerLogicQ().
|
private |
Referenced by Sound::setAmplA(), Sound::synthesizerMixerQ(), and Sound::synthesizerMixerQMono().
|
private |
Referenced by Sound::setAmplB(), Sound::synthesizerMixerQ(), and Sound::synthesizerMixerQMono().
|
private |
Referenced by Sound::setAmplC(), Sound::synthesizerMixerQ(), and Sound::synthesizerMixerQMono().
|
staticprivate |
Referenced by Sound::freqTable(), and Sound::initAYCounterVars().
|
private |
Referenced by Sound::calculateLevelTables(), and Sound::initAY().
|
private |
Referenced by Sound::calculateLevelTables(), and Sound::initAY().
|
private |
Referenced by Sound::calculateLevelTables(), and Sound::initAY().
|
private |
Referenced by Sound::calculateLevelTables(), and Sound::initAY().
|
private |
Referenced by Sound::calculateLevelTables(), and Sound::initAY().
|
private |
Referenced by Sound::calculateLevelTables(), and Sound::initAY().
|
private |
|
private |
Referenced by Sound::calculateLevelTables(), Sound::synthesizerMixerQ(), and Sound::synthesizerMixerQMono().
|
private |
Referenced by Sound::calculateLevelTables(), and Sound::synthesizerMixerQ().
|
private |
Referenced by Sound::calculateLevelTables(), Sound::synthesizerMixerQ(), and Sound::synthesizerMixerQMono().
|
private |
Referenced by Sound::calculateLevelTables(), and Sound::synthesizerMixerQ().
|
private |
Referenced by Sound::calculateLevelTables(), Sound::synthesizerMixerQ(), and Sound::synthesizerMixerQMono().
|
private |
Referenced by Sound::calculateLevelTables(), and Sound::synthesizerMixerQ().
|
private |
Referenced by Sound::calculateLevelTables().
|
private |
Referenced by Sound::calculateLevelTables(), Sound::synthesizerMixerQ(), and Sound::synthesizerMixerQMono().
|
private |
|
private |
|
private |
union { ... } mNoise |
|
private |
Referenced by Sound::resetAYChipEmulation(), and Sound::synthesizerLogicQ().
|
private |
Referenced by Sound::setMixerRegister(), Sound::synthesizerMixerQ(), and Sound::synthesizerMixerQMono().
|
private |
Referenced by Sound::setMixerRegister(), Sound::synthesizerMixerQ(), and Sound::synthesizerMixerQMono().
|
private |
Referenced by Sound::setMixerRegister(), Sound::synthesizerMixerQ(), and Sound::synthesizerMixerQMono().
|
private |
|
private |
Referenced by Sound::calculateLevelTables(), and Sound::initAY().
|
private |
Referenced by Sound::caseEnvType0_3__9(), Sound::caseEnvType10(), Sound::caseEnvType11(), Sound::caseEnvType12(), Sound::caseEnvType13(), Sound::caseEnvType14(), Sound::caseEnvType4_7__15(), Sound::caseEnvType8(), Sound::init(), Sound::setAmplA(), Sound::setAmplB(), Sound::setAmplC(), Sound::setAYRegister(), Sound::setEnvelopeRegister(), Sound::setMixerRegister(), Sound::synthesizerLogicQ(), Sound::synthesizerMixerQ(), and Sound::synthesizerMixerQMono().
|
private |
|
private |
Referenced by Sound::bits(), Sound::init(), and Sound::setBits().
|
private |
|
private |
|
private |
|
private |
Referenced by Sound::bufferSize(), Sound::init(), and Sound::setBufferSize().
|
private |
Referenced by Sound::device(), Sound::init(), and Sound::setDevice().
|
private |
Referenced by Sound::enabled(), Sound::init(), and Sound::setEnabled().
|
private |
Referenced by Sound::init(), Sound::playbackRate(), and Sound::setPlaybackRate().
|
private |
Referenced by Sound::init(), Sound::setStereo(), and Sound::stereo().
|
private |
Referenced by Sound::setStream(), and Sound::stream().
|
private |
Referenced by Sound::init(), Sound::setVolume(), and Sound::volume().
|
private |
Referenced by Sound::setSynthesizer(), and Sound::synthesizer().
|
private |
Referenced by Sound::synthesizerMixerQ(), and Sound::synthesizerMixerQMono().
|
private |
|
private |
|
private |
|
private |
Referenced by Sound::resetAYChipEmulation(), and Sound::synthesizerLogicQ().
|
private |
Referenced by Sound::resetAYChipEmulation(), and Sound::synthesizerLogicQ().
|
private |
Referenced by Sound::resetAYChipEmulation(), and Sound::synthesizerLogicQ().
|
private |
Referenced by Sound::setMixerRegister(), Sound::synthesizerMixerQ(), and Sound::synthesizerMixerQMono().
|
private |
Referenced by Sound::setMixerRegister(), Sound::synthesizerMixerQ(), and Sound::synthesizerMixerQMono().
|
private |
Referenced by Sound::setMixerRegister(), Sound::synthesizerMixerQ(), and Sound::synthesizerMixerQMono().
struct { ... } ::S s |
struct { ... } ::S s |
struct { ... } ::S s |
struct { ... } ::S s |
tDWORD seed |
tWORD val |
Referenced by Sound::synthesizerStereo16(), and Sound::synthesizerStereo8().