Skip to content

Commit 2f626fa

Browse files
author
N3xoX1
committed
UI: have the controller input load on different controllers
1 parent 3bebe54 commit 2f626fa

3 files changed

Lines changed: 22 additions & 5 deletions

File tree

‎src/nxemu/user_interface/sciter_main_window.cpp‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -662,9 +662,9 @@ void SciterMainWindow::SettingChanged(const char * setting, void * userData)
662662
}
663663
}
664664

665-
bool SciterMainWindow::OnTimer(SCITER_ELEMENT /*Element*/, uint32_t* TimerId)
665+
bool SciterMainWindow::OnTimer(SCITER_ELEMENT /*element*/, uint32_t * timerId)
666666
{
667-
if (TimerId == (uint32_t*)TIMER_UPDATE_INPUT)
667+
if (timerId == (uint32_t*)TIMER_UPDATE_INPUT)
668668
{
669669
UpdateInputDrivers();
670670
}

‎src/nxemu/user_interface/settings/input_config.cpp‎

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,17 @@
66
InputConfig::InputConfig(ISciterUI & SciterUI) :
77
m_sciterUI(SciterUI),
88
m_window(nullptr),
9-
m_inputDeviceList(nullptr)
9+
m_inputDeviceList(nullptr),
10+
m_playerMap({
11+
{"Player1", {0, NpadIdType::Player1}},
12+
{"Player2", {1, NpadIdType::Player2}},
13+
{"Player3", {2, NpadIdType::Player3}},
14+
{"Player4", {3, NpadIdType::Player4}},
15+
{"Player5", {4, NpadIdType::Player5}},
16+
{"Player6", {5, NpadIdType::Player6}},
17+
{"Player7", {6, NpadIdType::Player7}},
18+
{"Player8", {7, NpadIdType::Player8}},
19+
})
1020
{
1121
SwitchSystem * system = SwitchSystem::GetInstance();
1222
if (system != nullptr)
@@ -68,9 +78,10 @@ bool InputConfig::PageNavChangeTo(const std::string & /*pageName*/, SCITER_ELEME
6878

6979
void InputConfig::PageNavCreatedPage(const std::string & pageName, SCITER_ELEMENT page)
7080
{
71-
if (pageName == "Player1")
81+
PlayerInfo::const_iterator itr = m_playerMap.find(pageName);
82+
if (itr != m_playerMap.end())
7283
{
73-
m_playerConfig[0].reset(new InputConfigPlayer(m_sciterUI, *this, m_window->GetHandle(), page, NpadIdType::Player1));
84+
m_playerConfig[itr->second.first].reset(new InputConfigPlayer(m_sciterUI, *this, m_window->GetHandle(), page, itr->second.second));
7485
}
7586
}
7687

‎src/nxemu/user_interface/settings/input_config.h‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,21 @@
22
#include <sciter_handler.h>
33
#include <widgets/page_nav.h>
44
#include <memory>
5+
#include <unordered_map>
56

67
__interface ISciterUI;
78
__interface ISciterWindow;
89
__interface IParamPackageList;
910
class InputConfigPlayer;
1011

12+
enum class NpadIdType : uint32_t;
13+
1114
class InputConfig :
1215
public IPagesSink,
1316
public IClickSink
1417
{
18+
typedef std::unordered_map<std::string, std::pair<size_t, NpadIdType>> PlayerInfo;
19+
1520
public:
1621
InputConfig(ISciterUI & SciterUI);
1722
~InputConfig();
@@ -39,4 +44,5 @@ class InputConfig :
3944
std::shared_ptr<IPageNav> m_pageNav;
4045
std::unique_ptr<InputConfigPlayer> m_playerConfig[8];
4146
IParamPackageList * m_inputDeviceList;
47+
const PlayerInfo m_playerMap;
4248
};

0 commit comments

Comments
 (0)