54 lines
		
	
	
		
			907 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			907 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| /* $Id$ */
 | |
| 
 | |
| #include "../stdafx.h"
 | |
| #include "../openttd.h"
 | |
| #include "bemidi.h"
 | |
| 
 | |
| // BeOS System Includes
 | |
| #include <MidiSynthFile.h>
 | |
| 
 | |
| static BMidiSynthFile midiSynthFile;
 | |
| 
 | |
| static const char *bemidi_start(const char * const *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,
 | |
| };
 | 
