Create input_driver_free

This commit is contained in:
twinaphex 2015-03-23 07:15:41 +01:00
parent 95664b038e
commit f5b2b8fdf7
3 changed files with 22 additions and 17 deletions

View File

@ -389,10 +389,9 @@ void uninit_video_input(void)
if (
!driver->input_data_own &&
(driver->input_data != driver->video_data) &&
driver->input &&
driver->input->free)
driver->input->free(driver->input_data);
(driver->input_data != driver->video_data)
)
input_driver_free();
if (
!driver->video_data_own &&

View File

@ -263,23 +263,27 @@ bool input_driver_grab_mouse(bool state)
{
driver_t *driver = driver_get_ptr();
if (!driver)
return false;
if (!driver->input)
return false;
if (!driver->input->grab_mouse)
return false;
driver->input->grab_mouse(driver->input_data, state);
return true;
if (driver && driver->input && driver->input->grab_mouse)
{
driver->input->grab_mouse(driver->input_data, state);
return true;
}
return false;
}
void *input_driver_init(void)
{
driver_t *driver = driver_get_ptr();
if (!driver)
return NULL;
if (!driver->input)
return NULL;
return driver->input->init();
if (driver && driver->input && driver->input->init)
return driver->input->init();
return NULL;
}
void input_driver_free(void)
{
driver_t *driver = driver_get_ptr();
if (driver && driver->input && driver->input->free)
driver->input->free(driver->input_data);
}

View File

@ -152,6 +152,8 @@ bool input_driver_grab_mouse(bool state);
void *input_driver_init(void);
void input_driver_free(void);
#ifdef __cplusplus
}
#endif