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  RemoteState {
  REMOTE_IDLE , REMOTE_HEADER_PULSE , NEC_HEADER_SPACE , NEC_BITS_PULSE ,
  NEC_BITS_SPACE
}
 
enum  PlayerState {
  PLAYER_STOPPED , PLAYER_PLAYING , PLAYER_MULTI_SPEED , PLAYER_PAUSED ,
  PLAYER_STILL
}
 
enum  SeekState { SEEK_NONE , SEEK_CHAPTER , SEEK_FRAME , SEEK_WAIT }
 
enum  StereoMode { LEFT , RIGHT , STEREO }
 
enum  RemoteProtocol { IR_NONE , IR_NEC }
 
- Public Types inherited from openmsx::ResampledSoundDevice
enum  ResampleType { RESAMPLE_HQ , RESAMPLE_LQ , RESAMPLE_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. More...
 
- 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. More...
 
DynamicClockgetEmuClock ()
 
- Public Member Functions inherited from openmsx::SoundDevice
 SoundDevice (const SoundDevice &)=delete
 
SoundDeviceoperator= (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...
 
- Public Member Functions inherited from openmsx::MediaInfoProvider
 MediaInfoProvider (const MediaInfoProvider &)=delete
 
MediaInfoProvideroperator= (const MediaInfoProvider &)=delete
 
virtual void getMediaInfo (TclObject &result)=0
 This method gets called when information is required on the media inserted in the media slot of the provider. More...
 

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. 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 ()
 
- 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. 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 DynamicClockgetHostSampleClock () const
 See MSXMixer::getHostSampleClock(). More...
 
double getEffectiveSpeed () const
 
- Protected Member Functions inherited from openmsx::Observer< Setting >
 Observer ()=default
 
 ~Observer ()=default
 
 Observer (const Observer &)=delete
 
Observeroperator= (const Observer &)=delete
 
virtual void update (const Setting &subject) noexcept=0
 
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. More...
 

Detailed Description

Definition at line 27 of file LaserdiscPlayer.hh.

Member Enumeration Documentation

◆ PlayerState

Enumerator
PLAYER_STOPPED 
PLAYER_PLAYING 
PLAYER_MULTI_SPEED 
PLAYER_PAUSED 
PLAYER_STILL 

Definition at line 63 of file LaserdiscPlayer.hh.

◆ RemoteProtocol

Enumerator
IR_NONE 
IR_NEC 

Definition at line 84 of file LaserdiscPlayer.hh.

◆ RemoteState

Enumerator
REMOTE_IDLE 
REMOTE_HEADER_PULSE 
NEC_HEADER_SPACE 
NEC_BITS_PULSE 
NEC_BITS_SPACE 

Definition at line 55 of file LaserdiscPlayer.hh.

◆ SeekState

Enumerator
SEEK_NONE 
SEEK_CHAPTER 
SEEK_FRAME 
SEEK_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 
)

Definition at line 104 of file LaserdiscPlayer.cc.

◆ ~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 166 of file LaserdiscPlayer.cc.

References openmsx::TclObject::addDictKeyValues().

◆ getMotherBoard()

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

Definition at line 50 of file LaserdiscPlayer.hh.

Referenced by openmsx::SDLVideoSystem::createLDRasterizer().

◆ getRawFrame()

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

Definition at line 279 of file LaserdiscPlayer.cc.

◆ readSample()

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

Definition at line 952 of file LaserdiscPlayer.cc.

References LEFT, and PLAYER_PLAYING.

Referenced by openmsx::CassettePort::cassetteIn().

◆ 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 775 of file LaserdiscPlayer.cc.

References openmsx::SoundDevice::updateStream().


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