diff --git a/config.def.h b/config.def.h index b634f2ee07..9763d42493 100644 --- a/config.def.h +++ b/config.def.h @@ -741,6 +741,12 @@ static const bool audio_enable_menu_bgm = false; #define DEFAULT_NOTIFICATION_SHOW_AUTOCONFIG true #endif +#if defined(HAVE_SCREENSHOTS) +#define DEFAULT_NOTIFICATION_SHOW_SCREENSHOT_TAKEN true +#else +#define DEFAULT_NOTIFICATION_SHOW_SCREENSHOT_TAKEN false +#endif + /* Display a notification when cheats are being * applied */ #define DEFAULT_NOTIFICATION_SHOW_CHEATS_APPLIED true diff --git a/configuration.c b/configuration.c index d48e5d6f05..8ca9937439 100644 --- a/configuration.c +++ b/configuration.c @@ -1473,6 +1473,7 @@ static struct config_bool_setting *populate_settings_bool( SETTING_BOOL("audio_enable", &settings->bools.audio_enable, true, DEFAULT_AUDIO_ENABLE, false); SETTING_BOOL("menu_enable_widgets", &settings->bools.menu_enable_widgets, true, DEFAULT_MENU_ENABLE_WIDGETS, false); SETTING_BOOL("menu_show_load_content_animation", &settings->bools.menu_show_load_content_animation, true, DEFAULT_MENU_SHOW_LOAD_CONTENT_ANIMATION, false); + SETTING_BOOL("notification_show_screenshot_taken", &settings->bools.notification_show_screenshot_taken, true, DEFAULT_NOTIFICATION_SHOW_SCREENSHOT_TAKEN, false); SETTING_BOOL("notification_show_autoconfig", &settings->bools.notification_show_autoconfig, true, DEFAULT_NOTIFICATION_SHOW_AUTOCONFIG, false); SETTING_BOOL("notification_show_cheats_applied", &settings->bools.notification_show_cheats_applied, true, DEFAULT_NOTIFICATION_SHOW_CHEATS_APPLIED, false); SETTING_BOOL("notification_show_remap_load", &settings->bools.notification_show_remap_load, true, DEFAULT_NOTIFICATION_SHOW_REMAP_LOAD, false); diff --git a/configuration.h b/configuration.h index 74fb519a64..552f1ea5ba 100644 --- a/configuration.h +++ b/configuration.h @@ -159,6 +159,7 @@ typedef struct settings bool filter_by_current_core; bool menu_enable_widgets; bool menu_show_load_content_animation; + bool notification_show_screenshot_taken; bool notification_show_autoconfig; bool notification_show_cheats_applied; bool notification_show_remap_load; diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index e8bca9e7bd..25e818353e 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -4320,6 +4320,10 @@ MSG_HASH( MENU_ENUM_LABEL_NOTIFICATION_SHOW_AUTOCONFIG, "notification_show_autoconfig" ) +MSG_HASH( + MENU_ENUM_LABEL_NOTIFICATION_SHOW_SCREENSHOT_TAKEN, + "notification_show_screenshot_taken" + ) MSG_HASH( MENU_ENUM_LABEL_NOTIFICATION_SHOW_CHEATS_APPLIED, "notification_show_cheats_applied" diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index cec622b0cb..72b96f9879 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -3408,6 +3408,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_NOTIFICATION_SHOW_AUTOCONFIG, "Input (Autoconfig) Connection Notifications" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_NOTIFICATION_SHOW_SCREENSHOT_TAKEN, + "Screenshot Notifications" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_NOTIFICATION_SHOW_CHEATS_APPLIED, "Cheat Code Notifications" @@ -3420,6 +3424,10 @@ MSG_HASH( MENU_ENUM_SUBLABEL_NOTIFICATION_SHOW_AUTOCONFIG, "Display an on-screen message when connecting/disconnecting input devices." ) +MSG_HASH( + MENU_ENUM_SUBLABEL_NOTIFICATION_SHOW_SCREENSHOT_TAKEN, + "Display an on-screen message when screenshots are taken." + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_NOTIFICATION_SHOW_REMAP_LOAD, "Input Remap Loaded Notifications" diff --git a/menu/cbs/menu_cbs_sublabel.c b/menu/cbs/menu_cbs_sublabel.c index 09f0c8e0e0..66689861f9 100644 --- a/menu/cbs/menu_cbs_sublabel.c +++ b/menu/cbs/menu_cbs_sublabel.c @@ -381,6 +381,9 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_restart_retroarch, MENU_ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_widgets, MENU_ENUM_SUBLABEL_MENU_WIDGETS_ENABLE) DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_show_load_content_animation, MENU_ENUM_SUBLABEL_MENU_SHOW_LOAD_CONTENT_ANIMATION) DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_notification_show_autoconfig, MENU_ENUM_SUBLABEL_NOTIFICATION_SHOW_AUTOCONFIG) +#ifdef HAVE_SCREENSHOTS +DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_notification_show_screenshot_taken, MENU_ENUM_SUBLABEL_NOTIFICATION_SHOW_SCREENSHOT_TAKEN) +#endif #ifdef HAVE_CHEATS DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_notification_show_cheats_applied, MENU_ENUM_SUBLABEL_NOTIFICATION_SHOW_CHEATS_APPLIED) #endif @@ -2991,6 +2994,11 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_NOTIFICATION_SHOW_AUTOCONFIG: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_notification_show_autoconfig); break; + case MENU_ENUM_LABEL_NOTIFICATION_SHOW_SCREENSHOT_TAKEN: +#ifdef HAVE_SCREENSHOTS + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_notification_show_screenshot_taken); +#endif + break; case MENU_ENUM_LABEL_NOTIFICATION_SHOW_CHEATS_APPLIED: #ifdef HAVE_CHEATS BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_notification_show_cheats_applied); diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 2cbbf19dd6..8f0eedf605 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -7563,6 +7563,9 @@ unsigned menu_displaylist_build_list( {MENU_ENUM_LABEL_MEMORY_UPDATE_INTERVAL, PARSE_ONLY_UINT, false }, {MENU_ENUM_LABEL_MENU_SHOW_LOAD_CONTENT_ANIMATION, PARSE_ONLY_BOOL, false }, {MENU_ENUM_LABEL_NOTIFICATION_SHOW_AUTOCONFIG, PARSE_ONLY_BOOL, true }, +#ifdef HAVE_SCREENSHOTS + {MENU_ENUM_LABEL_NOTIFICATION_SHOW_SCREENSHOT_TAKEN, PARSE_ONLY_BOOL, true }, +#endif {MENU_ENUM_LABEL_NOTIFICATION_SHOW_CHEATS_APPLIED, PARSE_ONLY_BOOL, true }, {MENU_ENUM_LABEL_NOTIFICATION_SHOW_REMAP_LOAD, PARSE_ONLY_BOOL, true }, {MENU_ENUM_LABEL_NOTIFICATION_SHOW_CONFIG_OVERRIDE_LOAD, PARSE_ONLY_BOOL, true }, diff --git a/menu/menu_setting.c b/menu/menu_setting.c index b8259a47ed..1040540d0f 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -12606,6 +12606,21 @@ static bool setting_append_list( general_read_handler, SD_FLAG_NONE); + CONFIG_BOOL( + list, list_info, + &settings->bools.notification_show_screenshot_taken, + MENU_ENUM_LABEL_NOTIFICATION_SHOW_SCREENSHOT_TAKEN, + MENU_ENUM_LABEL_VALUE_NOTIFICATION_SHOW_SCREENSHOT_TAKEN, + DEFAULT_NOTIFICATION_SHOW_SCREENSHOT_TAKEN, + MENU_ENUM_LABEL_VALUE_OFF, + MENU_ENUM_LABEL_VALUE_ON, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler, + SD_FLAG_NONE); + CONFIG_BOOL( list, list_info, &settings->bools.notification_show_cheats_applied, diff --git a/msg_hash.h b/msg_hash.h index 88a721bbdd..c7ce495eef 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -2565,6 +2565,7 @@ enum msg_hash_enums MENU_LABEL(MENU_SHOW_LOAD_CONTENT_ANIMATION), MENU_LABEL(NOTIFICATION_SHOW_AUTOCONFIG), + MENU_LABEL(NOTIFICATION_SHOW_SCREENSHOT_TAKEN), MENU_LABEL(NOTIFICATION_SHOW_CHEATS_APPLIED), MENU_LABEL(NOTIFICATION_SHOW_REMAP_LOAD), MENU_LABEL(NOTIFICATION_SHOW_CONFIG_OVERRIDE_LOAD), diff --git a/tasks/task_screenshot.c b/tasks/task_screenshot.c index 6c4efc9ab4..e8ed7e6060 100644 --- a/tasks/task_screenshot.c +++ b/tasks/task_screenshot.c @@ -67,6 +67,7 @@ struct screenshot_task_state bool is_paused; bool history_list_enable; bool widgets_ready; + bool widgets_take_screenshot; int pitch; unsigned width; @@ -236,7 +237,8 @@ static void task_screenshot_callback(retro_task_t *task, if (!state) return; - if (!state->silence && state->widgets_ready) + if (!state->silence && state->widgets_ready + && state->widgets_take_screenshot) gfx_widget_screenshot_taken(dispwidget_get_ptr(), state->shotname, state->filename); @@ -288,8 +290,10 @@ static bool screenshot_dump( state->userbuf = userbuf; #if defined(HAVE_GFX_WIDGETS) state->widgets_ready = gfx_widgets_ready(); + state->widgets_take_screenshot= settings->bools.notification_show_screenshot_taken; #else state->widgets_ready = false; + state->widgets_take_screenshot= false; #endif state->silence = savestate; state->history_list_enable = settings->bools.history_list_enable;