mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 13:20:30 +00:00
Create RARCH_DRIVER_CTL_INIT
This commit is contained in:
parent
60f606fc65
commit
ab36e92595
@ -1264,14 +1264,23 @@ bool event_command(enum event_command cmd)
|
||||
#endif
|
||||
break;
|
||||
case EVENT_CMD_DRIVERS_DEINIT:
|
||||
uninit_drivers(DRIVERS_CMD_ALL);
|
||||
{
|
||||
int flags = DRIVERS_CMD_ALL;
|
||||
uninit_drivers(flags);
|
||||
}
|
||||
break;
|
||||
case EVENT_CMD_DRIVERS_INIT:
|
||||
init_drivers(DRIVERS_CMD_ALL);
|
||||
{
|
||||
int flags = DRIVERS_CMD_ALL;
|
||||
driver_ctl(RARCH_DRIVER_CTL_INIT, &flags);
|
||||
}
|
||||
break;
|
||||
case EVENT_CMD_AUDIO_REINIT:
|
||||
uninit_drivers(DRIVER_AUDIO);
|
||||
init_drivers(DRIVER_AUDIO);
|
||||
{
|
||||
int flags = DRIVER_AUDIO;
|
||||
uninit_drivers(flags);
|
||||
driver_ctl(RARCH_DRIVER_CTL_INIT, &flags);
|
||||
}
|
||||
break;
|
||||
case EVENT_CMD_RESET_CONTEXT:
|
||||
event_command(EVENT_CMD_DRIVERS_DEINIT);
|
||||
|
10
driver.c
10
driver.c
@ -307,7 +307,7 @@ static void menu_update_libretro_info(void)
|
||||
* Initializes drivers.
|
||||
* @flags determines which drivers get initialized.
|
||||
**/
|
||||
void init_drivers(int flags)
|
||||
static void init_drivers(int flags)
|
||||
{
|
||||
if (flags & DRIVER_VIDEO)
|
||||
video_driver_ctl(RARCH_DISPLAY_CTL_UNSET_OWN_DRIVER, NULL);
|
||||
@ -439,6 +439,14 @@ bool driver_ctl(enum driver_ctl_state state, void *data)
|
||||
camera_driver_ctl(RARCH_CAMERA_CTL_DESTROY, NULL);
|
||||
retro_uninit_libretro_cbs();
|
||||
break;
|
||||
case RARCH_DRIVER_CTL_INIT:
|
||||
{
|
||||
int *flags = (int*)data;
|
||||
if (!flags)
|
||||
return false;
|
||||
init_drivers(*flags);
|
||||
}
|
||||
return true;
|
||||
case RARCH_DRIVER_CTL_INIT_PRE:
|
||||
audio_driver_ctl(RARCH_AUDIO_CTL_FIND_DRIVER, NULL);
|
||||
video_driver_ctl(RARCH_DISPLAY_CTL_FIND_DRIVER, NULL);
|
||||
|
14
driver.h
14
driver.h
@ -160,7 +160,6 @@ enum analog_dpad_mode
|
||||
ANALOG_DPAD_LAST
|
||||
};
|
||||
|
||||
/* Flags for init_drivers/uninit_drivers */
|
||||
enum
|
||||
{
|
||||
DRIVER_AUDIO = 1 << 0,
|
||||
@ -176,6 +175,10 @@ enum driver_ctl_state
|
||||
{
|
||||
RARCH_DRIVER_CTL_NONE = 0,
|
||||
RARCH_DRIVER_CTL_DEINIT,
|
||||
/* Initializes drivers.
|
||||
* @data is a bitmask which determines
|
||||
* which drivers get initialized. */
|
||||
RARCH_DRIVER_CTL_INIT,
|
||||
/* Attempts to find a default driver for
|
||||
* all driver types.
|
||||
*
|
||||
@ -213,15 +216,6 @@ enum driver_ctl_state
|
||||
* Typically, if a driver intends to make use of this, it should
|
||||
* set this to true at the end of its 'init' function. */
|
||||
|
||||
/**
|
||||
* init_drivers:
|
||||
* @flags : Bitmask of drivers to initialize.
|
||||
*
|
||||
* Initializes drivers.
|
||||
* @flags determines which drivers get initialized.
|
||||
**/
|
||||
void init_drivers(int flags);
|
||||
|
||||
/**
|
||||
* uninit_drivers:
|
||||
* @flags : Bitmask of drivers to deinitialize.
|
||||
|
Loading…
x
Reference in New Issue
Block a user