mirror of
https://github.com/libretro/RetroArch
synced 2025-03-30 07:20:36 +00:00
(RMenu XUI 360) Add Core Options
This commit is contained in:
parent
1ee603b07e
commit
21c335df74
@ -29,7 +29,6 @@
|
||||
#include "../../gfx/gfx_context.h"
|
||||
|
||||
#include "../../message.h"
|
||||
|
||||
#include "../../general.h"
|
||||
|
||||
enum {
|
||||
@ -151,6 +150,7 @@ CREATE_CLASS(CRetroArchCoreBrowser, L"RetroArchCoreBrowser");
|
||||
CREATE_CLASS(CRetroArchShaderBrowser, L"RetroArchShaderBrowser");
|
||||
CREATE_CLASS(CRetroArchVideoOptions, L"RetroArchVideoOptions");
|
||||
CREATE_CLASS(CRetroArchAudioOptions, L"RetroArchAudioOptions");
|
||||
CREATE_CLASS(CRetroArchCoreOptions, L"RetroArchCoreOptions");
|
||||
CREATE_CLASS(CRetroArchSettings, L"RetroArchSettings");
|
||||
CREATE_CLASS(CRetroArchControls, L"RetroArchControls");
|
||||
|
||||
@ -170,6 +170,7 @@ HRESULT CRetroArch::RegisterXuiClasses (void)
|
||||
CRetroArchShaderBrowser::Register();
|
||||
CRetroArchVideoOptions::Register();
|
||||
CRetroArchAudioOptions::Register();
|
||||
CRetroArchCoreOptions::Register();
|
||||
CRetroArchControls::Register();
|
||||
CRetroArchSettings::Register();
|
||||
|
||||
@ -185,6 +186,7 @@ HRESULT CRetroArch::UnregisterXuiClasses (void)
|
||||
XuiUnregisterClass(L"RetroArchFileBrowser");
|
||||
XuiUnregisterClass(L"RetroArchVideoOptions");
|
||||
XuiUnregisterClass(L"RetroArchAudioOptions");
|
||||
XuiUnregisterClass(L"RetroArchCoreOptions");
|
||||
XuiUnregisterClass(L"RetroArchControls");
|
||||
XuiUnregisterClass(L"RetroArchSettings");
|
||||
|
||||
@ -306,6 +308,29 @@ static void init_menulist(unsigned menu_id)
|
||||
|
||||
switch (menu_id)
|
||||
{
|
||||
case INGAME_MENU_CORE_OPTIONS_MODE:
|
||||
if (g_extern.system.core_options)
|
||||
{
|
||||
size_t opts = core_option_size(g_extern.system.core_options);
|
||||
for (size_t i = 0; i < opts; i++)
|
||||
{
|
||||
char label[256];
|
||||
strlcpy(label, core_option_get_desc(g_extern.system.core_options, i),
|
||||
sizeof(label));
|
||||
snprintf(label, sizeof(label), "%s : %s", label,
|
||||
core_option_get_val(g_extern.system.core_options, i));
|
||||
mbstowcs(strw_buffer, label,
|
||||
sizeof(strw_buffer) / sizeof(wchar_t));
|
||||
XuiListInsertItems(m_menulist, i, 1);
|
||||
XuiListSetText(m_menulist, i, strw_buffer);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
XuiListInsertItems(m_menulist, 0, 1);
|
||||
XuiListSetText(m_menulist, 0, L"No options available.");
|
||||
}
|
||||
break;
|
||||
case INGAME_MENU_INPUT_OPTIONS_MODE:
|
||||
{
|
||||
unsigned i;
|
||||
@ -719,6 +744,92 @@ HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled
|
||||
return 0;
|
||||
}
|
||||
|
||||
HRESULT CRetroArchCoreOptions::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"Core Options");
|
||||
|
||||
init_menulist(INGAME_MENU_CORE_OPTIONS_MODE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
HRESULT CRetroArchCoreOptions::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 CRetroArchCoreOptions::OnControlNavigate(XUIMessageControlNavigate *pControlNavigateData, BOOL& bHandled)
|
||||
{
|
||||
unsigned current_index = XuiListGetCurSel(m_menulist, NULL);
|
||||
unsigned input = pControlNavigateData->nControlNavigate;
|
||||
|
||||
size_t opts = core_option_size(g_extern.system.core_options);
|
||||
|
||||
if ((current_index < opts) && opts > 0)
|
||||
{
|
||||
bool update_item = false;
|
||||
|
||||
switch(pControlNavigateData->nControlNavigate)
|
||||
{
|
||||
case XUI_CONTROL_NAVIGATE_LEFT:
|
||||
core_option_prev(g_extern.system.core_options, current_index);
|
||||
update_item = true;
|
||||
break;
|
||||
case XUI_CONTROL_NAVIGATE_RIGHT:
|
||||
core_option_next(g_extern.system.core_options, current_index);
|
||||
update_item = true;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (update_item)
|
||||
{
|
||||
char label[256];
|
||||
strlcpy(label, core_option_get_desc(g_extern.system.core_options, current_index),
|
||||
sizeof(label));
|
||||
snprintf(label, sizeof(label), "%s : %s", label,
|
||||
core_option_get_val(g_extern.system.core_options, current_index));
|
||||
mbstowcs(strw_buffer, label,
|
||||
sizeof(strw_buffer) / sizeof(wchar_t));
|
||||
XuiListSetText(m_menulist, current_index, strw_buffer);
|
||||
}
|
||||
}
|
||||
|
||||
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::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
|
||||
{
|
||||
GetChildById(L"XuiMenuList", &m_menulist);
|
||||
@ -737,11 +848,7 @@ HRESULT CRetroArchAudioOptions::OnInit(XUIMessageInit * pInitData, BOOL& bHandle
|
||||
|
||||
HRESULT CRetroArchAudioOptions::OnControlNavigate(XUIMessageControlNavigate *pControlNavigateData, BOOL& bHandled)
|
||||
{
|
||||
bool aspectratio_changed = false;
|
||||
int current_index;
|
||||
|
||||
current_index = XuiListGetCurSel(m_menulist, NULL);
|
||||
|
||||
int current_index = XuiListGetCurSel(m_menulist, NULL);
|
||||
unsigned input = pControlNavigateData->nControlNavigate;
|
||||
|
||||
switch (current_index)
|
||||
@ -1069,6 +1176,15 @@ HRESULT CRetroArchMain::OnControlNavigate(XUIMessageControlNavigate *pControlNav
|
||||
}
|
||||
break;
|
||||
case INGAME_MENU_CORE_OPTIONS_MODE:
|
||||
if (input == XUI_CONTROL_NAVIGATE_OK)
|
||||
{
|
||||
hr = XuiSceneCreate(hdmenus_allowed ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_core_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_VIDEO_OPTIONS_MODE:
|
||||
if (input == XUI_CONTROL_NAVIGATE_OK)
|
||||
|
@ -15,6 +15,8 @@ call :subroutine_e
|
||||
call :subroutine_f
|
||||
@echo "Creating sd/rarch_audio_options.xui ..."
|
||||
call :subroutine_g
|
||||
@echo "Creating sd/rarch_core_options.xui ..."
|
||||
call :subroutine_h
|
||||
|
||||
cd ../
|
||||
cd hd
|
||||
@ -31,8 +33,10 @@ call :subroutine_d
|
||||
call :subroutine_e
|
||||
@echo "Creating hd/rarch_libretrocore_browser.xui ..."
|
||||
call :subroutine_f
|
||||
@echo "Creating sd/rarch_audio_options.xui ..."
|
||||
@echo "Creating hd/rarch_audio_options.xui ..."
|
||||
call :subroutine_g
|
||||
@echo "Creating hd/rarch_core_options.xui ..."
|
||||
call :subroutine_h
|
||||
goto :eof
|
||||
|
||||
:subroutine_a
|
||||
@ -65,7 +69,12 @@ del rarch_libretrocore_browser.xui 2>NUL
|
||||
call rarch_libretrocore_browser.bat
|
||||
goto :eof
|
||||
|
||||
:subroutine_a
|
||||
:subroutine_g
|
||||
del rarch_audio_options.xui 2>NUL
|
||||
call rarch_audio_options.bat
|
||||
goto :eof
|
||||
|
||||
:subroutine_h
|
||||
del rarch_core_options.xui 2>NUL
|
||||
call rarch_core_options.bat
|
||||
goto :eof
|
||||
|
14
media/360/hd/rarch_core_options.bat
Normal file
14
media/360/hd/rarch_core_options.bat
Normal file
@ -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=RetroArchCoreOptions%
|
||||
|
||||
for /f "tokens=* delims=" %%g in ('ECHO %OUTPUT%') do ECHO %%~g>>rarch_core_options.xui
|
||||
|
||||
EXIT /b
|
||||
|
||||
:EOF
|
14
media/360/sd/rarch_core_options.bat
Normal file
14
media/360/sd/rarch_core_options.bat
Normal file
@ -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=RetroArchCoreOptions%
|
||||
|
||||
for /f "tokens=* delims=" %%g in ('ECHO %OUTPUT%') do ECHO %%~g>>rarch_core_options.xui
|
||||
|
||||
EXIT /b
|
||||
|
||||
:EOF
|
@ -539,6 +539,23 @@
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">$(OutDir)media\sd\rarch_audio_options.xur;</Outputs>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="..\..\media\360\sd\rarch_core_options.xui">
|
||||
<FileType>Document</FileType>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">xui2bin /D /NOLOGO "%(RelativeDir)rarch_core_options.xui" "$(OutDir)media\sd\rarch_core_options.xur"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">xui2bin /D /NOLOGO "%(RelativeDir)rarch_core_options.xui" "$(OutDir)media\sd\rarch_core_options.xur"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">xui2bin /D /NOLOGO "%(RelativeDir)rarch_core_options.xui" "$(OutDir)media\sd\rarch_core_options.xur"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">xui2bin /D /NOLOGO "%(RelativeDir)rarch_core_options.xui" "$(OutDir)media\sd\rarch_core_options.xur"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">xui2bin /D /NOLOGO "%(RelativeDir)rarch_core_options.xui" "$(OutDir)media\sd\rarch_core_options.xur"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">xui2bin /D /NOLOGO "%(RelativeDir)rarch_core_options.xui" "$(OutDir)media\sd\rarch_core_options.xur"</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">$(OutDir)media\sd\rarch_core_options.xur;</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">$(OutDir)media\sd\rarch_core_options.xur;</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">$(OutDir)media\sd\rarch_core_options.xur;</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">$(OutDir)media\sd\rarch_core_options.xur;</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">$(OutDir)media\sd\rarch_core_options.xur;</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">$(OutDir)media\sd\rarch_core_options.xur;</Outputs>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="..\..\media\360\sd\rarch_libretrocore_browser.xui">
|
||||
<FileType>Document</FileType>
|
||||
@ -632,6 +649,21 @@
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">xui2bin /D /NOLOGO "%(RelativeDir)rarch_audio_options.xui" "$(OutDir)media\hd\rarch_audio_options.xur"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">xui2bin /D /NOLOGO "%(RelativeDir)rarch_audio_options.xui" "$(OutDir)media\hd\rarch_audio_options.xur"</Command>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\..\media\360\hd\rarch_core_options.xui">
|
||||
<FileType>Document</FileType>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">$(OutDir)media\hd\rarch_core_options.xur;</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">$(OutDir)media\hd\rarch_core_options.xur;</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">$(OutDir)media\hd\rarch_core_options.xur;</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">$(OutDir)media\hd\rarch_core_options.xur;</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">$(OutDir)media\hd\rarch_core_options.xur;</Outputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">$(OutDir)media\hd\rarch_core_options.xur;</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">xui2bin /D /NOLOGO "%(RelativeDir)rarch_core_options.xui" "$(OutDir)media\hd\rarch_core_options.xur"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">xui2bin /D /NOLOGO "%(RelativeDir)rarch_core_options.xui" "$(OutDir)media\hd\rarch_core_options.xur"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">xui2bin /D /NOLOGO "%(RelativeDir)rarch_core_options.xui" "$(OutDir)media\hd\rarch_core_options.xur"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">xui2bin /D /NOLOGO "%(RelativeDir)rarch_core_options.xui" "$(OutDir)media\hd\rarch_core_options.xur"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">xui2bin /D /NOLOGO "%(RelativeDir)rarch_core_options.xui" "$(OutDir)media\hd\rarch_core_options.xur"</Command>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">xui2bin /D /NOLOGO "%(RelativeDir)rarch_core_options.xui" "$(OutDir)media\hd\rarch_core_options.xur"</Command>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\..\media\360\hd\rarch_settings.xui">
|
||||
<FileType>Document</FileType>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">$(OutDir)media\hd\rarch_settings.xur;</Outputs>
|
||||
|
@ -159,6 +159,12 @@
|
||||
<CustomBuild Include="..\..\media\360\sd\rarch_audio_options.xui">
|
||||
<Filter>Source Files\media\sd</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\..\media\360\hd\rarch_core_options.xui">
|
||||
<Filter>Source Files\media\hd</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\..\media\360\sd\rarch_core_options.xui">
|
||||
<Filter>Source Files\media\sd</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\..\media\360\hd\rarch_settings.xui">
|
||||
<Filter>Source Files\media\hd</Filter>
|
||||
</CustomBuild>
|
||||
|
Loading…
x
Reference in New Issue
Block a user