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

#include <YMF278.hh>

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

Public Member Functions

 YMF278 (const std::string &name, int ramSize, const DeviceConfig &config)
 
 ~YMF278 ()
 
void clearRam ()
 
void reset (EmuTime::param time)
 
void writeReg (byte reg, byte data, EmuTime::param time)
 
byte readReg (byte reg)
 
byte peekReg (byte reg) const
 
byte readMem (unsigned address) const
 
void writeMem (unsigned address, byte value)
 
void setMixLevel (uint8_t x, EmuTime::param time)
 
template<typename Archive >
void serialize (Archive &ar, unsigned version)
 
- Public Member Functions inherited from openmsx::ResampledSoundDevice
bool generateInput (float *buffer, unsigned num)
 Note: To enable various optimizations (like SSE), this method is allowed to generate up to 3 extra sample. More...
 
- Public Member Functions inherited from openmsx::SoundDevice
const std::string & getName () const
 Get the unique name that identifies this sound device. More...
 
const std::string & getDescription () const
 Gets a description of this sound device, to be presented to the user. More...
 
bool isStereo () const
 Is this a stereo device? This is set in the constructor and cannot be changed anymore. More...
 
std::pair< float, float > getAmplificationFactor () const
 Gets this device its 'amplification factor'. More...
 
void setSoftwareVolume (float volume, EmuTime::param time)
 Change the 'software volume' of this sound device. More...
 
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

- Public Types inherited from openmsx::ResampledSoundDevice
enum  ResampleType { RESAMPLE_HQ, RESAMPLE_LQ, RESAMPLE_BLIP }
 
- Static Public Attributes inherited from openmsx::SoundDevice
static const unsigned MAX_CHANNELS = 24
 
- Protected Member Functions inherited from openmsx::ResampledSoundDevice
 ResampledSoundDevice (MSXMotherBoard &motherBoard, std::string_view name, std::string_view description, unsigned channels, unsigned inputSampleRate, bool stereo)
 
 ~ResampledSoundDevice ()
 
void setOutputRate (unsigned sampleRate) override
 When a SoundDevice registers itself with the Mixer, the Mixer sets the required sampleRate through this method. More...
 
bool updateBuffer (unsigned length, float *buffer, EmuTime::param time) override
 Generate sample data. More...
 
void update (const Setting &setting) override
 
void createResampler ()
 
- Protected Member Functions inherited from openmsx::SoundDevice
 SoundDevice (MSXMixer &mixer, std::string_view name, std::string_view description, unsigned numChannels, unsigned inputRate, bool stereo)
 Constructor. More...
 
 ~SoundDevice ()
 
virtual float getAmplificationFactorImpl () const
 Get amplification/attenuation factor for this device. More...
 
void registerSound (const DeviceConfig &config)
 Registers this sound device with the Mixer. More...
 
void unregisterSound ()
 Unregisters this sound device with the Mixer. More...
 
void updateStream (EmuTime::param time)
 
void setInputRate (unsigned sampleRate)
 
unsigned getInputRate () const
 
bool mixChannels (float *dataOut, unsigned samples)
 Calls generateChannels() and combines the output to a single channel. More...
 
const DynamicClockgetHostSampleClock () const
 See MSXMixer::getHostSampleClock(). More...
 
double getEffectiveSpeed () const
 
- Protected Member Functions inherited from openmsx::Observer< Setting >
 ~Observer ()=default
 
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. More...
 

Detailed Description

Definition at line 17 of file YMF278.hh.

Constructor & Destructor Documentation

◆ YMF278()

openmsx::YMF278::YMF278 ( const std::string &  name,
int  ramSize,
const DeviceConfig config 
)

◆ ~YMF278()

openmsx::YMF278::~YMF278 ( )

Definition at line 826 of file YMF278.cc.

References openmsx::SoundDevice::unregisterSound().

Member Function Documentation

◆ clearRam()

void openmsx::YMF278::clearRam ( )

Definition at line 831 of file YMF278.cc.

References openmsx::TrackedRam::clear().

Referenced by openmsx::MSXMoonSound::powerUp().

◆ peekReg()

byte openmsx::YMF278::peekReg ( byte  reg) const

Definition at line 765 of file YMF278.cc.

References readMem().

Referenced by openmsx::MSXMoonSound::peekIO(), and readReg().

◆ readMem()

byte openmsx::YMF278::readMem ( unsigned  address) const

Definition at line 945 of file YMF278.cc.

References openmsx::TrackedRam::getSize().

Referenced by peekReg(), and writeReg().

◆ readReg()

byte openmsx::YMF278::readReg ( byte  reg)

Definition at line 750 of file YMF278.cc.

References peekReg().

Referenced by openmsx::MSXMoonSound::readIO().

◆ reset()

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

◆ serialize()

template<typename Archive >
void openmsx::YMF278::serialize ( Archive &  ar,
unsigned  version 
)

◆ setMixLevel()

void openmsx::YMF278::setMixLevel ( uint8_t  x,
EmuTime::param  time 
)

Definition at line 477 of file YMF278.cc.

References openmsx::SoundDevice::setSoftwareVolume().

Referenced by reset(), and openmsx::MSXMoonSound::writeIO().

◆ writeMem()

void openmsx::YMF278::writeMem ( unsigned  address,
byte  value 
)

Definition at line 963 of file YMF278.cc.

References openmsx::TrackedRam::getSize(), O, openmsx::serialize(), step, and openmsx::TrackedRam::write().

Referenced by writeReg().

◆ writeReg()

void openmsx::YMF278::writeReg ( byte  reg,
byte  data,
EmuTime::param  time 
)

Definition at line 578 of file YMF278.cc.

References readMem(), t, openmsx::SoundDevice::updateStream(), and writeMem().

Referenced by openmsx::MSXMoonSound::writeIO().


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