mirror of
https://github.com/libretro/RetroArch
synced 2025-02-22 12:40:09 +00:00
Refactor find_driver_index
This commit is contained in:
parent
e4629c87cb
commit
623c02405d
93
driver.c
93
driver.c
@ -243,51 +243,70 @@ static const menu_ctx_driver_t *menu_ctx_drivers[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static const char *find_driver_ident(unsigned cmd, int i)
|
||||||
|
{
|
||||||
|
switch (cmd)
|
||||||
|
{
|
||||||
|
case RARCH_DRIVER_LOCATION:
|
||||||
|
return location_drivers[i]->ident;
|
||||||
|
case RARCH_DRIVER_CAMERA:
|
||||||
|
return camera_drivers[i]->ident;
|
||||||
|
case RARCH_DRIVER_OSK:
|
||||||
|
return osk_drivers[i]->ident;
|
||||||
|
#ifdef HAVE_MENU
|
||||||
|
case RARCH_DRIVER_MENU:
|
||||||
|
return menu_ctx_drivers[i]->ident;
|
||||||
|
#endif
|
||||||
|
case RARCH_DRIVER_INPUT:
|
||||||
|
return input_drivers[i]->ident;
|
||||||
|
case RARCH_DRIVER_VIDEO:
|
||||||
|
return video_drivers[i]->ident;
|
||||||
|
case RARCH_DRIVER_AUDIO:
|
||||||
|
return audio_drivers[i]->ident;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
static const void *find_driver_nonempty(unsigned cmd, int i)
|
||||||
|
{
|
||||||
|
switch (cmd)
|
||||||
|
{
|
||||||
|
case RARCH_DRIVER_LOCATION:
|
||||||
|
return location_drivers[i];
|
||||||
|
case RARCH_DRIVER_CAMERA:
|
||||||
|
return camera_drivers[i];
|
||||||
|
case RARCH_DRIVER_OSK:
|
||||||
|
return osk_drivers[i];
|
||||||
|
#ifdef HAVE_MENU
|
||||||
|
case RARCH_DRIVER_MENU:
|
||||||
|
return menu_ctx_drivers[i];
|
||||||
|
#endif
|
||||||
|
case RARCH_DRIVER_INPUT:
|
||||||
|
return input_drivers[i];
|
||||||
|
case RARCH_DRIVER_VIDEO:
|
||||||
|
return video_drivers[i];
|
||||||
|
case RARCH_DRIVER_AUDIO:
|
||||||
|
return audio_drivers[i];
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static int find_driver_index(unsigned cmd, const char *driver)
|
static int find_driver_index(unsigned cmd, const char *driver)
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
|
|
||||||
switch (cmd)
|
switch (cmd)
|
||||||
{
|
{
|
||||||
case RARCH_DRIVER_LOCATION:
|
|
||||||
for (i = 0; location_drivers[i]; i++)
|
|
||||||
if (!strcasecmp(driver, location_drivers[i]->ident))
|
|
||||||
return i;
|
|
||||||
break;
|
|
||||||
case RARCH_DRIVER_CAMERA:
|
|
||||||
for (i = 0; camera_drivers[i]; i++)
|
|
||||||
if (!strcasecmp(driver, camera_drivers[i]->ident))
|
|
||||||
return i;
|
|
||||||
break;
|
|
||||||
case RARCH_DRIVER_OSK:
|
|
||||||
for (i = 0; osk_drivers[i]; i++)
|
|
||||||
if (!strcasecmp(driver, osk_drivers[i]->ident))
|
|
||||||
return i;
|
|
||||||
break;
|
|
||||||
#ifdef HAVE_MENU
|
|
||||||
case RARCH_DRIVER_MENU:
|
|
||||||
for (i = 0; menu_ctx_drivers[i]; i++)
|
|
||||||
if (!strcasecmp(driver, menu_ctx_drivers[i]->ident))
|
|
||||||
return i;
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
case RARCH_DRIVER_INPUT:
|
|
||||||
for (i = 0; input_drivers[i]; i++)
|
|
||||||
if (!strcasecmp(driver, input_drivers[i]->ident))
|
|
||||||
return i;
|
|
||||||
break;
|
|
||||||
case RARCH_DRIVER_VIDEO:
|
|
||||||
for (i = 0; video_drivers[i]; i++)
|
|
||||||
if (!strcasecmp(driver, video_drivers[i]->ident))
|
|
||||||
return i;
|
|
||||||
break;
|
|
||||||
case RARCH_DRIVER_AUDIO:
|
|
||||||
for (i = 0; audio_drivers[i]; i++)
|
|
||||||
if (!strcasecmp(driver, audio_drivers[i]->ident))
|
|
||||||
return i;
|
|
||||||
break;
|
|
||||||
case RARCH_DRIVER_NONE:
|
case RARCH_DRIVER_NONE:
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
|
for (i = 0; find_driver_nonempty(cmd, i) != NULL; i++)
|
||||||
|
if (!strcasecmp(driver, find_driver_ident(cmd, i)))
|
||||||
|
return i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user