(svn r876) reverted the accidently cleared bemidi.cpp
authorbjarni
Wed, 01 Dec 2004 19:42:42 +0000
changeset 531 d5412b554030
parent 530 206fd706766b
child 532 84e504f4f6d1
(svn r876) reverted the accidently cleared bemidi.cpp
Makefile
bemidi.cpp
os/beos/bemidi.cpp
--- a/Makefile	Wed Dec 01 15:25:18 2004 +0000
+++ b/Makefile	Wed Dec 01 19:42:42 2004 +0000
@@ -543,8 +543,7 @@
 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/$(*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) $<
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bemidi.cpp	Wed Dec 01 19:42:42 2004 +0000
@@ -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__