openMSX
|
#include <LaserdiscPlayer.hh>
Public Types | |
enum class | RemoteState { IDLE , HEADER_PULSE , NEC_HEADER_SPACE , NEC_BITS_PULSE , NEC_BITS_SPACE } |
enum class | PlayerState { STOPPED , PLAYING , MULTI_SPEED , PAUSED , STILL } |
enum class | SeekState { NONE , CHAPTER , FRAME , WAIT } |
enum class | StereoMode { LEFT , RIGHT , STEREO } |
enum class | RemoteProtocol { NONE , NEC } |
Public Types inherited from openmsx::ResampledSoundDevice | |
enum class | ResampleType { HQ , BLIP } |
Public Member Functions | |
LaserdiscPlayer (const HardwareConfig &hwConf, PioneerLDControl &ldControl) | |
~LaserdiscPlayer () | |
int16_t | readSample (EmuTime::param time) |
void | setMuting (bool left, bool right, EmuTime::param time) |
bool | extAck (EmuTime::param) const |
void | extControl (bool bit, EmuTime::param time) |
const RawFrame * | getRawFrame () const |
template<typename Archive > | |
void | serialize (Archive &ar, unsigned version) |
MSXMotherBoard & | getMotherBoard () |
void | getMediaInfo (TclObject &result) override |
This method gets called when information is required on the media inserted in the media slot of the provider. | |
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 |
Public Member Functions inherited from openmsx::MediaInfoProvider | |
MediaInfoProvider (const MediaInfoProvider &)=delete | |
MediaInfoProvider (MediaInfoProvider &&)=delete | |
MediaInfoProvider & | operator= (const MediaInfoProvider &)=delete |
MediaInfoProvider & | operator= (MediaInfoProvider &&)=delete |
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 &) |
Protected Member Functions inherited from openmsx::MediaInfoProvider | |
MediaInfoProvider ()=default | |
~MediaInfoProvider ()=default | |
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. | |
Definition at line 27 of file LaserdiscPlayer.hh.
|
strong |
Enumerator | |
---|---|
STOPPED | |
PLAYING | |
MULTI_SPEED | |
PAUSED | |
STILL |
Definition at line 63 of file LaserdiscPlayer.hh.
|
strong |
Enumerator | |
---|---|
NONE | |
NEC |
Definition at line 84 of file LaserdiscPlayer.hh.
|
strong |
Enumerator | |
---|---|
IDLE | |
HEADER_PULSE | |
NEC_HEADER_SPACE | |
NEC_BITS_PULSE | |
NEC_BITS_SPACE |
Definition at line 55 of file LaserdiscPlayer.hh.
|
strong |
Enumerator | |
---|---|
NONE | |
CHAPTER | |
FRAME | |
WAIT |
Definition at line 71 of file LaserdiscPlayer.hh.
|
strong |
Enumerator | |
---|---|
LEFT | |
RIGHT | |
STEREO |
Definition at line 78 of file LaserdiscPlayer.hh.
openmsx::LaserdiscPlayer::LaserdiscPlayer | ( | const HardwareConfig & | hwConf, |
PioneerLDControl & | ldControl | ||
) |
Definition at line 104 of file LaserdiscPlayer.cc.
References openmsx::Display::attach(), openmsx::BOOT, openmsx::MSXMotherBoard::getCassettePort(), openmsx::Reactor::getDisplay(), openmsx::Reactor::getEventDistributor(), openmsx::MSXMotherBoard::getMSXCliComm(), openmsx::MSXMotherBoard::getReactor(), openmsx::XMLDocument::getStaticDocument(), openmsx::CliComm::HARDWARE, openmsx::EventDistributor::registerEventListener(), openmsx::MSXMotherBoard::registerMediaInfo(), openmsx::SoundDevice::registerSound(), and openmsx::MSXCliComm::update().
openmsx::LaserdiscPlayer::~LaserdiscPlayer | ( | ) |
Definition at line 144 of file LaserdiscPlayer.cc.
References openmsx::BOOT, openmsx::Display::detach(), openmsx::Reactor::getDisplay(), openmsx::Reactor::getEventDistributor(), openmsx::MSXMotherBoard::getMSXCliComm(), openmsx::MSXMotherBoard::getReactor(), openmsx::CliComm::HARDWARE, openmsx::EventDistributor::unregisterEventListener(), openmsx::MSXMotherBoard::unregisterMediaInfo(), openmsx::SoundDevice::unregisterSound(), and openmsx::MSXCliComm::update().
|
inline |
Definition at line 42 of file LaserdiscPlayer.hh.
void openmsx::LaserdiscPlayer::extControl | ( | bool | bit, |
EmuTime::param | time | ||
) |
Definition at line 193 of file LaserdiscPlayer.cc.
References openmsx::EmuDuration::getTicksAt(), HEADER_PULSE, IDLE, NEC, NEC_BITS_PULSE, NEC_BITS_SPACE, and NEC_HEADER_SPACE.
|
overridevirtual |
This method gets called when information is required on the media inserted in the media slot of the provider.
The provider must attach the info as a dictionary to the given TclObject.
Implements openmsx::MediaInfoProvider.
Definition at line 167 of file LaserdiscPlayer.cc.
References openmsx::TclObject::addDictKeyValues().
|
inline |
Definition at line 50 of file LaserdiscPlayer.hh.
const RawFrame * openmsx::LaserdiscPlayer::getRawFrame | ( | ) | const |
Definition at line 281 of file LaserdiscPlayer.cc.
int16_t openmsx::LaserdiscPlayer::readSample | ( | EmuTime::param | time | ) |
Definition at line 964 of file LaserdiscPlayer.cc.
void openmsx::LaserdiscPlayer::serialize | ( | Archive & | ar, |
unsigned | version | ||
) |
Definition at line 1063 of file LaserdiscPlayer.cc.
References openmsx::Filename::empty(), openmsx::DynamicClock::getFreq(), openmsx::Filename::getResolved(), IDLE, MULTI_SPEED, NONE, openmsx::Schedulable::restoreOld(), Math::reverseByte(), Math::reverseNBits(), openmsx::DynamicClock::setFreq(), and STOPPED.
void openmsx::LaserdiscPlayer::setMuting | ( | bool | left, |
bool | right, | ||
EmuTime::param | time | ||
) |
Definition at line 783 of file LaserdiscPlayer.cc.
References openmsx::SoundDevice::updateStream().