openMSX
Classes | Public Types | Public Member Functions | List of all members
openmsx::SCC Class Referencefinal

#include <SCC.hh>

Inheritance diagram for openmsx::SCC:
Inheritance graph
[legend]
Collaboration diagram for openmsx::SCC:
Collaboration graph
[legend]

Public Types

enum  ChipMode { SCC_Real , SCC_Compatible , SCC_plusmode }
 
- Public Types inherited from openmsx::ResampledSoundDevice
enum  ResampleType { RESAMPLE_HQ , RESAMPLE_LQ , RESAMPLE_BLIP }
 

Public Member Functions

 SCC (const std::string &name, const DeviceConfig &config, EmuTime::param time, ChipMode mode=SCC_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 setChipMode (ChipMode newMode)
 
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.
 
DynamicClockgetEmuClock ()
 
- Public Member Functions inherited from openmsx::SoundDevice
 SoundDevice (const SoundDevice &)=delete
 
SoundDeviceoperator= (const 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.
 
bool isStereo () const
 Is this a stereo device? This is set in the constructor and cannot be changed anymore.
 
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)
 

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 DynamicClockgetHostSampleClock () const
 See MSXMixer::getHostSampleClock().
 
double getEffectiveSpeed () const
 
- Protected Member Functions inherited from openmsx::Observer< Setting >
 Observer ()=default
 
 ~Observer ()=default
 
 Observer (const Observer &)=delete
 
Observeroperator= (const 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.
 

Detailed Description

Definition at line 13 of file SCC.hh.

Member Enumeration Documentation

◆ ChipMode

Enumerator
SCC_Real 
SCC_Compatible 
SCC_plusmode 

Definition at line 16 of file SCC.hh.

Constructor & Destructor Documentation

◆ SCC()

openmsx::SCC::SCC ( const std::string &  name,
const DeviceConfig config,
EmuTime::param  time,
ChipMode  mode = SCC_Real 
)

Definition at line 121 of file SCC.cc.

References ranges::fill(), powerUp(), and openmsx::SoundDevice::registerSound().

◆ ~SCC()

openmsx::SCC::~SCC ( )

Definition at line 136 of file SCC.cc.

References openmsx::SoundDevice::unregisterSound().

Member Function Documentation

◆ peekMem()

uint8_t openmsx::SCC::peekMem ( uint8_t  address,
EmuTime::param  time 
) const

◆ powerUp()

void openmsx::SCC::powerUp ( EmuTime::param  time)

◆ readMem()

uint8_t openmsx::SCC::readMem ( uint8_t  address,
EmuTime::param  time 
)

◆ reset()

void openmsx::SCC::reset ( EmuTime::param  time)

◆ serialize()

template<typename Archive >
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().

◆ setChipMode()

void openmsx::SCC::setChipMode ( ChipMode  newMode)

◆ writeMem()

void openmsx::SCC::writeMem ( uint8_t  address,
uint8_t  value,
EmuTime::param  time 
)

The documentation for this class was generated from the following files: