summaryrefslogtreecommitdiff
path: root/src/music/cocoa_m.h
diff options
context:
space:
mode:
authormichi_cc <michi_cc@openttd.org>2009-10-04 21:24:09 +0000
committermichi_cc <michi_cc@openttd.org>2009-10-04 21:24:09 +0000
commitdffd1be12d18a3ff0476a9dab4aaa696f58e9af4 (patch)
tree8a874fac738e985e642963428a1e8b461d76f306 /src/music/cocoa_m.h
parent37284fad19de377088edca31c3e27cac85d03ae6 (diff)
downloadopenttd-dffd1be12d18a3ff0476a9dab4aaa696f58e9af4.tar.xz
(svn r17710) -Feature [FS#3223]: [OSX] Add a MIDI driver using Cocoa/CoreAudio.
Diffstat (limited to 'src/music/cocoa_m.h')
-rw-r--r--src/music/cocoa_m.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/music/cocoa_m.h b/src/music/cocoa_m.h
new file mode 100644
index 000000000..f3cff9db8
--- /dev/null
+++ b/src/music/cocoa_m.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 cocoa_m.h Base of music playback via CoreAudio. */
+
+#ifndef MUSIC_MACOSX_COCOA_H
+#define MUSIC_MACOSX_COCOA_H
+
+#include "music_driver.hpp"
+
+class MusicDriver_Cocoa: public MusicDriver {
+public:
+ /* 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);
+ /* virtual */ const char *GetName() const { return "cocoa"; }
+};
+
+class FMusicDriver_Cocoa: public MusicDriverFactory<FMusicDriver_Cocoa> {
+public:
+ static const int priority = 10;
+ /* virtual */ const char *GetName() { return "cocoa"; }
+ /* virtual */ const char *GetDescription() { return "Cocoa MIDI Driver"; }
+ /* virtual */ Driver *CreateInstance() { return new MusicDriver_Cocoa(); }
+};
+
+#endif /* MUSIC_MACOSX_COCOA_H */