src/music/bemidi.cpp
author bjarni
Mon, 05 Feb 2007 21:16:56 +0000
changeset 6192 c6adfc929c6b
parent 5726 8f399788f6c9
child 6298 c30fe89622df
permissions -rw-r--r--
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
This will permanently solve the issue where compilation on OSX broke because C++ code was added to some header files

-Note: (important if you develop mac specific code)
taken from http://developer.apple.com/releasenotes/Cocoa/Objective-C++.html
gdb lacks an integrated C++ with Objective-C parser. This means that gdb won't be able to evaluate expressions that contain both C++ and Objective-C constructs.
gdb assumes that the language for ".mm" files is C++.
you can change it to objective C by typing: (gdb) set language objc
Mixing C++ and objective C has some limitation (see link for all of them)
2186
461a2aff3486 (svn r2701) Insert Id tags into all source files
tron
parents: 2173
diff changeset
     1
/* $Id$ */
461a2aff3486 (svn r2701) Insert Id tags into all source files
tron
parents: 2173
diff changeset
     2
2192
57118ff67922 (svn r2707) Missed the paths in the BeOS MIDI player, sorry for all the noise
tron
parents: 2186
diff changeset
     3
#include "../stdafx.h"
57118ff67922 (svn r2707) Missed the paths in the BeOS MIDI player, sorry for all the noise
tron
parents: 2186
diff changeset
     4
#include "../openttd.h"
57118ff67922 (svn r2707) Missed the paths in the BeOS MIDI player, sorry for all the noise
tron
parents: 2186
diff changeset
     5
#include "bemidi.h"
531
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
     6
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
     7
// BeOS System Includes
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
     8
#include <MidiSynthFile.h>
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
     9
2173
dabe358aec40 (svn r2687) Make a variable static
tron
parents: 2171
diff changeset
    10
static BMidiSynthFile midiSynthFile;
531
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    11
1301
313804601383 (svn r1805) Teach the driver layer a few things about const correctness
tron
parents: 532
diff changeset
    12
static const char *bemidi_start(const char * const *parm)
531
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    13
{
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    14
	return NULL;
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    15
}
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    16
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    17
static void bemidi_stop(void)
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    18
{
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    19
	midiSynthFile.UnloadFile();
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    20
}
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    21
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    22
static void bemidi_play_song(const char *filename)
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    23
{
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    24
	bemidi_stop();
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    25
	entry_ref midiRef;
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    26
	get_ref_for_path(filename, &midiRef);
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    27
	midiSynthFile.LoadFile(&midiRef);
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    28
	midiSynthFile.Start();
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    29
}
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    30
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    31
static void bemidi_stop_song(void)
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    32
{
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    33
	midiSynthFile.UnloadFile();
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    34
}
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    35
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    36
static bool bemidi_is_playing(void)
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    37
{
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    38
	return !midiSynthFile.IsFinished();
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    39
}
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    40
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    41
static void bemidi_set_volume(byte vol)
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    42
{
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    43
	fprintf(stderr, "BeMidi: Set volume not implemented\n");
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    44
}
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    45
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    46
const HalMusicDriver _bemidi_music_driver = {
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    47
	bemidi_start,
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    48
	bemidi_stop,
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    49
	bemidi_play_song,
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    50
	bemidi_stop_song,
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    51
	bemidi_is_playing,
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    52
	bemidi_set_volume,
d5412b554030 (svn r876) reverted the accidently cleared bemidi.cpp
bjarni
parents: -1
diff changeset
    53
};