1
/* $Id: allegro_m.cpp 14632 2008-11-25 23:21:58Z rubidium $ */
3
/** @file allegro_m.cpp Playing music via allegro. */
12
static FMusicDriver_Allegro iFMusicDriver_Allegro;
13
static MIDI *_midi = NULL;
15
/** There are multiple modules that might be using Allegro and
16
* Allegro can only be initiated once. */
17
extern int _allegro_instance_count;
19
const char *MusicDriver_Allegro::Start(const char * const *param)
21
if (_allegro_instance_count == 0 && install_allegro(SYSTEM_AUTODETECT, &errno, NULL)) return NULL;
22
_allegro_instance_count++;
24
/* Initialise the sound */
25
if (install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT, NULL) != 0) return NULL;
27
/* Okay, there's no soundcard */
28
if (midi_card == MIDI_NONE) {
29
DEBUG(driver, 0, "allegro: no midi card found");
35
void MusicDriver_Allegro::Stop()
37
if (_midi != NULL) destroy_midi(_midi);
40
if (--_allegro_instance_count == 0) allegro_exit();
43
void MusicDriver_Allegro::PlaySong(const char *filename)
45
if (_midi != NULL) destroy_midi(_midi);
46
_midi = load_midi(filename);
47
play_midi(_midi, false);
50
void MusicDriver_Allegro::StopSong()
55
bool MusicDriver_Allegro::IsSongPlaying()
60
void MusicDriver_Allegro::SetVolume(byte vol)
65
#endif /* WITH_ALLEGRO */