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

#include <LaserdiscPlayer.hh>

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

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 RawFramegetRawFrame () const
 
template<typename Archive >
void serialize (Archive &ar, unsigned version)
 
MSXMotherBoardgetMotherBoard ()
 
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.
 
DynamicClockgetEmuClock ()
 
- Public Member Functions inherited from openmsx::SoundDevice
 SoundDevice (const SoundDevice &)=delete
 
 SoundDevice (SoundDevice &&)=delete
 
SoundDeviceoperator= (const SoundDevice &)=delete
 
SoundDeviceoperator= (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
 
MediaInfoProvideroperator= (const MediaInfoProvider &)=delete
 
MediaInfoProvideroperator= (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 DynamicClockgetHostSampleClock () 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
 
Observeroperator= (const Observer &)=delete
 
Observeroperator= (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.
 

Detailed Description

Definition at line 27 of file LaserdiscPlayer.hh.

Member Enumeration Documentation

◆ PlayerState

Enumerator
STOPPED 
PLAYING 
MULTI_SPEED 
PAUSED 
STILL 

Definition at line 63 of file LaserdiscPlayer.hh.

◆ RemoteProtocol

Enumerator
NONE 
NEC 

Definition at line 84 of file LaserdiscPlayer.hh.

◆ RemoteState

Enumerator
IDLE 
HEADER_PULSE 
NEC_HEADER_SPACE 
NEC_BITS_PULSE 
NEC_BITS_SPACE 

Definition at line 55 of file LaserdiscPlayer.hh.

◆ SeekState

Enumerator
NONE 
CHAPTER 
FRAME 
WAIT 

Definition at line 71 of file LaserdiscPlayer.hh.

◆ StereoMode

Enumerator
LEFT 
RIGHT 
STEREO 

Definition at line 78 of file LaserdiscPlayer.hh.

Constructor & Destructor Documentation

◆ LaserdiscPlayer()

openmsx::LaserdiscPlayer::LaserdiscPlayer ( const HardwareConfig hwConf,
PioneerLDControl ldControl 
)

◆ ~LaserdiscPlayer()

openmsx::LaserdiscPlayer::~LaserdiscPlayer ( )

Member Function Documentation

◆ extAck()

bool openmsx::LaserdiscPlayer::extAck ( EmuTime::param  ) const
inline

Definition at line 42 of file LaserdiscPlayer.hh.

◆ extControl()

void openmsx::LaserdiscPlayer::extControl ( bool  bit,
EmuTime::param  time 
)

◆ getMediaInfo()

void openmsx::LaserdiscPlayer::getMediaInfo ( TclObject result)
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().

◆ getMotherBoard()

MSXMotherBoard & openmsx::LaserdiscPlayer::getMotherBoard ( )
inline

Definition at line 50 of file LaserdiscPlayer.hh.

◆ getRawFrame()

const RawFrame * openmsx::LaserdiscPlayer::getRawFrame ( ) const

Definition at line 281 of file LaserdiscPlayer.cc.

◆ readSample()

int16_t openmsx::LaserdiscPlayer::readSample ( EmuTime::param  time)

Definition at line 964 of file LaserdiscPlayer.cc.

References LEFT, and PLAYING.

◆ serialize()

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

◆ setMuting()

void openmsx::LaserdiscPlayer::setMuting ( bool  left,
bool  right,
EmuTime::param  time 
)

Definition at line 783 of file LaserdiscPlayer.cc.

References openmsx::SoundDevice::updateStream().


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