From 80f67baf1f9e1be06ffb3a2df6b5f00dc11f090b Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 31 Aug 2014 04:03:04 +0200 Subject: [PATCH] (Menu) refactor system_bgm_enable setting --- frontend/menu/backend/menu_common_backend.c | 41 +-------------------- frontend/menu/backend/menu_common_backend.h | 1 - frontend/platform/platform_ps3.c | 4 -- general.h | 3 +- settings.c | 14 ++----- settings_data.c | 31 ++++++++++++++++ 6 files changed, 37 insertions(+), 57 deletions(-) diff --git a/frontend/menu/backend/menu_common_backend.c b/frontend/menu/backend/menu_common_backend.c index 6f2e685c9e..bffae34d9c 100644 --- a/frontend/menu/backend/menu_common_backend.c +++ b/frontend/menu/backend/menu_common_backend.c @@ -34,14 +34,6 @@ #include "../../../settings_data.h" -#if defined(__CELLOS_LV2__) -#include - -#if (CELL_SDK_VERSION > 0x340000) -#include -#endif -#endif - static inline struct gfx_shader *shader_manager_get_current_shader(menu_handle_t *menu, unsigned type) { if (type == MENU_SETTINGS_SHADER_PRESET_PARAMETERS) @@ -419,10 +411,7 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type) add_setting_entry(menu,"audio_latency", 0, setting_data); add_setting_entry(menu,"audio_sync", 0, setting_data); add_setting_entry(menu,"audio_rate_control_delta", 0, setting_data); -#ifdef __CELLOS_LV2__ - file_list_push(menu->selection_buf, "System BGM Control", "", - MENU_SETTINGS_CUSTOM_BGM_CONTROL_ENABLE, 0); -#endif + add_setting_entry(menu,"system_bgm_enable", 0, setting_data); add_setting_entry(menu,"audio_volume", 0, setting_data); add_setting_entry(menu,"audio_device", MENU_SETTINGS_DRIVER_AUDIO_DEVICE, setting_data); break; @@ -3366,29 +3355,6 @@ static int menu_common_setting_set(unsigned id, unsigned action) } break; } - case MENU_SETTINGS_CUSTOM_BGM_CONTROL_ENABLE: - switch (action) - { - case MENU_ACTION_OK: -#if (CELL_SDK_VERSION > 0x340000) - if (g_extern.lifecycle_state & (1ULL << MODE_AUDIO_CUSTOM_BGM_ENABLE)) - g_extern.lifecycle_state &= ~(1ULL << MODE_AUDIO_CUSTOM_BGM_ENABLE); - else - g_extern.lifecycle_state |= (1ULL << MODE_AUDIO_CUSTOM_BGM_ENABLE); - if (g_extern.lifecycle_state & (1ULL << MODE_AUDIO_CUSTOM_BGM_ENABLE)) - cellSysutilEnableBgmPlayback(); - else - cellSysutilDisableBgmPlayback(); - -#endif - break; - case MENU_ACTION_START: -#if (CELL_SDK_VERSION > 0x340000) - g_extern.lifecycle_state |= (1ULL << MODE_AUDIO_CUSTOM_BGM_ENABLE); -#endif - break; - } - break; #ifdef HAVE_NETPLAY case MENU_SETTINGS_NETPLAY_HOST_IP_ADDRESS: if (action == MENU_ACTION_OK) @@ -3707,11 +3673,6 @@ static void menu_common_setting_set_label(char *type_str, case MENU_SETTINGS_CUSTOM_BIND_MODE: strlcpy(type_str, driver.menu->bind_mode_keyboard ? "RetroKeyboard" : "RetroPad", type_str_size); break; - case MENU_SETTINGS_CUSTOM_BGM_CONTROL_ENABLE: - strlcpy(type_str, - (g_extern.lifecycle_state & (1ULL << MODE_AUDIO_CUSTOM_BGM_ENABLE)) ? "ON" : "OFF", - type_str_size); - break; default: *type_str = '\0'; *w = 0; diff --git a/frontend/menu/backend/menu_common_backend.h b/frontend/menu/backend/menu_common_backend.h index 063e399064..db863a2fc5 100644 --- a/frontend/menu/backend/menu_common_backend.h +++ b/frontend/menu/backend/menu_common_backend.h @@ -104,7 +104,6 @@ typedef enum MENU_EXTRACTION_DIR_PATH, MENU_SETTINGS_AUDIO_DSP_FILTER, MENU_SETTINGS_AUDIO_ENABLE, - MENU_SETTINGS_CUSTOM_BGM_CONTROL_ENABLE, MENU_SETTINGS_NETPLAY_HOST_IP_ADDRESS, MENU_SETTINGS_NETPLAY_NICKNAME, diff --git a/frontend/platform/platform_ps3.c b/frontend/platform/platform_ps3.c index c2a43a847d..c8ebe76aef 100644 --- a/frontend/platform/platform_ps3.c +++ b/frontend/platform/platform_ps3.c @@ -250,10 +250,6 @@ static void frontend_ps3_init(void *data) cellScreenShotSetParameter (&screenshot_param); cellScreenShotEnable(); #endif -#ifdef HAVE_SYSUTILS - //if (g_extern.lifecycle_state & (1ULL << MODE_AUDIO_CUSTOM_BGM_ENABLE)) - cellSysutilEnableBgmPlayback(); -#endif #endif #endif } diff --git a/general.h b/general.h index 8e1aba1289..0cd99a824b 100644 --- a/general.h +++ b/general.h @@ -144,7 +144,6 @@ enum menu_enums MODE_EXITSPAWN_MULTIMAN, MODE_VIDEO_TRIPLE_BUFFERING_ENABLE, MODE_VIDEO_FLICKER_FILTER_ENABLE, - MODE_AUDIO_CUSTOM_BGM_ENABLE, MODE_OSK_ENTRY_SUCCESS, MODE_OSK_ENTRY_FAIL, MODE_CLEAR_INPUT, @@ -704,7 +703,9 @@ struct global struct { unsigned mode; + bool system_bgm_enable; } sound; + bool softfilter_enable; } console; diff --git a/settings.c b/settings.c index 38cdd5f05e..ddade8aab9 100644 --- a/settings.c +++ b/settings.c @@ -451,9 +451,9 @@ void config_set_defaults(void) g_settings.user_language = 0; + g_extern.console.sound.system_bgm_enable = false; #ifdef RARCH_CONSOLE g_extern.console.screen.gamma_correction = DEFAULT_GAMMA; - g_extern.lifecycle_state |= (1ULL << MODE_AUDIO_CUSTOM_BGM_ENABLE); g_extern.lifecycle_state |= (1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE); g_extern.lifecycle_state |= (1ULL << MODE_VIDEO_FLICKER_FILTER_ENABLE); @@ -867,7 +867,6 @@ bool config_load_file(const char *path, bool set_defaults) CONFIG_GET_BOOL_EXTERN(console.screen.gamma_correction, "gamma_correction"); bool triple_buffering_enable = false; - bool custom_bgm_enable = false; bool flicker_filter_enable = false; bool soft_filter_enable = false; @@ -879,13 +878,7 @@ bool config_load_file(const char *path, bool set_defaults) g_extern.lifecycle_state &= ~(1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE); } - if (config_get_bool(conf, "custom_bgm_enable", &custom_bgm_enable)) - { - if (custom_bgm_enable) - g_extern.lifecycle_state |= (1ULL << MODE_AUDIO_CUSTOM_BGM_ENABLE); - else - g_extern.lifecycle_state &= ~(1ULL << MODE_AUDIO_CUSTOM_BGM_ENABLE); - } + config_get_bool(conf, "custom_bgm_enable", &g_extern.console.sound.system_bgm_enable); if (config_get_bool(conf, "flicker_filter_enable", &flicker_filter_enable)) { @@ -1461,8 +1454,7 @@ bool config_save_file(const char *path) config_set_string(conf, "netplay_nickname", g_settings.username); config_set_int(conf, "user_language", g_settings.user_language); - bool custom_bgm_enable_val = g_extern.lifecycle_state & (1ULL << MODE_AUDIO_CUSTOM_BGM_ENABLE); - config_set_bool(conf, "custom_bgm_enable", custom_bgm_enable_val); + config_set_bool(conf, "custom_bgm_enable", g_extern.console.sound.system_bgm_enable); config_set_string(conf, "input_driver", g_settings.input.driver); config_set_string(conf, "input_joypad_driver", g_settings.input.joypad_driver); diff --git a/settings_data.c b/settings_data.c index 9a1d49f82a..8a2d1c958d 100644 --- a/settings_data.c +++ b/settings_data.c @@ -24,6 +24,15 @@ #include "input/apple_keycode.h" #endif +#if defined(__CELLOS_LV2__) +#include + +#if (CELL_SDK_VERSION > 0x340000) +#include +#endif + +#endif + static void get_input_config_prefix(char *buf, size_t sizeof_buf, const rarch_setting_t *setting) { @@ -1194,6 +1203,8 @@ static void general_read_handler(const void *data) #endif else if (!strcmp(setting->name, "audio_enable")) *setting->value.boolean = g_settings.audio.enable; + else if (!strcmp(setting->name, "system_bgm_enable")) + *setting->value.boolean = g_extern.console.sound.system_bgm_enable; else if (!strcmp(setting->name, "audio_sync")) *setting->value.boolean = g_settings.audio.sync; else if (!strcmp(setting->name, "audio_mute")) @@ -1576,6 +1587,23 @@ static void general_write_handler(const void *data) #endif else if (!strcmp(setting->name, "audio_enable")) g_settings.audio.enable = *setting->value.boolean; + else if (!strcmp(setting->name, "system_bgm_enable")) + { + g_extern.console.sound.system_bgm_enable = *setting->value.boolean; + + if (*setting->value.boolean) + { +#if defined(__CELLOS_LV2__) && (CELL_SDK_VERSION > 0x340000) + cellSysutilEnableBgmPlayback(); +#endif + } + else + { +#if defined(__CELLOS_LV2__) && (CELL_SDK_VERSION > 0x340000) + cellSysutilDisableBgmPlayback(); +#endif + } + } else if (!strcmp(setting->name, "audio_sync")) g_settings.audio.sync = *setting->value.boolean; else if (!strcmp(setting->name, "audio_mute")) @@ -2118,6 +2146,9 @@ rarch_setting_t *setting_data_get_list(void) CONFIG_BOOL(g_settings.audio.enable, "audio_enable", "Audio Enable", audio_enable, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) CONFIG_BOOL(g_extern.audio_data.mute, "audio_mute", "Audio Mute", false, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) CONFIG_FLOAT(g_settings.audio.volume, "audio_volume", "Volume Level", audio_volume, "%.1f", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(-80, 12, 1.0, true, true) +#ifdef __CELLOS_LV2__ + CONFIG_BOOL(g_extern.console.sound.system_bgm_enable, "system_bgm_enable", "System BGM Enable", false, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) +#endif END_SUB_GROUP() START_SUB_GROUP("Synchronization")