Contain driver->input_data usage pt. 2

This commit is contained in:
twinaphex 2015-11-25 03:25:31 +01:00
parent d2f771440b
commit c9db73e944
4 changed files with 27 additions and 7 deletions

View File

@ -467,6 +467,6 @@ void uninit_drivers(int flags)
video_driver_ctl(RARCH_DISPLAY_CTL_DEINIT, NULL);
if ((flags & DRIVER_INPUT) && !driver->input_data_own)
driver->input_data = NULL;
input_driver_destroy();
}

View File

@ -762,14 +762,9 @@ static void *d3d_init(const video_info_t *info,
d3d_deinit_chain(vid);
d3d_init_chain(vid, info);
if (input && input_data)
{
*input = driver->input;
*input_data = driver->input_data;
}
input_driver_set(input, input_data);
driver->video_data_own = true;
driver->input_data_own = true;
return vid;
}
}

View File

@ -241,6 +241,19 @@ bool input_driver_init(void)
return true;
}
void input_driver_set(const input_driver_t **input, void **input_data)
{
driver_t *driver = driver_get_ptr();
if (input && input_data)
{
*input = driver->input;
*input_data = driver->input_data;
}
driver->input_data_own = true;
}
void input_driver_free(void)
{
driver_t *driver = driver_get_ptr();
@ -249,6 +262,14 @@ void input_driver_free(void)
driver->input->free(driver->input_data);
}
void input_driver_destroy(void)
{
driver_t *driver = driver_get_ptr();
if (driver)
driver->input_data = NULL;
}
bool input_driver_keyboard_mapping_is_blocked(void)
{
driver_t *driver = driver_get_ptr();

View File

@ -169,12 +169,16 @@ bool input_driver_init(void);
void input_driver_free(void);
void input_driver_destroy(void);
bool input_driver_keyboard_mapping_is_blocked(void);
void input_driver_keyboard_mapping_set_block(bool value);
const input_driver_t *input_get_ptr(void *data);
void input_driver_set(const input_driver_t **input, void **input_data);
#ifdef __cplusplus
}
#endif