Changeset - r12275:beb131677d7a
[Not reviewed]
master
0 3 0
rubidium - 15 years ago 2009-06-30 12:38:18
rubidium@openttd.org
(svn r16700) -Fix: if allegro fails to start or fails open a window or sound card fall back to another driver
3 files changed with 10 insertions and 7 deletions:
0 comments (0 inline, 0 general)
src/music/allegro_m.cpp
Show inline comments
 
@@ -18,15 +18,16 @@ 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 NULL;
 
	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 NULL;
 
	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;
src/sound/allegro_s.cpp
Show inline comments
 
@@ -45,16 +45,16 @@ extern int _allegro_instance_count;
 

	
 
const char *SoundDriver_Allegro::Start(const char * const *parm)
 
{
 
	if (_allegro_instance_count == 0 && install_allegro(SYSTEM_AUTODETECT, &errno, NULL)) return NULL;
 
	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 NULL;
 
	if (install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT, NULL) != 0) return "Failed to set up Allegro sound";
 

	
 
	/* Okay, there's no soundcard */
 
	if (digi_card == DIGI_NONE) {
 
		DEBUG(driver, 0, "allegro: no sound card found");
 
		return NULL;
 
		return "No sound card found";
 
	}
 

	
 
	_stream = play_audio_stream(BUFFER_SIZE, 16, true, 11025, 255, 128);
src/video/allegro_v.cpp
Show inline comments
 
@@ -404,7 +404,7 @@ int _allegro_instance_count = 0;
 

	
 
const char *VideoDriver_Allegro::Start(const char * const *parm)
 
{
 
	if (_allegro_instance_count == 0 && install_allegro(SYSTEM_AUTODETECT, &errno, NULL)) return NULL;
 
	if (_allegro_instance_count == 0 && install_allegro(SYSTEM_AUTODETECT, &errno, NULL)) return "Failed to set up Allegro";
 
	_allegro_instance_count++;
 

	
 
	install_timer();
 
@@ -425,7 +425,9 @@ const char *VideoDriver_Allegro::Start(c
 
#endif
 

	
 
	GetVideoModes();
 
	CreateMainSurface(_cur_resolution.width, _cur_resolution.height);
 
	if (!CreateMainSurface(_cur_resolution.width, _cur_resolution.height)) {
 
		return "Failed to set up Allegro video";
 
	}
 
	MarkWholeScreenDirty();
 
	set_close_button_callback(HandleExitGameRequest);
 

	
0 comments (0 inline, 0 general)