summaryrefslogtreecommitdiff
path: root/src/music/dmusic.h
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2007-07-05 12:23:54 +0000
committerpeter1138 <peter1138@openttd.org>2007-07-05 12:23:54 +0000
commit68c6add8ccd9aa32eb799a433aa8a3b05ec84a57 (patch)
tree52e0cc5b1e4eb6cf9aed8556873ee6833662e11f /src/music/dmusic.h
parentb5079071762021ebfbb66a14eaa598e48d6a3234 (diff)
downloadopenttd-68c6add8ccd9aa32eb799a433aa8a3b05ec84a57.tar.xz
(svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.
Diffstat (limited to 'src/music/dmusic.h')
-rw-r--r--src/music/dmusic.h26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/music/dmusic.h b/src/music/dmusic.h
index a01269e1d..9bfb1bb1c 100644
--- a/src/music/dmusic.h
+++ b/src/music/dmusic.h
@@ -3,8 +3,30 @@
#ifndef MUSIC_DMUSIC_H
#define MUSIC_DMUSIC_H
-#include "../hal.h"
+#include "music_driver.hpp"
-extern const HalMusicDriver _dmusic_midi_driver;
+class MusicDriver_DMusic: public MusicDriver {
+public:
+ /* virtual */ bool CanProbe() { return true; }
+
+ /* virtual */ const char *Start(const char * const *param);
+
+ /* virtual */ void Stop();
+
+ /* virtual */ void PlaySong(const char *filename);
+
+ /* virtual */ void StopSong();
+
+ /* virtual */ bool IsSongPlaying();
+
+ /* virtual */ void SetVolume(byte vol);
+};
+
+class FMusicDriver_DMusic: public MusicDriverFactory<FMusicDriver_DMusic> {
+public:
+ /* virtual */ const char *GetName() { return "dmusic"; }
+ /* virtual */ const char *GetDescription() { return "DirectMusic MIDI Driver"; }
+ /* virtual */ Driver *CreateInstance() { return new MusicDriver_DMusic(); }
+};
#endif /* MUSIC_DMUSIC_H */