src/music/extmidi.h
author glx
Thu, 27 Sep 2007 21:47:38 +0000
changeset 8142 aaac2a5f116b
parent 7689 011afceb33b5
child 10429 1b99254f9607
permissions -rw-r--r--
(svn r11177) -Codechange: add support for newgrf callbacks 14B and 14C
2186
461a2aff3486 (svn r2701) Insert Id tags into all source files
tron
parents: 2171
diff changeset
     1
/* $Id$ */
461a2aff3486 (svn r2701) Insert Id tags into all source files
tron
parents: 2171
diff changeset
     2
2171
008122046f7f (svn r2685) -Codechange: Split the music/sound/video drivers into separate files and move them into subfolders.
tron
parents:
diff changeset
     3
#ifndef MUSIC_EXTERNAL_H
008122046f7f (svn r2685) -Codechange: Split the music/sound/video drivers into separate files and move them into subfolders.
tron
parents:
diff changeset
     4
#define MUSIC_EXTERNAL_H
008122046f7f (svn r2685) -Codechange: Split the music/sound/video drivers into separate files and move them into subfolders.
tron
parents:
diff changeset
     5
7666
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
     6
#include "music_driver.hpp"
2171
008122046f7f (svn r2685) -Codechange: Split the music/sound/video drivers into separate files and move them into subfolders.
tron
parents:
diff changeset
     7
7666
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
     8
class MusicDriver_ExtMidi: public MusicDriver {
7668
293aec8511ae (svn r10446) -Codechange: Move extmidi's global data into its class.
peter1138
parents: 7666
diff changeset
     9
private:
293aec8511ae (svn r10446) -Codechange: Move extmidi's global data into its class.
peter1138
parents: 7666
diff changeset
    10
	char song[MAX_PATH];
293aec8511ae (svn r10446) -Codechange: Move extmidi's global data into its class.
peter1138
parents: 7666
diff changeset
    11
	pid_t pid;
293aec8511ae (svn r10446) -Codechange: Move extmidi's global data into its class.
peter1138
parents: 7666
diff changeset
    12
293aec8511ae (svn r10446) -Codechange: Move extmidi's global data into its class.
peter1138
parents: 7666
diff changeset
    13
	void DoPlay();
293aec8511ae (svn r10446) -Codechange: Move extmidi's global data into its class.
peter1138
parents: 7666
diff changeset
    14
	void DoStop();
293aec8511ae (svn r10446) -Codechange: Move extmidi's global data into its class.
peter1138
parents: 7666
diff changeset
    15
7666
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    16
public:
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    17
	/* virtual */ const char *Start(const char * const *param);
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    18
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    19
	/* virtual */ void Stop();
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    20
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    21
	/* virtual */ void PlaySong(const char *filename);
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    22
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    23
	/* virtual */ void StopSong();
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    24
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    25
	/* virtual */ bool IsSongPlaying();
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    26
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    27
	/* virtual */ void SetVolume(byte vol);
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    28
};
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    29
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    30
class FMusicDriver_ExtMidi: public MusicDriverFactory<FMusicDriver_ExtMidi> {
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    31
public:
7689
011afceb33b5 (svn r10471) -Codechange: implement driver probing priority so that 'preferred' drivers are loaded first
peter1138
parents: 7668
diff changeset
    32
	static const int priority = 1;
7666
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    33
	/* virtual */ const char *GetName() { return "extmidi"; }
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    34
	/* virtual */ const char *GetDescription() { return "External MIDI Driver"; }
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    35
	/* virtual */ Driver *CreateInstance() { return new MusicDriver_ExtMidi(); }
a5fccd76176a (svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
peter1138
parents: 6450
diff changeset
    36
};
2171
008122046f7f (svn r2685) -Codechange: Split the music/sound/video drivers into separate files and move them into subfolders.
tron
parents:
diff changeset
    37
6450
1c2016673250 (svn r8860) -Cleanup: some style changes, proper #endif comments, variable initialisation, WINCE ifdef and a vsprintf to vsnprintf change.
Darkvater
parents: 5726
diff changeset
    38
#endif /* MUSIC_EXTERNAL_H */