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

#include <SamplePlayer.hh>

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

Public Member Functions

 SamplePlayer (const std::string &name, const std::string &desc, const DeviceConfig &config, const std::string &samplesBaseName, unsigned numSamples, const std::string &alternativeName={})
 
 ~SamplePlayer ()
 
void reset ()
 
void play (unsigned sampleNum)
 Start playing a (new) sample. More...
 
void repeat (unsigned sampleNum)
 Keep on repeating the given sample data. More...
 
void stopRepeat ()
 Stop repeat mode. More...
 
bool isPlaying () const
 Is there currently playing a sample. More...
 
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 constexpr 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 10 of file SamplePlayer.hh.

Constructor & Destructor Documentation

◆ SamplePlayer()

openmsx::SamplePlayer::SamplePlayer ( const std::string &  name,
const std::string &  desc,
const DeviceConfig config,
const std::string &  samplesBaseName,
unsigned  numSamples,
const std::string &  alternativeName = {} 
)

◆ ~SamplePlayer()

openmsx::SamplePlayer::~SamplePlayer ( )

Definition at line 52 of file SamplePlayer.cc.

References openmsx::SoundDevice::unregisterSound().

Member Function Documentation

◆ isPlaying()

bool openmsx::SamplePlayer::isPlaying ( ) const
inline

Is there currently playing a sample.

Definition at line 42 of file SamplePlayer.hh.

References serialize().

Referenced by openmsx::RomPlayBall::peekMem(), repeat(), and openmsx::RomPlayBall::writeMem().

◆ play()

void openmsx::SamplePlayer::play ( unsigned  sampleNum)

◆ repeat()

void openmsx::SamplePlayer::repeat ( unsigned  sampleNum)

Keep on repeating the given sample data.

If there is already a sample playing, that sample is still finished. If there was no sample playing, the given sample immediatly starts playing. Parameters are the same as for the play() method.

See also
stopRepeat()

Definition at line 91 of file SamplePlayer.cc.

References isPlaying(), and play().

Referenced by openmsx::RomNettouYakyuu::writeMem().

◆ reset()

void openmsx::SamplePlayer::reset ( )

◆ serialize()

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

Definition at line 132 of file SamplePlayer.cc.

Referenced by isPlaying().

◆ stopRepeat()

void openmsx::SamplePlayer::stopRepeat ( )
inline

Stop repeat mode.

The currently playing sample will still be finished, but won't be started.

See also
repeat()

Definition at line 39 of file SamplePlayer.hh.

Referenced by reset(), and openmsx::RomNettouYakyuu::writeMem().


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