openMSX
|
#include <SamplePlayer.hh>
Public Member Functions | |
SamplePlayer (const std::string &name, static_string_view desc, const DeviceConfig &config, std::string_view samplesBaseName, unsigned numSamples, std::string_view 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) |
![]() | |
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. More... | |
DynamicClock & | getEmuClock () |
![]() | |
SoundDevice (const SoundDevice &)=delete | |
SoundDevice & | operator= (const SoundDevice &)=delete |
const std::string & | getName () const |
Get the unique name that identifies this sound device. More... | |
std::string_view | 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... | |
AmplificationFactors | getAmplificationFactor () const |
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) |
virtual void | setOutputRate (unsigned hostSampleRate, double speed)=0 |
When a SoundDevice registers itself with the Mixer, the Mixer sets the required sampleRate through this method. More... | |
virtual bool | updateBuffer (size_t length, float *buffer, EmuTime::param time)=0 |
Generate sample data. More... | |
Additional Inherited Members | |
![]() | |
enum | ResampleType { RESAMPLE_HQ , RESAMPLE_LQ , RESAMPLE_BLIP } |
![]() | |
static constexpr unsigned | MAX_CHANNELS = 24 |
![]() | |
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. More... | |
bool | updateBuffer (size_t length, float *buffer, EmuTime::param time) override |
Generate sample data. More... | |
void | update (const Setting &setting) noexcept override |
void | createResampler () |
![]() | |
SoundDevice (MSXMixer &mixer, std::string_view name, static_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 |
virtual void | generateChannels (std::span< float * > buffers, unsigned num)=0 |
Abstract method to generate the actual sound data. More... | |
bool | mixChannels (float *dataOut, size_t samples) |
Calls generateChannels() and combines the output to a single channel. More... | |
const DynamicClock & | getHostSampleClock () const |
See MSXMixer::getHostSampleClock(). More... | |
double | getEffectiveSpeed () const |
![]() | |
Observer ()=default | |
~Observer ()=default | |
Observer (const Observer &)=delete | |
Observer & | operator= (const Observer &)=delete |
virtual void | update (const Setting &subject) noexcept=0 |
virtual void | subjectDeleted (const Setting &) |
![]() | |
static void | addFill (float *&buffer, float value, unsigned num) |
Adds a number of samples that all have the same value. More... | |
Definition at line 10 of file SamplePlayer.hh.
openmsx::SamplePlayer::SamplePlayer | ( | const std::string & | name, |
static_string_view | desc, | ||
const DeviceConfig & | config, | ||
std::string_view | samplesBaseName, | ||
unsigned | numSamples, | ||
std::string_view | alternativeName = {} |
||
) |
Definition at line 50 of file SamplePlayer.cc.
References openmsx::SoundDevice::registerSound(), and reset().
openmsx::SamplePlayer::~SamplePlayer | ( | ) |
Definition at line 61 of file SamplePlayer.cc.
References openmsx::SoundDevice::unregisterSound().
|
inline |
Is there currently playing a sample.
Definition at line 42 of file SamplePlayer.hh.
Referenced by openmsx::RomPlayBall::peekMem(), repeat(), and openmsx::RomPlayBall::writeMem().
void openmsx::SamplePlayer::play | ( | unsigned | sampleNum | ) |
Start playing a (new) sample.
Definition at line 72 of file SamplePlayer.cc.
Referenced by openmsx::RomPlayBall::writeMem().
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 immediately starts playing. Parameters are the same as for the play() method.
Definition at line 100 of file SamplePlayer.cc.
References isPlaying().
Referenced by openmsx::RomNettouYakyuu::writeMem().
void openmsx::SamplePlayer::reset | ( | ) |
Definition at line 66 of file SamplePlayer.cc.
References stopRepeat().
Referenced by openmsx::RomNettouYakyuu::reset(), openmsx::RomPlayBall::reset(), SamplePlayer(), and openmsx::RomNettouYakyuu::writeMem().
void openmsx::SamplePlayer::serialize | ( | Archive & | ar, |
unsigned | version | ||
) |
Definition at line 142 of file SamplePlayer.cc.
|
inline |
Stop repeat mode.
The currently playing sample will still be finished, but won't be started.
Definition at line 39 of file SamplePlayer.hh.
Referenced by reset(), and openmsx::RomNettouYakyuu::writeMem().