summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile7
-rw-r--r--bemidi.cpp55
-rw-r--r--os/beos/bemidi.cpp0
3 files changed, 58 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index fc1d781de..ec6c6cff1 100644
--- a/Makefile
+++ b/Makefile
@@ -543,8 +543,7 @@ endif
ttd_OBJS = $(C_SOURCES:%.c=%.o) $(CXX_SOURCES:%.cpp=%.o)
ifdef BEOS
-CXX_SOURCES += os/beos/bemidi.cpp
-CFLAGS += -I.
+CXX_SOURCES += bemidi.cpp
endif
ifdef WIN32
@@ -746,6 +745,6 @@ DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
-# For DirectMusic build and BeOS specific parts
+# For DirectMusic build
%.o: %.cpp $(MAKE_CONFIG)
- $(CXX_BUILD) $< -o $@
+ $(CXX_BUILD) $<
diff --git a/bemidi.cpp b/bemidi.cpp
new file mode 100644
index 000000000..d0f41d865
--- /dev/null
+++ b/bemidi.cpp
@@ -0,0 +1,55 @@
+#ifdef __BEOS__
+
+#include "stdafx.h"
+#include "ttd.h"
+#include "hal.h"
+
+// BeOS System Includes
+#include <MidiSynthFile.h>
+
+BMidiSynthFile midiSynthFile;
+
+static char *bemidi_start(char **parm)
+{
+ return NULL;
+}
+
+static void bemidi_stop(void)
+{
+ midiSynthFile.UnloadFile();
+}
+
+static void bemidi_play_song(const char *filename)
+{
+ bemidi_stop();
+ entry_ref midiRef;
+ get_ref_for_path(filename, &midiRef);
+ midiSynthFile.LoadFile(&midiRef);
+ midiSynthFile.Start();
+}
+
+static void bemidi_stop_song(void)
+{
+ midiSynthFile.UnloadFile();
+}
+
+static bool bemidi_is_playing(void)
+{
+ return !midiSynthFile.IsFinished();
+}
+
+static void bemidi_set_volume(byte vol)
+{
+ fprintf(stderr, "BeMidi: Set volume not implemented\n");
+}
+
+const HalMusicDriver _bemidi_music_driver = {
+ bemidi_start,
+ bemidi_stop,
+ bemidi_play_song,
+ bemidi_stop_song,
+ bemidi_is_playing,
+ bemidi_set_volume,
+};
+
+#endif // __BEOS__
diff --git a/os/beos/bemidi.cpp b/os/beos/bemidi.cpp
deleted file mode 100644
index e69de29bb..000000000
--- a/os/beos/bemidi.cpp
+++ /dev/null