diff --git a/frontend/frontend_driver.c b/frontend/frontend_driver.c index 5438f20d93..6b76cdae19 100644 --- a/frontend/frontend_driver.c +++ b/frontend/frontend_driver.c @@ -176,4 +176,20 @@ environment_get_t frontend_driver_environment_get_ptr(void) return NULL; return driver->frontend_ctx->environment_get; } + +bool frontend_driver_has_get_video_driver_func(void) +{ + driver_t *driver = driver_get_ptr(); + if (!driver || !driver->frontend_ctx || !driver->frontend_ctx->get_video_driver) + return false; + return true; +} + +const struct video_driver *frontend_driver_get_video_driver(void) +{ + driver_t *driver = driver_get_ptr(); + if (!driver || !driver->frontend_ctx || !driver->frontend_ctx->get_video_driver) + return NULL; + return driver->frontend_ctx->get_video_driver(); +} #endif diff --git a/frontend/frontend_driver.h b/frontend/frontend_driver.h index 21c942bc86..3ce77d3aa6 100644 --- a/frontend/frontend_driver.h +++ b/frontend/frontend_driver.h @@ -124,6 +124,9 @@ void frontend_driver_init_first(void *args); environment_get_t frontend_driver_environment_get_ptr(void); +bool frontend_driver_has_get_video_driver_func(void); + +const struct video_driver *frontend_driver_get_video_driver(void); #ifdef __cplusplus } #endif diff --git a/gfx/video_driver.c b/gfx/video_driver.c index eadd119599..2e3baafc7b 100644 --- a/gfx/video_driver.c +++ b/gfx/video_driver.c @@ -241,10 +241,9 @@ static bool find_video_driver(void) } #endif - if (driver->frontend_ctx && - driver->frontend_ctx->get_video_driver) + if (frontend_driver_has_get_video_driver_func()) { - current_video = driver->frontend_ctx->get_video_driver(); + current_video = frontend_driver_get_video_driver(); if (current_video) return true;