diff --git a/camera/camera_driver.c b/camera/camera_driver.c index 32f0e3441f..ce35c4797b 100644 --- a/camera/camera_driver.c +++ b/camera/camera_driver.c @@ -48,6 +48,12 @@ static const camera_driver_t *camera_drivers[] = { NULL, }; +static struct retro_camera_callback camera_cb; +static const camera_driver_t *camera_driver = NULL; +static void *camera_data = NULL; +static bool camera_driver_active = false; +static bool camera_driver_data_own = false; + /** * camera_driver_find_handle: * @idx : index of driver to get handle to. @@ -102,14 +108,20 @@ bool driver_camera_start(void) return camera_driver_ctl(RARCH_CAMERA_CTL_START, NULL); } +void camera_driver_poll(void) +{ + if (!camera_cb.caps) + return; + if (!camera_driver || !camera_driver->poll || !camera_data) + return; + camera_driver->poll(camera_data, + camera_cb.frame_raw_framebuffer, + camera_cb.frame_opengl_texture); +} + bool camera_driver_ctl(enum rarch_camera_ctl_state state, void *data) { settings_t *settings = config_get_ptr(); - static struct retro_camera_callback camera_cb; - static const camera_driver_t *camera_driver = NULL; - static void *camera_data = NULL; - static bool camera_driver_active = false; - static bool camera_driver_data_own = false; switch (state) { @@ -195,15 +207,6 @@ bool camera_driver_ctl(enum rarch_camera_ctl_state state, void *data) "Camera is explicitly disabled.\n", 1, 180, false); } break; - case RARCH_CAMERA_CTL_POLL: - if (!camera_cb.caps) - return false; - if (!camera_driver || !camera_driver->poll || !camera_data) - return false; - camera_driver->poll(camera_data, - camera_cb.frame_raw_framebuffer, - camera_cb.frame_opengl_texture); - break; case RARCH_CAMERA_CTL_SET_CB: { struct retro_camera_callback *cb = diff --git a/camera/camera_driver.h b/camera/camera_driver.h index c91433bdf0..d9790bb96f 100644 --- a/camera/camera_driver.h +++ b/camera/camera_driver.h @@ -37,7 +37,6 @@ enum rarch_camera_ctl_state RARCH_CAMERA_CTL_UNSET_ACTIVE, RARCH_CAMERA_CTL_IS_ACTIVE, RARCH_CAMERA_CTL_FIND_DRIVER, - RARCH_CAMERA_CTL_POLL, RARCH_CAMERA_CTL_SET_CB, RARCH_CAMERA_CTL_STOP, RARCH_CAMERA_CTL_START, diff --git a/runloop.c b/runloop.c index 487e9460ef..6ccdf6a76d 100644 --- a/runloop.c +++ b/runloop.c @@ -1164,7 +1164,7 @@ int runloop_iterate(unsigned *sleep_ms) bsv_movie_set_frame_start(); - camera_driver_ctl(RARCH_CAMERA_CTL_POLL, NULL); + camera_driver_poll(); /* Update binds for analog dpad modes. */ for (i = 0; i < max_users; i++)