Files
@ r12294:7f9f5ab6fe85
Branch filter:
Location: cpp/openttd-patchpack/source/src/music/allegro_m.cpp - annotation
r12294:7f9f5ab6fe85
1.4 KiB
text/x-c
(svn r16721) -Codechange: make Is/SetRoadVehicleFront, Is/Set/HasArticulatedPart member of RoadVehicle.
r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r12275:beb131677d7a r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r12275:beb131677d7a r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r12275:beb131677d7a r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf r10381:0855c63c9abf | /* $Id$ */
/** @file allegro_m.cpp Playing music via allegro. */
#ifdef WITH_ALLEGRO
#include "../stdafx.h"
#include "../debug.h"
#include "allegro_m.h"
#include <allegro.h>
static FMusicDriver_Allegro iFMusicDriver_Allegro;
static MIDI *_midi = NULL;
/** There are multiple modules that might be using Allegro and
* Allegro can only be initiated once. */
extern int _allegro_instance_count;
const char *MusicDriver_Allegro::Start(const char * const *param)
{
if (_allegro_instance_count == 0 && install_allegro(SYSTEM_AUTODETECT, &errno, NULL)) return "Failed to set up Allegro";
_allegro_instance_count++;
/* Initialise the sound */
if (install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT, NULL) != 0) return "Failed to set up Allegro sound";
/* Okay, there's no soundcard */
if (midi_card == MIDI_NONE) {
DEBUG(driver, 0, "allegro: no midi card found");
return "No sound card found";
}
return NULL;
}
void MusicDriver_Allegro::Stop()
{
if (_midi != NULL) destroy_midi(_midi);
_midi = NULL;
if (--_allegro_instance_count == 0) allegro_exit();
}
void MusicDriver_Allegro::PlaySong(const char *filename)
{
if (_midi != NULL) destroy_midi(_midi);
_midi = load_midi(filename);
play_midi(_midi, false);
}
void MusicDriver_Allegro::StopSong()
{
stop_midi();
}
bool MusicDriver_Allegro::IsSongPlaying()
{
return midi_pos >= 0;
}
void MusicDriver_Allegro::SetVolume(byte vol)
{
set_volume(-1, vol);
}
#endif /* WITH_ALLEGRO */
|