Simplify find_driver functions

This commit is contained in:
twinaphex 2021-04-05 21:06:17 +02:00
parent 8c08b531d6
commit 48af4fc704
2 changed files with 52 additions and 51 deletions

View File

@ -19085,6 +19085,7 @@ bool bluetooth_driver_ctl(enum rarch_bluetooth_ctl_state state, void *data)
break; break;
case RARCH_BLUETOOTH_CTL_FIND_DRIVER: case RARCH_BLUETOOTH_CTL_FIND_DRIVER:
{ {
const char *prefix = "bluetooth driver";
int i = (int)driver_find_index( int i = (int)driver_find_index(
"bluetooth_driver", "bluetooth_driver",
settings->arrays.bluetooth_driver); settings->arrays.bluetooth_driver);
@ -19096,13 +19097,13 @@ bool bluetooth_driver_ctl(enum rarch_bluetooth_ctl_state state, void *data)
if (verbosity_is_enabled()) if (verbosity_is_enabled())
{ {
unsigned d; unsigned d;
RARCH_ERR("Couldn't find any bluetooth driver named \"%s\"\n", RARCH_ERR("Couldn't find any %s named \"%s\"\n", prefix,
settings->arrays.bluetooth_driver); settings->arrays.bluetooth_driver);
RARCH_LOG_OUTPUT("Available bluetooth drivers are:\n"); RARCH_LOG_OUTPUT("Available %ss are:\n", prefix);
for (d = 0; bluetooth_drivers[d]; d++) for (d = 0; bluetooth_drivers[d]; d++)
RARCH_LOG_OUTPUT("\t%s\n", bluetooth_drivers[d]->ident); RARCH_LOG_OUTPUT("\t%s\n", bluetooth_drivers[d]->ident);
RARCH_WARN("Going to default to first bluetooth driver...\n"); RARCH_WARN("Going to default to first %s...\n", prefix);
} }
p_rarch->bluetooth_driver = (const bluetooth_driver_t*)bluetooth_drivers[0]; p_rarch->bluetooth_driver = (const bluetooth_driver_t*)bluetooth_drivers[0];
@ -19232,6 +19233,7 @@ bool wifi_driver_ctl(enum rarch_wifi_ctl_state state, void *data)
break; break;
case RARCH_WIFI_CTL_FIND_DRIVER: case RARCH_WIFI_CTL_FIND_DRIVER:
{ {
const char *prefix = "wifi driver";
int i = (int)driver_find_index( int i = (int)driver_find_index(
"wifi_driver", "wifi_driver",
settings->arrays.wifi_driver); settings->arrays.wifi_driver);
@ -19243,13 +19245,13 @@ bool wifi_driver_ctl(enum rarch_wifi_ctl_state state, void *data)
if (verbosity_is_enabled()) if (verbosity_is_enabled())
{ {
unsigned d; unsigned d;
RARCH_ERR("Couldn't find any wifi driver named \"%s\"\n", RARCH_ERR("Couldn't find any %s named \"%s\"\n", prefix,
settings->arrays.wifi_driver); settings->arrays.wifi_driver);
RARCH_LOG_OUTPUT("Available wifi drivers are:\n"); RARCH_LOG_OUTPUT("Available %ss are:\n", prefix);
for (d = 0; wifi_drivers[d]; d++) for (d = 0; wifi_drivers[d]; d++)
RARCH_LOG_OUTPUT("\t%s\n", wifi_drivers[d]->ident); RARCH_LOG_OUTPUT("\t%s\n", wifi_drivers[d]->ident);
RARCH_WARN("Going to default to first wifi driver...\n"); RARCH_WARN("Going to default to first %s...\n", prefix);
} }
p_rarch->wifi_driver = (const wifi_driver_t*)wifi_drivers[0]; p_rarch->wifi_driver = (const wifi_driver_t*)wifi_drivers[0];
@ -19582,7 +19584,7 @@ const char* config_get_record_driver_options(void)
#if 0 #if 0
/* TODO/FIXME - not used apparently */ /* TODO/FIXME - not used apparently */
static void find_record_driver(void) static void find_record_driver(struct rarch_state *p_rarch, const char *prefix)
{ {
settings_t *settings = p_rarch->configuration_settings; settings_t *settings = p_rarch->configuration_settings;
int i = (int)driver_find_index( int i = (int)driver_find_index(
@ -19597,12 +19599,12 @@ static void find_record_driver(void)
{ {
unsigned d; unsigned d;
RARCH_ERR("[recording] Couldn't find any record driver named \"%s\"\n", RARCH_ERR("[recording] Couldn't find any %s named \"%s\"\n", prefix,
settings->arrays.record_driver); settings->arrays.record_driver);
RARCH_LOG_OUTPUT("Available record drivers are:\n"); RARCH_LOG_OUTPUT("Available %ss are:\n", prefix);
for (d = 0; record_drivers[d]; d++) for (d = 0; record_drivers[d]; d++)
RARCH_LOG_OUTPUT("\t%s\n", record_drivers[d].ident); RARCH_LOG_OUTPUT("\t%s\n", record_drivers[d].ident);
RARCH_WARN("[recording] Going to default to first record driver...\n"); RARCH_WARN("[recording] Going to default to first %s...\n", prefix);
} }
p_rarch->recording_driver = (const record_driver_t*)record_drivers[0]; p_rarch->recording_driver = (const record_driver_t*)record_drivers[0];
@ -24596,7 +24598,7 @@ static bool input_driver_init(struct rarch_state *p_rarch)
return (p_rarch->current_input_data != NULL); return (p_rarch->current_input_data != NULL);
} }
static bool input_driver_find_driver(struct rarch_state *p_rarch) static bool input_driver_find_driver(struct rarch_state *p_rarch, const char *prefix)
{ {
settings_t *settings = p_rarch->configuration_settings; settings_t *settings = p_rarch->configuration_settings;
int i = (int)driver_find_index( int i = (int)driver_find_index(
@ -24606,18 +24608,18 @@ static bool input_driver_find_driver(struct rarch_state *p_rarch)
if (i >= 0) if (i >= 0)
{ {
p_rarch->current_input = (input_driver_t*)input_drivers[i]; p_rarch->current_input = (input_driver_t*)input_drivers[i];
RARCH_LOG("[Input]: Found input driver: \"%s\".\n", RARCH_LOG("[Input]: Found %s: \"%s\".\n", prefix,
p_rarch->current_input->ident); p_rarch->current_input->ident);
} }
else else
{ {
unsigned d; unsigned d;
RARCH_ERR("Couldn't find any input driver named \"%s\"\n", RARCH_ERR("Couldn't find any %s named \"%s\"\n", prefix,
settings->arrays.input_driver); settings->arrays.input_driver);
RARCH_LOG_OUTPUT("Available input drivers are:\n"); RARCH_LOG_OUTPUT("Available %ss are:\n", prefix);
for (d = 0; input_drivers[d]; d++) for (d = 0; input_drivers[d]; d++)
RARCH_LOG_OUTPUT("\t%s\n", input_drivers[d]->ident); RARCH_LOG_OUTPUT("\t%s\n", input_drivers[d]->ident);
RARCH_WARN("Going to default to first input driver...\n"); RARCH_WARN("Going to default to first %s...\n", prefix);
p_rarch->current_input = (input_driver_t*)input_drivers[0]; p_rarch->current_input = (input_driver_t*)input_drivers[0];
@ -27565,7 +27567,7 @@ static bool audio_driver_deinit(struct rarch_state *p_rarch)
return audio_driver_deinit_internal(p_rarch); return audio_driver_deinit_internal(p_rarch);
} }
static bool audio_driver_find_driver(struct rarch_state *p_rarch) static bool audio_driver_find_driver(struct rarch_state *p_rarch, const char *prefix)
{ {
settings_t *settings = p_rarch->configuration_settings; settings_t *settings = p_rarch->configuration_settings;
int i = (int)driver_find_index( int i = (int)driver_find_index(
@ -27580,15 +27582,15 @@ static bool audio_driver_find_driver(struct rarch_state *p_rarch)
if (verbosity_is_enabled()) if (verbosity_is_enabled())
{ {
unsigned d; unsigned d;
RARCH_ERR("Couldn't find any audio driver named \"%s\"\n", RARCH_ERR("Couldn't find any %s named \"%s\"\n", prefix,
settings->arrays.audio_driver); settings->arrays.audio_driver);
RARCH_LOG_OUTPUT("Available audio drivers are:\n"); RARCH_LOG_OUTPUT("Available %ss are:\n", prefix);
for (d = 0; audio_drivers[d]; d++) for (d = 0; audio_drivers[d]; d++)
{ {
if (audio_drivers[d]) if (audio_drivers[d])
RARCH_LOG_OUTPUT("\t%s\n", audio_drivers[d]->ident); RARCH_LOG_OUTPUT("\t%s\n", audio_drivers[d]->ident);
} }
RARCH_WARN("Going to default to first audio driver...\n"); RARCH_WARN("Going to default to first %s...\n", prefix);
} }
p_rarch->current_audio = (const audio_driver_t*) p_rarch->current_audio = (const audio_driver_t*)
@ -27660,7 +27662,7 @@ static bool audio_driver_init_internal(
return false; return false;
} }
audio_driver_find_driver(p_rarch); audio_driver_find_driver(p_rarch, "audio driver");
if (!p_rarch->current_audio || !p_rarch->current_audio->init) if (!p_rarch->current_audio || !p_rarch->current_audio->init)
{ {
@ -29497,7 +29499,7 @@ static void video_driver_init_input(input_driver_t *tmp)
if (tmp) if (tmp)
*input = tmp; *input = tmp;
else else
input_driver_find_driver(p_rarch); input_driver_find_driver(p_rarch, "input driver");
/* This should never really happen as tmp (driver.input) is always /* This should never really happen as tmp (driver.input) is always
* found before this in find_driver_input(), or we have aborted * found before this in find_driver_input(), or we have aborted
@ -29884,7 +29886,7 @@ static bool video_driver_init_internal(bool *video_is_threaded)
tmp = p_rarch->current_input; tmp = p_rarch->current_input;
/* Need to grab the "real" video driver interface on a reinit. */ /* Need to grab the "real" video driver interface on a reinit. */
video_driver_find_driver(p_rarch); video_driver_find_driver(p_rarch, "video driver");
#ifdef HAVE_THREADS #ifdef HAVE_THREADS
video.is_threaded = VIDEO_DRIVER_IS_THREADED_INTERNAL(); video.is_threaded = VIDEO_DRIVER_IS_THREADED_INTERNAL();
@ -30690,7 +30692,7 @@ static void video_driver_restore_cached(struct rarch_state *p_rarch,
} }
} }
static bool video_driver_find_driver(struct rarch_state *p_rarch) static bool video_driver_find_driver(struct rarch_state *p_rarch, const char *prefix)
{ {
int i; int i;
settings_t *settings = p_rarch->configuration_settings; settings_t *settings = p_rarch->configuration_settings;
@ -30781,12 +30783,12 @@ static bool video_driver_find_driver(struct rarch_state *p_rarch)
if (verbosity_is_enabled()) if (verbosity_is_enabled())
{ {
unsigned d; unsigned d;
RARCH_ERR("Couldn't find any video driver named \"%s\"\n", RARCH_ERR("Couldn't find any %s named \"%s\"\n", prefix,
settings->arrays.video_driver); settings->arrays.video_driver);
RARCH_LOG_OUTPUT("Available video drivers are:\n"); RARCH_LOG_OUTPUT("Available %ss are:\n", prefix);
for (d = 0; video_drivers[d]; d++) for (d = 0; video_drivers[d]; d++)
RARCH_LOG_OUTPUT("\t%s\n", video_drivers[d]->ident); RARCH_LOG_OUTPUT("\t%s\n", video_drivers[d]->ident);
RARCH_WARN("Going to default to first video driver...\n"); RARCH_WARN("Going to default to first %s...\n", prefix);
} }
if (!(p_rarch->current_video = (video_driver_t*)video_drivers[0])) if (!(p_rarch->current_video = (video_driver_t*)video_drivers[0]))
@ -32195,7 +32197,7 @@ const char* config_get_location_driver_options(void)
return char_list_new_special(STRING_LIST_LOCATION_DRIVERS, NULL); return char_list_new_special(STRING_LIST_LOCATION_DRIVERS, NULL);
} }
static void find_location_driver(struct rarch_state *p_rarch) static void location_driver_find_driver(struct rarch_state *p_rarch, const char *prefix)
{ {
settings_t *settings = p_rarch->configuration_settings; settings_t *settings = p_rarch->configuration_settings;
int i = (int)driver_find_index( int i = (int)driver_find_index(
@ -32210,13 +32212,13 @@ static void find_location_driver(struct rarch_state *p_rarch)
if (verbosity_is_enabled()) if (verbosity_is_enabled())
{ {
unsigned d; unsigned d;
RARCH_ERR("Couldn't find any location driver named \"%s\"\n", RARCH_ERR("Couldn't find any %s named \"%s\"\n", prefix,
settings->arrays.location_driver); settings->arrays.location_driver);
RARCH_LOG_OUTPUT("Available location drivers are:\n"); RARCH_LOG_OUTPUT("Available %ss are:\n", prefix);
for (d = 0; location_drivers[d]; d++) for (d = 0; location_drivers[d]; d++)
RARCH_LOG_OUTPUT("\t%s\n", location_drivers[d]->ident); RARCH_LOG_OUTPUT("\t%s\n", location_drivers[d]->ident);
RARCH_WARN("Going to default to first location driver...\n"); RARCH_WARN("Going to default to first %s...\n", prefix);
} }
p_rarch->location_driver = (const location_driver_t*)location_drivers[0]; p_rarch->location_driver = (const location_driver_t*)location_drivers[0];
@ -32328,7 +32330,7 @@ static void init_location(void)
if (p_rarch->location_data) if (p_rarch->location_data)
return; return;
find_location_driver(p_rarch); location_driver_find_driver(p_rarch, "location driver");
p_rarch->location_data = p_rarch->location_driver->init(); p_rarch->location_data = p_rarch->location_driver->init();
@ -32403,7 +32405,7 @@ static void driver_camera_stop(void)
p_rarch->camera_driver->stop(p_rarch->camera_data); p_rarch->camera_driver->stop(p_rarch->camera_data);
} }
static void camera_driver_find_driver(struct rarch_state *p_rarch) static void camera_driver_find_driver(struct rarch_state *p_rarch, const char *prefix)
{ {
settings_t *settings = p_rarch->configuration_settings; settings_t *settings = p_rarch->configuration_settings;
int i = (int)driver_find_index( int i = (int)driver_find_index(
@ -32417,9 +32419,9 @@ static void camera_driver_find_driver(struct rarch_state *p_rarch)
if (verbosity_is_enabled()) if (verbosity_is_enabled())
{ {
unsigned d; unsigned d;
RARCH_ERR("Couldn't find any camera driver named \"%s\"\n", RARCH_ERR("Couldn't find any %s named \"%s\"\n", prefix,
settings->arrays.camera_driver); settings->arrays.camera_driver);
RARCH_LOG_OUTPUT("Available camera drivers are:\n"); RARCH_LOG_OUTPUT("Available %ss are:\n", prefix);
for (d = 0; camera_drivers[d]; d++) for (d = 0; camera_drivers[d]; d++)
{ {
if (camera_drivers[d]) if (camera_drivers[d])
@ -32428,7 +32430,7 @@ static void camera_driver_find_driver(struct rarch_state *p_rarch)
} }
} }
RARCH_WARN("Going to default to first camera driver...\n"); RARCH_WARN("Going to default to first %s...\n", prefix);
} }
p_rarch->camera_driver = (const camera_driver_t*)camera_drivers[0]; p_rarch->camera_driver = (const camera_driver_t*)camera_drivers[0];
@ -32605,7 +32607,7 @@ static void drivers_init(struct rarch_state *p_rarch, int flags)
/* Resource leaks will follow if camera is initialized twice. */ /* Resource leaks will follow if camera is initialized twice. */
if (!p_rarch->camera_data) if (!p_rarch->camera_data)
{ {
camera_driver_find_driver(p_rarch); camera_driver_find_driver(p_rarch, "camera driver");
if (p_rarch->camera_driver) if (p_rarch->camera_driver)
{ {
@ -34721,10 +34723,11 @@ static void retroarch_validate_cpu_features(void)
} }
#ifdef HAVE_MENU #ifdef HAVE_MENU
static bool find_menu_driver( static void menu_driver_find_driver(
struct rarch_state *p_rarch, struct rarch_state *p_rarch,
settings_t *settings) const char *prefix)
{ {
settings_t *settings = p_rarch->configuration_settings;
int i = (int)driver_find_index( int i = (int)driver_find_index(
"menu_driver", "menu_driver",
settings->arrays.menu_driver); settings->arrays.menu_driver);
@ -34737,9 +34740,9 @@ static bool find_menu_driver(
if (verbosity_is_enabled()) if (verbosity_is_enabled())
{ {
unsigned d; unsigned d;
RARCH_WARN("Couldn't find any menu driver named \"%s\"\n", RARCH_WARN("Couldn't find any %s named \"%s\"\n", prefix,
settings->arrays.menu_driver); settings->arrays.menu_driver);
RARCH_LOG_OUTPUT("Available menu drivers are:\n"); RARCH_LOG_OUTPUT("Available %ss are:\n", prefix);
for (d = 0; menu_ctx_drivers[d]; d++) for (d = 0; menu_ctx_drivers[d]; d++)
{ {
if (menu_ctx_drivers[d]) if (menu_ctx_drivers[d])
@ -34747,17 +34750,15 @@ static bool find_menu_driver(
RARCH_LOG_OUTPUT("\t%s\n", menu_ctx_drivers[d]->ident); RARCH_LOG_OUTPUT("\t%s\n", menu_ctx_drivers[d]->ident);
} }
} }
RARCH_WARN("Going to default to first menu driver...\n"); RARCH_WARN("Going to default to first %s...\n", prefix);
} }
p_rarch->menu_driver_ctx = (const menu_ctx_driver_t*) p_rarch->menu_driver_ctx = (const menu_ctx_driver_t*)
menu_ctx_drivers[0]; menu_ctx_drivers[0];
if (!p_rarch->menu_driver_ctx) if (!p_rarch->menu_driver_ctx)
return false; retroarch_fail(1, "find_menu_driver()");
} }
return true;
} }
#endif #endif
@ -34939,15 +34940,15 @@ bool retroarch_main_init(int argc, char *argv[])
* Attempts to find a default driver for * Attempts to find a default driver for
* all driver types. * all driver types.
*/ */
audio_driver_find_driver(p_rarch); audio_driver_find_driver(p_rarch, "audio driver");
video_driver_find_driver(p_rarch); video_driver_find_driver(p_rarch, "video driver");
input_driver_find_driver(p_rarch); input_driver_find_driver(p_rarch, "input driver");
camera_driver_find_driver(p_rarch); camera_driver_find_driver(p_rarch, "camera driver");
bluetooth_driver_ctl(RARCH_BLUETOOTH_CTL_FIND_DRIVER, NULL); bluetooth_driver_ctl(RARCH_BLUETOOTH_CTL_FIND_DRIVER, NULL);
wifi_driver_ctl(RARCH_WIFI_CTL_FIND_DRIVER, NULL); wifi_driver_ctl(RARCH_WIFI_CTL_FIND_DRIVER, NULL);
find_location_driver(p_rarch); location_driver_find_driver(p_rarch, "location driver");
#ifdef HAVE_MENU #ifdef HAVE_MENU
find_menu_driver(p_rarch, p_rarch->configuration_settings); menu_driver_find_driver(p_rarch, "menu driver");
#endif #endif
/* Attempt to initialize core */ /* Attempt to initialize core */

View File

@ -114,7 +114,7 @@ static void audio_mixer_menu_stop_cb(
static void video_driver_gpu_record_deinit(struct rarch_state *p_rarch); static void video_driver_gpu_record_deinit(struct rarch_state *p_rarch);
static retro_proc_address_t video_driver_get_proc_address(const char *sym); static retro_proc_address_t video_driver_get_proc_address(const char *sym);
static uintptr_t video_driver_get_current_framebuffer(void); static uintptr_t video_driver_get_current_framebuffer(void);
static bool video_driver_find_driver(struct rarch_state *p_rarch); static bool video_driver_find_driver(struct rarch_state *p_rarch, const char *prefix);
#ifdef HAVE_BSV_MOVIE #ifdef HAVE_BSV_MOVIE
static void bsv_movie_deinit(struct rarch_state *p_rarch); static void bsv_movie_deinit(struct rarch_state *p_rarch);