OpenTTD Source 20260917-master-gec444f7315
MusicDriver_ExtMidi Class Reference
Inheritance diagram for MusicDriver_ExtMidi:
MusicDriver Driver

Public Member Functions

std::optional< std::string_view > Start (const StringList &param) override
 Start this driver.
void Stop () override
 Stop this driver.
void PlaySong (const MusicSongInfo &song) override
 Play a particular song.
void StopSong () override
 Stop playing the current song.
bool IsSongPlaying () override
 Are we currently playing a song?
void SetVolume (uint8_t vol) override
 Set the volume, if possible.
std::string_view GetName () const override
 Get the name of this driver.
Public Member Functions inherited from Driver
virtual ~Driver ()=default
 Ensure the destructor of the sub classes are called as well.

Private Member Functions

void DoPlay ()
void DoStop ()

Private Attributes

std::vector< std::string > command_tokens {}
std::string song {}
pid_t pid = 0

Additional Inherited Members

Public Types inherited from Driver
enum class  Type : uint8_t {
  Begin = 0 , Music = 0 , Sound , Video ,
  End
}
 The type of driver. More...
Static Public Member Functions inherited from MusicDriver
static MusicDriver * GetInstance ()
 Get the currently active instance of the music driver.

Detailed Description

Definition at line 15 of file extmidi.h.

Member Function Documentation

◆ DoPlay()

void MusicDriver_ExtMidi::DoPlay ( )
private

Definition at line 103 of file extmidi.cpp.

◆ DoStop()

void MusicDriver_ExtMidi::DoStop ( )
private

Definition at line 157 of file extmidi.cpp.

◆ GetName()

std::string_view MusicDriver_ExtMidi::GetName ( ) const
inlineoverridevirtual

Get the name of this driver.

Returns
The name of the driver.

Implements Driver.

Definition at line 36 of file extmidi.h.

Referenced by Start().

◆ IsSongPlaying()

bool MusicDriver_ExtMidi::IsSongPlaying ( )
overridevirtual

Are we currently playing a song?

Returns
True if a song is being played.

Implements MusicDriver.

Definition at line 89 of file extmidi.cpp.

◆ PlaySong()

void MusicDriver_ExtMidi::PlaySong ( const MusicSongInfo & song)
overridevirtual

Play a particular song.

Parameters
songThe information for the song to play.

Implements MusicDriver.

Definition at line 74 of file extmidi.cpp.

References MidiFile::GetSMFFile().

◆ SetVolume()

void MusicDriver_ExtMidi::SetVolume ( uint8_t vol)
overridevirtual

Set the volume, if possible.

Parameters
volThe new volume.

Implements MusicDriver.

Definition at line 98 of file extmidi.cpp.

References Debug, Driver, and Error.

◆ Start()

std::optional< std::string_view > MusicDriver_ExtMidi::Start ( const StringList & parm)
overridevirtual

Start this driver.

Parameters
parmParameters passed to the driver.
Returns
std::nullopt if everything went okay, otherwise an error message.

Implements Driver.

Definition at line 39 of file extmidi.cpp.

References EXTERNAL_PLAYER, GetDriverParam(), SoundDriver::GetInstance(), VideoDriver::GetInstance(), and GetName().

◆ Stop()

void MusicDriver_ExtMidi::Stop ( )
overridevirtual

Stop this driver.

Implements Driver.

Definition at line 68 of file extmidi.cpp.

◆ StopSong()

void MusicDriver_ExtMidi::StopSong ( )
overridevirtual

Stop playing the current song.

Implements MusicDriver.

Definition at line 83 of file extmidi.cpp.

Field Documentation

◆ command_tokens

std::vector<std::string> MusicDriver_ExtMidi::command_tokens {}
private

Definition at line 17 of file extmidi.h.

◆ pid

pid_t MusicDriver_ExtMidi::pid = 0
private

Definition at line 19 of file extmidi.h.

◆ song

std::string MusicDriver_ExtMidi::song {}
private

Definition at line 18 of file extmidi.h.


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