diff --git a/console/rmenu/context/rmenu_ctx_ps3.c b/console/rmenu/context/rmenu_ctx_ps3.c index ca569416ea..821bc28851 100644 --- a/console/rmenu/context/rmenu_ctx_ps3.c +++ b/console/rmenu/context/rmenu_ctx_ps3.c @@ -14,6 +14,11 @@ * If not, see . */ +#if defined(__CELLOS_LV2__) +#include +#include +#endif + #ifdef HAVE_SYSUTILS #include #endif @@ -113,6 +118,32 @@ static void rmenu_ctx_ps3_render_menu_enable(bool enable) gl->menu_render = enable; } +static void rmenu_ctx_ps3_screenshot_enable(bool enable) +{ +#if(CELL_SDK_VERSION > 0x340000) + if(enable) + { + cellSysmoduleLoadModule(CELL_SYSMODULE_SYSUTIL_SCREENSHOT); + CellScreenShotSetParam screenshot_param = {0, 0, 0, 0}; + + screenshot_param.photo_title = "RetroArch PS3"; + screenshot_param.game_title = "RetroArch PS3"; + cellScreenShotSetParameter (&screenshot_param); + cellScreenShotEnable(); + } + else + { + cellScreenShotDisable(); + cellSysmoduleUnloadModule(CELL_SYSMODULE_SYSUTIL_SCREENSHOT); + } +#endif +} + +static void rmenu_ctx_ps3_screenshot_dump(void *data) +{ + (void)data; +} + const rmenu_context_t rmenu_ctx_ps3 = { .clear = rmenu_ctx_ps3_clear, .blend = rmenu_ctx_ps3_blend, @@ -122,6 +153,8 @@ const rmenu_context_t rmenu_ctx_ps3 = { .render_bg = rmenu_ctx_ps3_render_bg, .render_menu_enable = rmenu_ctx_ps3_render_menu_enable, .render_msg = rmenu_ctx_ps3_render_msg, + .screenshot_enable = rmenu_ctx_ps3_screenshot_enable, + .screenshot_dump = rmenu_ctx_ps3_screenshot_dump, .swap_buffers = rmenu_ctx_ps3_swap_buffers, .set_default_pos = rmenu_ctx_ps3_set_default_pos, }; diff --git a/console/rmenu/context/rmenu_ctx_xdk.c b/console/rmenu/context/rmenu_ctx_xdk.c index bb79b1f590..cd74017386 100644 --- a/console/rmenu/context/rmenu_ctx_xdk.c +++ b/console/rmenu/context/rmenu_ctx_xdk.c @@ -147,6 +147,15 @@ static void rmenu_ctx_xdk_render_menu_enable(bool enable) { } +static void rmenu_ctx_xdk_screenshot_enable(bool enable) +{ +} + +static void rmenu_ctx_xdk_screenshot_dump(void *data) +{ + (void)data; +} + const rmenu_context_t rmenu_ctx_xdk = { rmenu_ctx_xdk_clear, rmenu_ctx_xdk_blend, @@ -156,6 +165,8 @@ const rmenu_context_t rmenu_ctx_xdk = { rmenu_ctx_xdk_render_bg, rmenu_ctx_xdk_render_menu_enable, rmenu_ctx_xdk_render_msg, + rmenu_ctx_xdk_screenshot_enable, + rmenu_ctx_xdk_screenshot_dump, rmenu_ctx_xdk_swap_buffers, rmenu_ctx_xdk_set_default_pos, }; diff --git a/console/rmenu/rmenu.c b/console/rmenu/rmenu.c index 61da5fb06d..93f2699b83 100644 --- a/console/rmenu/rmenu.c +++ b/console/rmenu/rmenu.c @@ -16,7 +16,6 @@ #if defined(__CELLOS_LV2__) #include -#include #if(CELL_SDK_VERSION > 0x340000) #include @@ -1374,30 +1373,13 @@ static void producesettingentry(menu *current_menu, unsigned switchvalue, uint64 case SETTING_ENABLE_SCREENSHOTS: if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) { -#if(CELL_SDK_VERSION > 0x340000) - g_console.screenshots_enable = !g_console.screenshots_enable; - if(g_console.screenshots_enable) - { - cellSysmoduleLoadModule(CELL_SYSMODULE_SYSUTIL_SCREENSHOT); - CellScreenShotSetParam screenshot_param = {0, 0, 0, 0}; - - screenshot_param.photo_title = "RetroArch PS3"; - screenshot_param.game_title = "RetroArch PS3"; - cellScreenShotSetParameter (&screenshot_param); - cellScreenShotEnable(); - } - else - { - cellScreenShotDisable(); - cellSysmoduleUnloadModule(CELL_SYSMODULE_SYSUTIL_SCREENSHOT); - } -#endif + g_console.screenshots_enable = !g_console.screenshots_enable; + context->screenshot_enable(g_console.screenshots_enable); } if(input & (1 << RMENU_DEVICE_NAV_START)) { -#if(CELL_SDK_VERSION > 0x340000) - g_console.screenshots_enable = true; -#endif + g_console.screenshots_enable = true; + context->screenshot_enable(g_console.screenshots_enable); } break; #if defined(HAVE_CG) || defined(HAVE_HLSL) || defined(HAVE_GLSL) @@ -2075,6 +2057,11 @@ static void ingame_menu_screenshot(menu *current_menu, uint64_t input) menu_stack_decrement(); context->render_menu_enable(true); } + + if(input & (1 << RMENU_DEVICE_NAV_B)) + { + context->screenshot_dump(NULL); + } } } diff --git a/console/rmenu/rmenu.h b/console/rmenu/rmenu.h index 9f6b845ed9..adece9aae1 100644 --- a/console/rmenu/rmenu.h +++ b/console/rmenu/rmenu.h @@ -87,6 +87,8 @@ typedef struct rmenu_context void (*render_bg)(rmenu_position_t *position); void (*render_menu_enable)(bool enable); void (*render_msg)(float xpos, float ypos, float scale, unsigned color, const char *msg, ...); + void (*screenshot_enable)(bool enable); + void (*screenshot_dump)(void *data); void (*swap_buffers)(void); void (*set_default_pos)(rmenu_default_positions_t *position); } rmenu_context_t;