From 1ee603b07edb30c7a0704d4d2ebb7f782172f18e Mon Sep 17 00:00:00 2001 From: twinaphex Date: Fri, 10 May 2013 19:02:24 +0200 Subject: [PATCH] (RMenu XUI 360) Add Audio Options --- frontend/menu/rmenu_xui.cpp | 87 +++++++++++++++++++ media/360/generate_xuis.bat | 9 ++ media/360/hd/rarch_audio_options.bat | 14 +++ media/360/sd/rarch_audio_options.bat | 14 +++ msvc/RetroArch-360/RetroArch-360.vcxproj | 32 +++++++ .../RetroArch-360.vcxproj.filters | 6 ++ 6 files changed, 162 insertions(+) create mode 100644 media/360/hd/rarch_audio_options.bat create mode 100644 media/360/sd/rarch_audio_options.bat 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