diff --git a/gfx/gfx_widgets.c b/gfx/gfx_widgets.c index 5423f2e9cc..23e971bc66 100644 --- a/gfx/gfx_widgets.c +++ b/gfx/gfx_widgets.c @@ -2334,25 +2334,11 @@ bool gfx_widgets_set_fps_text( } #ifdef HAVE_TRANSLATE -int gfx_widgets_ai_service_overlay_get_state(void) -{ - dispgfx_widget_t *p_dispwidget = (dispgfx_widget_t*)dispwidget_get_ptr(); - return p_dispwidget->ai_service_overlay_state; -} - -bool gfx_widgets_ai_service_overlay_set_state(int state) -{ - dispgfx_widget_t *p_dispwidget = (dispgfx_widget_t*)dispwidget_get_ptr(); - p_dispwidget->ai_service_overlay_state = state; - return true; -} - bool gfx_widgets_ai_service_overlay_load( - char* buffer, unsigned buffer_len, - enum image_type_enum image_type) + dispgfx_widget_t *p_dispwidget, + char* buffer, unsigned buffer_len, + enum image_type_enum image_type) { - dispgfx_widget_t *p_dispwidget = (dispgfx_widget_t*)dispwidget_get_ptr(); - if (p_dispwidget->ai_service_overlay_state == 0) { bool res = gfx_display_reset_textures_list_buffer( @@ -2368,10 +2354,8 @@ bool gfx_widgets_ai_service_overlay_load( return true; } -void gfx_widgets_ai_service_overlay_unload(void) +void gfx_widgets_ai_service_overlay_unload(dispgfx_widget_t *p_dispwidget) { - dispgfx_widget_t *p_dispwidget = (dispgfx_widget_t*)dispwidget_get_ptr(); - if (p_dispwidget->ai_service_overlay_state == 1) { video_driver_texture_unload(&p_dispwidget->ai_service_overlay_texture); diff --git a/gfx/gfx_widgets.h b/gfx/gfx_widgets.h index 68486e87fa..74b4494d2f 100644 --- a/gfx/gfx_widgets.h +++ b/gfx/gfx_widgets.h @@ -385,15 +385,12 @@ void gfx_widget_screenshot_taken(void *data, /* AI Service functions */ #ifdef HAVE_TRANSLATE -int gfx_widgets_ai_service_overlay_get_state(void); - -bool gfx_widgets_ai_service_overlay_set_state(int state); - bool gfx_widgets_ai_service_overlay_load( - char* buffer, unsigned buffer_len, - enum image_type_enum image_type); + dispgfx_widget_t *p_dispwidget, + char* buffer, unsigned buffer_len, + enum image_type_enum image_type); -void gfx_widgets_ai_service_overlay_unload(void); +void gfx_widgets_ai_service_overlay_unload(dispgfx_widget_t *p_dispwidget); #endif void gfx_widgets_start_load_content_animation( diff --git a/retroarch.c b/retroarch.c index cb4381f37a..31ee35d835 100644 --- a/retroarch.c +++ b/retroarch.c @@ -11810,13 +11810,11 @@ static void handle_translation_cb( bool gfx_widgets_paused = p_rarch->gfx_widgets_paused; #ifdef GFX_MENU_WIDGETS - if (gfx_widgets_ai_service_overlay_get_state() != 0 + /* When auto mode is on, we turn off the overlay + * once we have the result for the next call.*/ + if (p_rarch->dispwidget_st.ai_service_overlay_state != 0 && p_rarch->ai_service_auto == 2) - { - /* When auto mode is on, we turn off the overlay - * once we have the result for the next call.*/ - gfx_widgets_ai_service_overlay_unload(); - } + gfx_widgets_ai_service_overlay_unload(&p_rarch->dispwidget_st); #endif #ifdef DEBUG @@ -11946,7 +11944,7 @@ static void handle_translation_cb( if (gfx_widgets_paused) { /* In this case we have to unpause and then repause for a frame */ - gfx_widgets_ai_service_overlay_set_state(2); + p_rarch->dispwidget_st.ai_service_overlay_state = 2; command_event(CMD_EVENT_UNPAUSE, NULL); } #endif @@ -11995,8 +11993,9 @@ static void handle_translation_cb( } ai_res = gfx_widgets_ai_service_overlay_load( - raw_image_file_data, (unsigned) new_image_size, - image_type); + &p_rarch->dispwidget_st, + raw_image_file_data, (unsigned) new_image_size, + image_type); if (!ai_res) { @@ -12011,7 +12010,8 @@ static void handle_translation_cb( { /* In this case we have to unpause and then repause for a frame */ #ifdef HAVE_TRANSLATE - gfx_widgets_ai_service_overlay_set_state(2);/* Unpausing state */ + /* Unpausing state */ + p_rarch->dispwidget_st.ai_service_overlay_state = 2; #endif command_event(CMD_EVENT_UNPAUSE, NULL); } @@ -12528,11 +12528,11 @@ static bool run_translation_service(struct rarch_state *p_rarch, video_driver_pix_fmt = p_rarch->video_driver_pix_fmt; #ifdef HAVE_GFX_WIDGETS - if ( (gfx_widgets_ai_service_overlay_get_state() != 0) + /* For the case when ai service pause is disabled. */ + if ( (p_rarch->dispwidget_st.ai_service_overlay_state != 0) && (p_rarch->ai_service_auto == 1)) { - /* For the case when ai service pause is disabled. */ - gfx_widgets_ai_service_overlay_unload(); + gfx_widgets_ai_service_overlay_unload(&p_rarch->dispwidget_st); goto finish; } #endif @@ -14032,8 +14032,8 @@ static void retroarch_pause_checks(struct rarch_state *p_rarch) } #if defined(HAVE_TRANSLATE) && defined(HAVE_GFX_WIDGETS) - if (gfx_widgets_ai_service_overlay_get_state() == 1) - gfx_widgets_ai_service_overlay_unload(); + if (p_rarch->dispwidget_st.ai_service_overlay_state == 1) + gfx_widgets_ai_service_overlay_unload(&p_rarch->dispwidget_st); #endif } @@ -14128,13 +14128,11 @@ bool command_event(enum event_command cmd, void *data) retroarch_overlay_deinit(p_rarch); #endif #if defined(HAVE_TRANSLATE) && defined(HAVE_GFX_WIDGETS) - if (gfx_widgets_ai_service_overlay_get_state() != 0) - { - /* Because the overlay is a display widget, - * it's going to be written - * over the menu, so we unset it here. */ - gfx_widgets_ai_service_overlay_unload(); - } + /* Because the overlay is a display widget, + * it's going to be written + * over the menu, so we unset it here. */ + if (p_rarch->dispwidget_st.ai_service_overlay_state != 0) + gfx_widgets_ai_service_overlay_unload(&p_rarch->dispwidget_st); #endif break; case CMD_EVENT_OVERLAY_INIT: @@ -14206,7 +14204,7 @@ bool command_event(enum event_command cmd, void *data) * toggle button, so turn it off now. */ p_rarch->ai_service_auto = 0; #ifdef HAVE_MENU_WIDGETS - gfx_widgets_ai_service_overlay_unload(); + gfx_widgets_ai_service_overlay_unload(&p_rarch->dispwidget_st); #endif } else @@ -36207,10 +36205,10 @@ static enum runloop_state runloop_check_state( #endif #if defined(HAVE_TRANSLATE) && defined(HAVE_GFX_WIDGETS) - if (gfx_widgets_ai_service_overlay_get_state() == 3) + if (p_rarch->dispwidget_st.ai_service_overlay_state == 3) { command_event(CMD_EVENT_PAUSE, NULL); - gfx_widgets_ai_service_overlay_set_state(1); + p_rarch->dispwidget_st.ai_service_overlay_state = 1; } #endif