mirror of
https://github.com/libretro/RetroArch
synced 2025-02-21 09:39:56 +00:00
Should work nicely.
This commit is contained in:
parent
16d9abc8d4
commit
869d839eee
6
Makefile
6
Makefile
@ -11,26 +11,32 @@ LIBS = -lsamplerate $(libsnes)
|
|||||||
ifeq ($(BUILD_RSOUND), 1)
|
ifeq ($(BUILD_RSOUND), 1)
|
||||||
OBJ += audio/rsound.o
|
OBJ += audio/rsound.o
|
||||||
LIBS += -lrsound
|
LIBS += -lrsound
|
||||||
|
DEFINES += -DHAVE_RSOUND
|
||||||
endif
|
endif
|
||||||
ifeq ($(BUILD_OSS), 1)
|
ifeq ($(BUILD_OSS), 1)
|
||||||
OBJ += audio/oss.o
|
OBJ += audio/oss.o
|
||||||
|
DEFINES += -DHAVE_OSS
|
||||||
endif
|
endif
|
||||||
ifeq ($(BUILD_ALSA), 1)
|
ifeq ($(BUILD_ALSA), 1)
|
||||||
OBJ += audio/alsa.o
|
OBJ += audio/alsa.o
|
||||||
LIBS += -lasound
|
LIBS += -lasound
|
||||||
|
DEFINES += -DHAVE_ALSA
|
||||||
endif
|
endif
|
||||||
ifeq ($(BUILD_ROAR), 1)
|
ifeq ($(BUILD_ROAR), 1)
|
||||||
OBJ += audio/roar.o
|
OBJ += audio/roar.o
|
||||||
LIBS += -lroar
|
LIBS += -lroar
|
||||||
|
DEFINES += -DHAVE_ROAR
|
||||||
endif
|
endif
|
||||||
ifeq ($(BUILD_AL), 1)
|
ifeq ($(BUILD_AL), 1)
|
||||||
OBJ += audio/openal.o
|
OBJ += audio/openal.o
|
||||||
LIBS += -lopenal
|
LIBS += -lopenal
|
||||||
|
DEFINES += -DHAVE_AL
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(BUILD_OPENGL), 1)
|
ifeq ($(BUILD_OPENGL), 1)
|
||||||
OBJ += gfx/gl.o
|
OBJ += gfx/gl.o
|
||||||
LIBS += -lglfw
|
LIBS += -lglfw
|
||||||
|
DEFINES += -DHAVE_GL
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(BUILD_CG), 1)
|
ifeq ($(BUILD_CG), 1)
|
||||||
|
@ -40,8 +40,8 @@
|
|||||||
////////////////////////
|
////////////////////////
|
||||||
|
|
||||||
// Chooses which video and audio subsystem to use. Remember to update config.mk if you change these.
|
// Chooses which video and audio subsystem to use. Remember to update config.mk if you change these.
|
||||||
#define VIDEO_DRIVER VIDEO_GL
|
#define VIDEO_DEFAULT_DRIVER VIDEO_GL
|
||||||
#define AUDIO_DRIVER AUDIO_ALSA
|
#define AUDIO_DEFAULT_DRIVER AUDIO_ALSA
|
||||||
|
|
||||||
|
|
||||||
////////////////
|
////////////////
|
||||||
|
35
driver.c
35
driver.c
@ -21,7 +21,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
static audio_driver_t audio_drivers[] = {
|
static const audio_driver_t *audio_drivers[] = {
|
||||||
#ifdef HAVE_ALSA
|
#ifdef HAVE_ALSA
|
||||||
&audio_alsa,
|
&audio_alsa,
|
||||||
#endif
|
#endif
|
||||||
@ -39,12 +39,39 @@ static audio_driver_t audio_drivers[] = {
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
static video_driver_t video_drivers[] = {
|
static const video_driver_t *video_drivers[] = {
|
||||||
#ifdef HAVE_GL
|
#ifdef HAVE_GL
|
||||||
&video_gl,
|
&video_gl,
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void find_audio_driver(void)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < sizeof(audio_drivers) / sizeof(audio_driver_t*); i++)
|
||||||
|
{
|
||||||
|
if (strcasecmp(g_settings.audio.driver, audio_drivers[i]->ident) == 0)
|
||||||
|
{
|
||||||
|
driver.audio = audio_drivers[i];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SSNES_ERR("Couldn't find any audio driver named \"%s\"\n", g_settings.audio.driver);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void find_video_driver(void)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < sizeof(video_drivers) / sizeof(video_driver_t*); i++)
|
||||||
|
{
|
||||||
|
if (strcasecmp(g_settings.video.driver, video_drivers[i]->ident) == 0)
|
||||||
|
{
|
||||||
|
driver.video = video_drivers[i];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SSNES_ERR("Couldn't find any video driver named \"%s\"\n", g_settings.video.driver);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
void init_drivers(void)
|
void init_drivers(void)
|
||||||
{
|
{
|
||||||
@ -66,6 +93,8 @@ void init_audio(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
find_audio_driver();
|
||||||
|
|
||||||
driver.audio_data = driver.audio->init(strlen(g_settings.audio.device) ? g_settings.audio.device : NULL, g_settings.audio.out_rate, g_settings.audio.latency);
|
driver.audio_data = driver.audio->init(strlen(g_settings.audio.device) ? g_settings.audio.device : NULL, g_settings.audio.out_rate, g_settings.audio.latency);
|
||||||
if ( driver.audio_data == NULL )
|
if ( driver.audio_data == NULL )
|
||||||
g_extern.audio_active = false;
|
g_extern.audio_active = false;
|
||||||
@ -98,6 +127,8 @@ void init_video_input(void)
|
|||||||
{
|
{
|
||||||
int scale;
|
int scale;
|
||||||
|
|
||||||
|
find_video_driver();
|
||||||
|
|
||||||
// We multiply scales with 2 to allow for hi-res games.
|
// We multiply scales with 2 to allow for hi-res games.
|
||||||
#if 0
|
#if 0
|
||||||
#if VIDEO_FILTER == FILTER_NONE
|
#if VIDEO_FILTER == FILTER_NONE
|
||||||
|
51
settings.c
51
settings.c
@ -8,6 +8,46 @@ struct settings g_settings;
|
|||||||
|
|
||||||
static void set_defaults(void)
|
static void set_defaults(void)
|
||||||
{
|
{
|
||||||
|
const char *def_video = NULL;
|
||||||
|
const char *def_audio = NULL;
|
||||||
|
|
||||||
|
switch (VIDEO_DEFAULT_DRIVER)
|
||||||
|
{
|
||||||
|
case VIDEO_GL:
|
||||||
|
def_video = "glfw";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (AUDIO_DEFAULT_DRIVER)
|
||||||
|
{
|
||||||
|
case AUDIO_RSOUND:
|
||||||
|
def_audio = "rsound";
|
||||||
|
break;
|
||||||
|
case AUDIO_OSS:
|
||||||
|
def_audio = "oss";
|
||||||
|
break;
|
||||||
|
case AUDIO_ALSA:
|
||||||
|
def_audio = "alsa";
|
||||||
|
break;
|
||||||
|
case AUDIO_ROAR:
|
||||||
|
def_audio = "roar";
|
||||||
|
break;
|
||||||
|
case AUDIO_AL:
|
||||||
|
def_audio = "openal";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// No input atm ... It is in the GLFW driver.
|
||||||
|
|
||||||
|
if (def_video)
|
||||||
|
strncpy(g_settings.video.driver, def_video, sizeof(g_settings.video.driver) - 1);
|
||||||
|
if (def_audio)
|
||||||
|
strncpy(g_settings.audio.driver, def_audio, sizeof(g_settings.audio.driver) - 1);
|
||||||
|
|
||||||
g_settings.video.xscale = xscale;
|
g_settings.video.xscale = xscale;
|
||||||
g_settings.video.yscale = yscale;
|
g_settings.video.yscale = yscale;
|
||||||
g_settings.video.fullscreen = fullscreen;
|
g_settings.video.fullscreen = fullscreen;
|
||||||
@ -140,6 +180,17 @@ void parse_config(void)
|
|||||||
g_settings.audio.src_quality = quals[tmp_int];
|
g_settings.audio.src_quality = quals[tmp_int];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (config_get_string(conf, "video_driver", &tmp_str))
|
||||||
|
{
|
||||||
|
strncpy(g_settings.video.driver, tmp_str, sizeof(g_settings.video.driver) - 1);
|
||||||
|
free(tmp_str);
|
||||||
|
}
|
||||||
|
if (config_get_string(conf, "audio_driver", &tmp_str))
|
||||||
|
{
|
||||||
|
strncpy(g_settings.audio.driver, tmp_str, sizeof(g_settings.audio.driver) - 1);
|
||||||
|
free(tmp_str);
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: Keybinds.
|
// TODO: Keybinds.
|
||||||
|
|
||||||
config_file_free(conf);
|
config_file_free(conf);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user