diff options
author | Charles Pigott <charlespigott@googlemail.com> | 2018-09-12 00:06:31 +0100 |
---|---|---|
committer | Niels Martin Hansen <nielsm@indvikleren.dk> | 2018-11-01 18:06:38 +0100 |
commit | 0c619b7c4b9af55d5191a2410e0fb6091c72ccc8 (patch) | |
tree | 2eceeeee3ebbd46ed7ed2e437454387662649b24 /src/music/fluidsynth.h | |
parent | 1e68b9b3e6487c8c95c5d8dac89c04ea06d1d9b5 (diff) | |
download | openttd-0c619b7c4b9af55d5191a2410e0fb6091c72ccc8.tar.xz |
Add: Fluidsynth music driver support (jmak)
Diffstat (limited to 'src/music/fluidsynth.h')
-rw-r--r-- | src/music/fluidsynth.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/music/fluidsynth.h b/src/music/fluidsynth.h new file mode 100644 index 000000000..171128a8e --- /dev/null +++ b/src/music/fluidsynth.h @@ -0,0 +1,41 @@ +/* $Id$ */ + +/* + * This file is part of OpenTTD. + * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. + * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>. + */ + +/** @file fluidsynth.h Base for FluidSynth music playback. */ + +#ifndef MUSIC_FLUIDSYNTH_H +#define MUSIC_FLUIDSYNTH_H + +#include "music_driver.hpp" + +/** Music driver making use of FluidSynth. */ +class MusicDriver_FluidSynth : public MusicDriver { +public: + /* virtual */ const char *Start(const char * const *param); + + /* virtual */ void Stop(); + + /* virtual */ void PlaySong(const MusicSongInfo &song); + + /* virtual */ void StopSong(); + + /* virtual */ bool IsSongPlaying(); + + /* virtual */ void SetVolume(byte vol); + /* virtual */ const char *GetName() const { return "fluidsynth"; } +}; + +/** Factory for the fluidsynth driver. */ +class FMusicDriver_FluidSynth : public DriverFactoryBase { +public: + FMusicDriver_FluidSynth() : DriverFactoryBase(Driver::DT_MUSIC, 5, "fluidsynth", "FluidSynth MIDI Driver") {} + /* virtual */ Driver *CreateInstance() const { return new MusicDriver_FluidSynth(); } +}; + +#endif /* MUSIC_FLUIDSYNTH_H */ |