openMSX
|
#include <SCC.hh>
Public Types | |
enum class | Mode { Real , Compatible , Plus } |
Public Types inherited from openmsx::ResampledSoundDevice | |
enum class | ResampleType { HQ , BLIP } |
Public Member Functions | |
SCC (const std::string &name, const DeviceConfig &config, EmuTime::param time, Mode mode=Mode::Real) | |
~SCC () | |
void | powerUp (EmuTime::param time) |
void | reset (EmuTime::param time) |
uint8_t | readMem (uint8_t address, EmuTime::param time) |
uint8_t | peekMem (uint8_t address, EmuTime::param time) const |
void | writeMem (uint8_t address, uint8_t value, EmuTime::param time) |
void | setMode (Mode newMode) |
const std::array< std::array< int8_t, 32 >, 5 > & | getWaveData () const |
template<typename Archive > | |
void | serialize (Archive &ar, unsigned version) |
Public Member Functions inherited from openmsx::ResampledSoundDevice | |
bool | generateInput (float *buffer, size_t num) |
Note: To enable various optimizations (like SSE), this method is allowed to generate up to 3 extra sample. | |
DynamicClock & | getEmuClock () |
Public Member Functions inherited from openmsx::SoundDevice | |
SoundDevice (const SoundDevice &)=delete | |
SoundDevice (SoundDevice &&)=delete | |
SoundDevice & | operator= (const SoundDevice &)=delete |
SoundDevice & | operator= (SoundDevice &&)=delete |
const std::string & | getName () const |
Get the unique name that identifies this sound device. | |
std::string_view | getDescription () const |
Gets a description of this sound device, to be presented to the user. | |
unsigned | getNumChannels () const |
How many channels does this device have? | |
bool | hasStereoChannels () const |
Are the individual channels of this device stereo? | |
bool | isStereo () const |
Is the full output of this device stereo? | |
AmplificationFactors | getAmplificationFactor () const |
void | setSoftwareVolume (float volume, EmuTime::param time) |
Change the 'software volume' of this sound device. | |
void | setSoftwareVolume (float left, float right, EmuTime::param time) |
void | recordChannel (unsigned channel, const Filename &filename) |
void | muteChannel (unsigned channel, bool muted) |
std::span< const float > | getLastBuffer (unsigned channel) |
Query the last generated audio signal for a specific channel. | |
float | getNativeSampleRate () const |
The samples returned by 'getLastBuffer()' have this sample rate. | |
unsigned | getLastMonoBufferSize () const |
getLastBuffer() with return buffers containing this many samples. | |
unsigned | getLastBufferSize () const |
Additional Inherited Members | |
Static Public Attributes inherited from openmsx::SoundDevice | |
static constexpr unsigned | MAX_CHANNELS = 24 |
Protected Member Functions inherited from openmsx::ResampledSoundDevice | |
ResampledSoundDevice (MSXMotherBoard &motherBoard, std::string_view name, static_string_view description, unsigned channels, unsigned inputSampleRate, bool stereo) | |
~ResampledSoundDevice () | |
void | setOutputRate (unsigned hostSampleRate, double speed) override |
When a SoundDevice registers itself with the Mixer, the Mixer sets the required sampleRate through this method. | |
bool | updateBuffer (size_t length, float *buffer, EmuTime::param time) override |
Generate sample data. | |
void | update (const Setting &setting) noexcept override |
void | createResampler () |
Protected Member Functions inherited from openmsx::SoundDevice | |
SoundDevice (MSXMixer &mixer, std::string_view name, static_string_view description, unsigned numChannels, unsigned inputRate, bool stereo) | |
Constructor. | |
~SoundDevice () | |
void | registerSound (const DeviceConfig &config) |
Registers this sound device with the Mixer. | |
void | unregisterSound () |
Unregisters this sound device with the Mixer. | |
void | updateStream (EmuTime::param time) |
void | setInputRate (unsigned sampleRate) |
unsigned | getInputRate () const |
bool | mixChannels (float *dataOut, size_t samples) |
Calls generateChannels() and combines the output to a single channel. | |
const DynamicClock & | getHostSampleClock () const |
See MSXMixer::getHostSampleClock(). | |
double | getEffectiveSpeed () const |
Protected Member Functions inherited from openmsx::Observer< Setting > | |
Observer ()=default | |
~Observer ()=default | |
Observer (const Observer &)=delete | |
Observer (Observer &&)=delete | |
Observer & | operator= (const Observer &)=delete |
Observer & | operator= (Observer &&)=delete |
virtual void | subjectDeleted (const Setting &) |
Static Protected Member Functions inherited from openmsx::SoundDevice | |
static void | addFill (float *&buffer, float value, unsigned num) |
Adds a number of samples that all have the same value. | |
|
strong |
openmsx::SCC::SCC | ( | const std::string & | name, |
const DeviceConfig & | config, | ||
EmuTime::param | time, | ||
Mode | mode = Mode::Real |
||
) |
Definition at line 121 of file SCC.cc.
References ranges::fill(), powerUp(), and openmsx::SoundDevice::registerSound().
openmsx::SCC::~SCC | ( | ) |
Definition at line 136 of file SCC.cc.
References openmsx::SoundDevice::unregisterSound().
|
inline |
uint8_t openmsx::SCC::peekMem | ( | uint8_t | address, |
EmuTime::param | time | ||
) | const |
Definition at line 206 of file SCC.cc.
References Compatible, Plus, Real, and UNREACHABLE.
Referenced by openmsx::ESE_SCC::peekMem(), openmsx::KonamiUltimateCollection::peekMem(), openmsx::MegaFlashRomSCCPlus::peekMem(), openmsx::ReproCartridgeV1::peekMem(), openmsx::ReproCartridgeV2::peekMem(), openmsx::RomKonamiSCC::peekMem(), openmsx::MSXSCCPlusCart::peekMem(), and readMem().
void openmsx::SCC::powerUp | ( | EmuTime::param | time | ) |
Definition at line 141 of file SCC.cc.
References ranges::fill(), reset(), and xrange().
Referenced by openmsx::Carnivore2::powerUp(), openmsx::ESE_SCC::powerUp(), openmsx::KonamiUltimateCollection::powerUp(), openmsx::MegaFlashRomSCCPlus::powerUp(), openmsx::MegaFlashRomSCCPlusSD::powerUp(), openmsx::ReproCartridgeV1::powerUp(), openmsx::ReproCartridgeV2::powerUp(), openmsx::RomKonamiSCC::powerUp(), openmsx::MSXSCCPlusCart::powerUp(), and SCC().
uint8_t openmsx::SCC::readMem | ( | uint8_t | address, |
EmuTime::param | time | ||
) |
Definition at line 193 of file SCC.cc.
References peekMem(), and Real.
Referenced by openmsx::ESE_SCC::readMem(), openmsx::KonamiUltimateCollection::readMem(), openmsx::MegaFlashRomSCCPlus::readMem(), openmsx::ReproCartridgeV1::readMem(), openmsx::ReproCartridgeV2::readMem(), openmsx::RomKonamiSCC::readMem(), and openmsx::MSXSCCPlusCart::readMem().
void openmsx::SCC::reset | ( | EmuTime::param | time | ) |
Definition at line 173 of file SCC.cc.
References Compatible, Real, and setMode().
Referenced by powerUp(), openmsx::Carnivore2::reset(), openmsx::ESE_SCC::reset(), openmsx::KonamiUltimateCollection::reset(), openmsx::MegaFlashRomSCCPlus::reset(), openmsx::MegaFlashRomSCCPlusSD::reset(), openmsx::ReproCartridgeV1::reset(), openmsx::ReproCartridgeV2::reset(), openmsx::RomKonamiSCC::reset(), and openmsx::MSXSCCPlusCart::reset().
void openmsx::SCC::serialize | ( | Archive & | ar, |
unsigned | version | ||
) |
Definition at line 551 of file SCC.cc.
References enumerate(), openmsx::Clock< FREQ_NUM, FREQ_DENOM >::getTime(), and xrange().
void openmsx::SCC::setMode | ( | Mode | newMode | ) |
Definition at line 183 of file SCC.cc.
References Real.
Referenced by reset(), openmsx::KonamiUltimateCollection::writeMem(), openmsx::MegaFlashRomSCCPlus::writeMem(), openmsx::ReproCartridgeV1::writeMem(), and openmsx::ReproCartridgeV2::writeMem().
void openmsx::SCC::writeMem | ( | uint8_t | address, |
uint8_t | value, | ||
EmuTime::param | time | ||
) |
Definition at line 285 of file SCC.cc.
References Compatible, Plus, Real, UNREACHABLE, and openmsx::SoundDevice::updateStream().
Referenced by openmsx::ESE_SCC::writeMem(), openmsx::KonamiUltimateCollection::writeMem(), openmsx::MegaFlashRomSCCPlus::writeMem(), openmsx::ReproCartridgeV1::writeMem(), openmsx::ReproCartridgeV2::writeMem(), openmsx::RomKonamiSCC::writeMem(), and openmsx::MSXSCCPlusCart::writeMem().