Cleanup in driver selection.

This commit is contained in:
Themaister 2012-05-07 23:20:13 +02:00
parent 24d9f815ce
commit a9eaa86683
2 changed files with 60 additions and 76 deletions

View File

@ -439,6 +439,9 @@ struct global
// Public functions // Public functions
void config_load(void); void config_load(void);
void config_set_defaults(void); void config_set_defaults(void);
const char *config_get_default_video(void);
const char *config_get_default_audio(void);
const char *config_get_default_input(void);
#ifdef HAVE_CONFIGFILE #ifdef HAVE_CONFIGFILE
#include "conf/config_file.h" #include "conf/config_file.h"

View File

@ -34,113 +34,94 @@ struct global g_extern;
struct console_settings g_console; struct console_settings g_console;
#endif #endif
void config_set_defaults(void) const char *config_get_default_audio(void)
{ {
const char *def_video = NULL;
const char *def_audio = NULL;
const char *def_input = NULL;
switch (VIDEO_DEFAULT_DRIVER)
{
case VIDEO_GL:
def_video = "gl";
break;
case VIDEO_WII:
def_video = "wii";
break;
case VIDEO_XENON360:
def_video = "xenon360";
break;
case VIDEO_XDK360:
def_video = "xdk360";
break;
case VIDEO_XVIDEO:
def_video = "xvideo";
break;
case VIDEO_SDL:
def_video = "sdl";
break;
case VIDEO_EXT:
def_video = "ext";
break;
default:
break;
}
switch (AUDIO_DEFAULT_DRIVER) switch (AUDIO_DEFAULT_DRIVER)
{ {
case AUDIO_RSOUND: case AUDIO_RSOUND:
def_audio = "rsound"; return "rsound";
break;
case AUDIO_OSS: case AUDIO_OSS:
def_audio = "oss"; return "oss";
break;
case AUDIO_ALSA: case AUDIO_ALSA:
def_audio = "alsa"; return "alsa";
break;
case AUDIO_ROAR: case AUDIO_ROAR:
def_audio = "roar"; return "roar";
break;
case AUDIO_COREAUDIO: case AUDIO_COREAUDIO:
def_audio = "coreaudio"; return "coreaudio";
break;
case AUDIO_AL: case AUDIO_AL:
def_audio = "openal"; return "openal";
break;
case AUDIO_SDL: case AUDIO_SDL:
def_audio = "sdl"; return "sdl";
break;
case AUDIO_DSOUND: case AUDIO_DSOUND:
def_audio = "dsound"; return "dsound";
break;
case AUDIO_XAUDIO: case AUDIO_XAUDIO:
def_audio = "xaudio"; return "xaudio";
break;
case AUDIO_PULSE: case AUDIO_PULSE:
def_audio = "pulse"; return "pulse";
break;
case AUDIO_EXT: case AUDIO_EXT:
def_audio = "ext"; return "ext";
break;
case AUDIO_XENON360: case AUDIO_XENON360:
def_audio = "xenon360"; return "xenon360";
break;
case AUDIO_XDK360: case AUDIO_XDK360:
def_audio = "xdk360"; return "xdk360";
break;
case AUDIO_PS3: case AUDIO_PS3:
def_audio = "ps3"; return "ps3";
break;
case AUDIO_WII: case AUDIO_WII:
def_audio = "wii"; return "wii";
break;
default: default:
break; return NULL;
} }
}
const char *config_get_default_video(void)
{
switch (VIDEO_DEFAULT_DRIVER)
{
case VIDEO_GL:
return "gl";
case VIDEO_WII:
return "wii";
case VIDEO_XENON360:
return "xenon360";
case VIDEO_XDK360:
return "xdk360";
case VIDEO_XVIDEO:
return "xvideo";
case VIDEO_SDL:
return "sdl";
case VIDEO_EXT:
return "ext";
default:
return NULL;
}
}
const char *config_get_default_input(void)
{
switch (INPUT_DEFAULT_DRIVER) switch (INPUT_DEFAULT_DRIVER)
{ {
case INPUT_PS3: case INPUT_PS3:
def_input = "ps3"; return "ps3";
break;
case INPUT_SDL: case INPUT_SDL:
def_input = "sdl"; return "sdl";
break;
case INPUT_X: case INPUT_X:
def_input = "x"; return "x";
break;
case INPUT_XENON360: case INPUT_XENON360:
def_input = "xenon360"; return "xenon360";
break;
case INPUT_XDK360: case INPUT_XDK360:
def_input = "xdk360"; return "xdk360";
break;
case INPUT_WII: case INPUT_WII:
def_input = "wii"; return "wii";
break;
default: default:
break; return NULL;
} }
}
void config_set_defaults(void)
{
const char *def_video = config_get_default_video();
const char *def_audio = config_get_default_audio();
const char *def_input = config_get_default_input();
if (def_video) if (def_video)
strlcpy(g_settings.video.driver, def_video, sizeof(g_settings.video.driver)); strlcpy(g_settings.video.driver, def_video, sizeof(g_settings.video.driver));