diff --git a/frontend/menu/rmenu_xui.cpp b/frontend/menu/rmenu_xui.cpp
index 6e62145861..a0a69d96ba 100644
--- a/frontend/menu/rmenu_xui.cpp
+++ b/frontend/menu/rmenu_xui.cpp
@@ -40,6 +40,10 @@ enum {
MENU_XUI_ITEM_ORIENTATION,
};
+enum {
+ MENU_XUI_ITEM_AUDIO_MUTE_AUDIO = 0,
+};
+
enum
{
SETTING_EMU_SHOW_INFO_MSG = 0,
@@ -146,6 +150,7 @@ CREATE_CLASS(CRetroArchFileBrowser, L"RetroArchFileBrowser");
CREATE_CLASS(CRetroArchCoreBrowser, L"RetroArchCoreBrowser");
CREATE_CLASS(CRetroArchShaderBrowser, L"RetroArchShaderBrowser");
CREATE_CLASS(CRetroArchVideoOptions, L"RetroArchVideoOptions");
+CREATE_CLASS(CRetroArchAudioOptions, L"RetroArchAudioOptions");
CREATE_CLASS(CRetroArchSettings, L"RetroArchSettings");
CREATE_CLASS(CRetroArchControls, L"RetroArchControls");
@@ -164,6 +169,7 @@ HRESULT CRetroArch::RegisterXuiClasses (void)
CRetroArchCoreBrowser::Register();
CRetroArchShaderBrowser::Register();
CRetroArchVideoOptions::Register();
+ CRetroArchAudioOptions::Register();
CRetroArchControls::Register();
CRetroArchSettings::Register();
@@ -178,6 +184,7 @@ HRESULT CRetroArch::UnregisterXuiClasses (void)
XuiUnregisterClass(L"RetroArchShaderBrowser");
XuiUnregisterClass(L"RetroArchFileBrowser");
XuiUnregisterClass(L"RetroArchVideoOptions");
+ XuiUnregisterClass(L"RetroArchAudioOptions");
XuiUnregisterClass(L"RetroArchControls");
XuiUnregisterClass(L"RetroArchSettings");
@@ -712,6 +719,77 @@ HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled
return 0;
}
+HRESULT CRetroArchAudioOptions::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
+{
+ GetChildById(L"XuiMenuList", &m_menulist);
+ GetChildById(L"XuiBackButton", &m_back);
+ GetChildById(L"XuiTxtTitle", &m_menutitle);
+
+ XuiListDeleteItems(m_menulist, 0, XuiListGetItemCount(m_menulist));
+
+ XuiTextElementSetText(m_menutitle, L"Audio Options");
+
+ XuiListInsertItems(m_menulist, MENU_XUI_ITEM_AUDIO_MUTE_AUDIO, 1);
+ XuiListSetText(m_menulist, MENU_XUI_ITEM_AUDIO_MUTE_AUDIO, g_extern.audio_data.mute ? L"Mute Audio : ON" : L"Mute Audio : OFF");
+
+ return 0;
+}
+
+HRESULT CRetroArchAudioOptions::OnControlNavigate(XUIMessageControlNavigate *pControlNavigateData, BOOL& bHandled)
+{
+ bool aspectratio_changed = false;
+ int current_index;
+
+ current_index = XuiListGetCurSel(m_menulist, NULL);
+
+ unsigned input = pControlNavigateData->nControlNavigate;
+
+ switch (current_index)
+ {
+ case MENU_XUI_ITEM_AUDIO_MUTE_AUDIO:
+ if (input == XUI_CONTROL_NAVIGATE_LEFT ||
+ input == XUI_CONTROL_NAVIGATE_RIGHT ||
+ input == XUI_CONTROL_NAVIGATE_OK)
+ {
+ settings_set(1ULL << S_AUDIO_MUTE);
+ XuiListSetText(m_menulist, MENU_XUI_ITEM_AUDIO_MUTE_AUDIO, g_extern.audio_data.mute ? L"Mute Audio : ON" : L"Mute Audio : OFF");
+ }
+ break;
+ }
+
+ bHandled = TRUE;
+
+ switch(pControlNavigateData->nControlNavigate)
+ {
+ case XUI_CONTROL_NAVIGATE_LEFT:
+ case XUI_CONTROL_NAVIGATE_RIGHT:
+ case XUI_CONTROL_NAVIGATE_UP:
+ case XUI_CONTROL_NAVIGATE_DOWN:
+ pControlNavigateData->hObjDest = pControlNavigateData->hObjSource;
+ break;
+ default:
+ break;
+ }
+
+ return 0;
+}
+
+HRESULT CRetroArchAudioOptions::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled )
+{
+ process_input_ret = 0;
+
+ if ( hObjPressed == m_menulist)
+ {
+ XUIMessageControlNavigate controls;
+ controls.nControlNavigate = (XUI_CONTROL_NAVIGATE)XUI_CONTROL_NAVIGATE_OK;
+ OnControlNavigate(&controls, bHandled);
+ }
+
+ bHandled = TRUE;
+
+ return 0;
+}
+
HRESULT CRetroArchVideoOptions::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
{
GetChildById(L"XuiMenuList", &m_menulist);
@@ -1004,6 +1082,15 @@ HRESULT CRetroArchMain::OnControlNavigate(XUIMessageControlNavigate *pControlNav
}
break;
case INGAME_MENU_AUDIO_OPTIONS_MODE:
+ if (input == XUI_CONTROL_NAVIGATE_OK)
+ {
+ hr = XuiSceneCreate(hdmenus_allowed ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_audio_options.xur", NULL, ¤t_menu);
+
+ if (hr < 0)
+ RARCH_ERR("Failed to load scene.\n");
+
+ XuiSceneNavigateForward(current_obj, false, current_menu, XUSER_INDEX_FOCUS);
+ }
break;
case INGAME_MENU_INPUT_OPTIONS_MODE:
if (input == XUI_CONTROL_NAVIGATE_OK)
diff --git a/media/360/generate_xuis.bat b/media/360/generate_xuis.bat
index ff2e3b8009..bef00cc1fb 100644
--- a/media/360/generate_xuis.bat
+++ b/media/360/generate_xuis.bat
@@ -13,6 +13,8 @@ call :subroutine_d
call :subroutine_e
@echo "Creating sd/rarch_libretrocore_browser.xui ..."
call :subroutine_f
+@echo "Creating sd/rarch_audio_options.xui ..."
+call :subroutine_g
cd ../
cd hd
@@ -29,6 +31,8 @@ call :subroutine_d
call :subroutine_e
@echo "Creating hd/rarch_libretrocore_browser.xui ..."
call :subroutine_f
+@echo "Creating sd/rarch_audio_options.xui ..."
+call :subroutine_g
goto :eof
:subroutine_a
@@ -60,3 +64,8 @@ goto :eof
del rarch_libretrocore_browser.xui 2>NUL
call rarch_libretrocore_browser.bat
goto :eof
+
+:subroutine_a
+del rarch_audio_options.xui 2>NUL
+call rarch_audio_options.bat
+goto :eof
diff --git a/media/360/hd/rarch_audio_options.bat b/media/360/hd/rarch_audio_options.bat
new file mode 100644
index 0000000000..898dbe72b0
--- /dev/null
+++ b/media/360/hd/rarch_audio_options.bat
@@ -0,0 +1,14 @@
+@echo off
+
+for /f "tokens=* delims=" %%f in ('type rarch_main.xui') do CALL :DOREPLACE "%%f"
+
+GOTO :EOF
+:DOREPLACE
+SET INPUT=%*
+SET OUTPUT=%INPUT:RetroArchMain=RetroArchAudioOptions%
+
+for /f "tokens=* delims=" %%g in ('ECHO %OUTPUT%') do ECHO %%~g>>rarch_audio_options.xui
+
+EXIT /b
+
+:EOF
diff --git a/media/360/sd/rarch_audio_options.bat b/media/360/sd/rarch_audio_options.bat
new file mode 100644
index 0000000000..898dbe72b0
--- /dev/null
+++ b/media/360/sd/rarch_audio_options.bat
@@ -0,0 +1,14 @@
+@echo off
+
+for /f "tokens=* delims=" %%f in ('type rarch_main.xui') do CALL :DOREPLACE "%%f"
+
+GOTO :EOF
+:DOREPLACE
+SET INPUT=%*
+SET OUTPUT=%INPUT:RetroArchMain=RetroArchAudioOptions%
+
+for /f "tokens=* delims=" %%g in ('ECHO %OUTPUT%') do ECHO %%~g>>rarch_audio_options.xui
+
+EXIT /b
+
+:EOF
diff --git a/msvc/RetroArch-360/RetroArch-360.vcxproj b/msvc/RetroArch-360/RetroArch-360.vcxproj
index df80cef732..9a6791c61e 100644
--- a/msvc/RetroArch-360/RetroArch-360.vcxproj
+++ b/msvc/RetroArch-360/RetroArch-360.vcxproj
@@ -522,6 +522,23 @@
$(OutDir)media\sd\rarch_video_options.xur;
+
+
+ Document
+ xui2bin /D /NOLOGO "%(RelativeDir)rarch_audio_options.xui" "$(OutDir)media\sd\rarch_audio_options.xur"
+ xui2bin /D /NOLOGO "%(RelativeDir)rarch_audio_options.xui" "$(OutDir)media\sd\rarch_audio_options.xur"
+ xui2bin /D /NOLOGO "%(RelativeDir)rarch_audio_options.xui" "$(OutDir)media\sd\rarch_audio_options.xur"
+ xui2bin /D /NOLOGO "%(RelativeDir)rarch_audio_options.xui" "$(OutDir)media\sd\rarch_audio_options.xur"
+ xui2bin /D /NOLOGO "%(RelativeDir)rarch_audio_options.xui" "$(OutDir)media\sd\rarch_audio_options.xur"
+ xui2bin /D /NOLOGO "%(RelativeDir)rarch_audio_options.xui" "$(OutDir)media\sd\rarch_audio_options.xur"
+ $(OutDir)media\sd\rarch_audio_options.xur;
+ $(OutDir)media\sd\rarch_audio_options.xur;
+ $(OutDir)media\sd\rarch_audio_options.xur;
+ $(OutDir)media\sd\rarch_audio_options.xur;
+ $(OutDir)media\sd\rarch_audio_options.xur;
+ $(OutDir)media\sd\rarch_audio_options.xur;
+
+
Document
@@ -600,6 +617,21 @@
xui2bin /D /NOLOGO "%(RelativeDir)rarch_video_options.xui" "$(OutDir)media\hd\rarch_video_options.xur"
xui2bin /D /NOLOGO "%(RelativeDir)rarch_video_options.xui" "$(OutDir)media\hd\rarch_video_options.xur"
+
+ Document
+ $(OutDir)media\hd\rarch_audio_options.xur;
+ $(OutDir)media\hd\rarch_audio_options.xur;
+ $(OutDir)media\hd\rarch_audio_options.xur;
+ $(OutDir)media\hd\rarch_audio_options.xur;
+ $(OutDir)media\hd\rarch_audio_options.xur;
+ $(OutDir)media\hd\rarch_audio_options.xur;
+ xui2bin /D /NOLOGO "%(RelativeDir)rarch_audio_options.xui" "$(OutDir)media\hd\rarch_audio_options.xur"
+ xui2bin /D /NOLOGO "%(RelativeDir)rarch_audio_options.xui" "$(OutDir)media\hd\rarch_audio_options.xur"
+ xui2bin /D /NOLOGO "%(RelativeDir)rarch_audio_options.xui" "$(OutDir)media\hd\rarch_audio_options.xur"
+ xui2bin /D /NOLOGO "%(RelativeDir)rarch_audio_options.xui" "$(OutDir)media\hd\rarch_audio_options.xur"
+ xui2bin /D /NOLOGO "%(RelativeDir)rarch_audio_options.xui" "$(OutDir)media\hd\rarch_audio_options.xur"
+ xui2bin /D /NOLOGO "%(RelativeDir)rarch_audio_options.xui" "$(OutDir)media\hd\rarch_audio_options.xur"
+
Document
$(OutDir)media\hd\rarch_settings.xur;
diff --git a/msvc/RetroArch-360/RetroArch-360.vcxproj.filters b/msvc/RetroArch-360/RetroArch-360.vcxproj.filters
index cfa4eafcf6..b07e0853c3 100644
--- a/msvc/RetroArch-360/RetroArch-360.vcxproj.filters
+++ b/msvc/RetroArch-360/RetroArch-360.vcxproj.filters
@@ -153,6 +153,12 @@
Source Files\media\sd
+
+ Source Files\media\hd
+
+
+ Source Files\media\sd
+
Source Files\media\hd