Create RARCH_DRIVER_CTL_SET_NONBLOCK_STATE

This commit is contained in:
twinaphex 2015-12-11 11:04:16 +01:00
parent 1b768f7dcd
commit 45de6fe3b5
4 changed files with 15 additions and 17 deletions

View File

@ -211,7 +211,7 @@ static void driver_adjust_system_rates(void)
if (system->force_nonblock)
event_command(EVENT_CMD_VIDEO_SET_NONBLOCKING_STATE);
else
driver_set_nonblock_state();
driver_ctl(RARCH_DRIVER_CTL_SET_NONBLOCK_STATE, NULL);
}
/**
@ -222,12 +222,12 @@ static void driver_adjust_system_rates(void)
* If nonblock state is false, sets
* blocking state for both audio and video drivers instead.
**/
void driver_set_nonblock_state(void)
static void driver_set_nonblock_state(void)
{
rarch_system_info_t *system = NULL;
settings_t *settings = config_get_ptr();
bool enable = input_driver_ctl(
RARCH_INPUT_CTL_IS_NONBLOCK_STATE, NULL);
rarch_system_info_t *system = NULL;
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
@ -370,7 +370,7 @@ void init_drivers(int flags)
{
/* Keep non-throttled state as good as possible. */
if (input_driver_ctl(RARCH_INPUT_CTL_IS_NONBLOCK_STATE, NULL))
driver_set_nonblock_state();
driver_ctl(RARCH_DRIVER_CTL_SET_NONBLOCK_STATE, NULL);
}
}
@ -458,6 +458,9 @@ bool driver_ctl(enum driver_ctl_state state, void *data)
driver_adjust_system_rates();
}
break;
case RARCH_DRIVER_CTL_SET_NONBLOCK_STATE:
driver_set_nonblock_state();
break;
case RARCH_DRIVER_CTL_NONE:
default:
break;

View File

@ -185,7 +185,12 @@ enum driver_ctl_state
/* Sets monitor refresh rate to new value by calling
* video_monitor_set_refresh_rate(). Subsequently
* calls audio_monitor_set_refresh_rate(). */
RARCH_DRIVER_CTL_SET_REFRESH_RATE
RARCH_DRIVER_CTL_SET_REFRESH_RATE,
/* Sets audio and video drivers to nonblock state.
*
* If nonblock state is false, sets blocking state for both
* audio and video drivers instead. */
RARCH_DRIVER_CTL_SET_NONBLOCK_STATE
};
@ -248,16 +253,6 @@ bool find_prev_driver(const char *label, char *s, size_t len);
**/
bool find_next_driver(const char *label, char *s, size_t len);
/**
* driver_set_nonblock_state:
*
* Sets audio and video drivers to nonblock state.
*
* If nonblock state is false, sets blocking state for both
* audio and video drivers instead.
**/
void driver_set_nonblock_state(void);
/**
* driver_update_system_av_info:
* @info : pointer to new A/V info

View File

@ -324,7 +324,7 @@ static void menu_driver_toggle(bool latch)
else
{
if (!runloop_ctl(RUNLOOP_CTL_IS_SHUTDOWN, NULL))
driver_set_nonblock_state();
driver_ctl(RARCH_DRIVER_CTL_SET_NONBLOCK_STATE, NULL);
if (settings && settings->menu.pause_libretro)
event_command(EVENT_CMD_AUDIO_START);

View File

@ -251,7 +251,7 @@ static void check_fast_forward_button(bool fastforward_pressed,
else
return;
driver_set_nonblock_state();
driver_ctl(RARCH_DRIVER_CTL_SET_NONBLOCK_STATE, NULL);
}
/**