UI+build: Isolate wxWidgets code from non-GUI code (#1633)

This commit is contained in:
SSimco 2025-07-15 05:28:41 +03:00 committed by GitHub
parent 5f3c2816ec
commit 67de63bed6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
199 changed files with 2414 additions and 2091 deletions

View file

@ -104,10 +104,6 @@ if (ENABLE_HIDAPI)
target_link_libraries(CemuInput PRIVATE hidapi::hidapi)
endif()
if (ENABLE_WXWIDGETS)
target_link_libraries(CemuInput PRIVATE wx::base wx::core)
endif()
if (ENABLE_BLUEZ)
target_link_libraries(CemuInput PRIVATE bluez::bluez)
endif ()

View file

@ -1,8 +1,6 @@
#include "input/api/Controller.h"
#include "config/CemuConfig.h"
#include "gui/input/HotkeySettings.h"
#include "gui/guiWrapper.h"
#include "WindowSystem.h"
ControllerBase::ControllerBase(std::string_view uuid, std::string_view display_name)
: m_uuid{uuid}, m_display_name{display_name}
@ -69,7 +67,7 @@ const ControllerState& ControllerBase::update_state()
#undef APPLY_AXIS_BUTTON
HotkeySettings::CaptureInput(result, m_last_state);
WindowSystem::CaptureInput(result, m_last_state);
m_last_state = std::move(result);
return m_last_state;

View file

@ -1,5 +1,5 @@
#include "input/api/DirectInput/DirectInputController.h"
#include "gui/guiWrapper.h"
#include "WindowSystem.h"
DirectInputController::DirectInputController(const GUID& guid)
: base_type(StringFromGUID(guid), fmt::format("[{}]", StringFromGUID(guid))),
@ -104,7 +104,7 @@ bool DirectInputController::connect()
return false;
}
HWND hwndMainWindow = gui_getWindowInfo().window_main.hwnd;
HWND hwndMainWindow = static_cast<HWND>(WindowSystem::GetWindowInfo().window_main.surface);
// set access
if (FAILED(m_device->SetCooperativeLevel(hwndMainWindow, DISCL_BACKGROUND | DISCL_EXCLUSIVE)))

View file

@ -1,7 +1,7 @@
#include <boost/container/small_vector.hpp>
#include "input/api/Keyboard/KeyboardController.h"
#include "gui/guiWrapper.h"
#include "WindowSystem.h"
KeyboardController::KeyboardController()
: base_type("keyboard", "Keyboard")
@ -11,47 +11,14 @@ KeyboardController::KeyboardController()
std::string KeyboardController::get_button_name(uint64 button) const
{
#if BOOST_OS_WINDOWS
LONG scan_code = MapVirtualKeyA((UINT)button, MAPVK_VK_TO_VSC_EX);
if(HIBYTE(scan_code))
scan_code |= 0x100;
// because MapVirtualKey strips the extended bit for some keys
switch (button)
{
case VK_LEFT: case VK_UP: case VK_RIGHT: case VK_DOWN: // arrow keys
case VK_PRIOR: case VK_NEXT: // page up and page down
case VK_END: case VK_HOME:
case VK_INSERT: case VK_DELETE:
case VK_DIVIDE: // numpad slash
case VK_NUMLOCK:
{
scan_code |= 0x100; // set extended bit
break;
}
}
scan_code <<= 16;
char key_name[128];
if (GetKeyNameTextA(scan_code, key_name, std::size(key_name)) != 0)
return key_name;
else
return fmt::format("key_{}", button);
#elif BOOST_OS_LINUX
return gui_gtkRawKeyCodeToString(button);
#else
return fmt::format("key_{}", button);
#endif
return WindowSystem::GetKeyCodeName(button);
}
extern WindowInfo g_window_info;
ControllerState KeyboardController::raw_state()
{
ControllerState result{};
boost::container::small_vector<uint32, 16> pressedKeys;
g_window_info.iter_keystates([&pressedKeys](const std::pair<const uint32, bool>& keyState) { if (keyState.second) pressedKeys.emplace_back(keyState.first); });
WindowSystem::GetWindowInfo().iter_keystates([&pressedKeys](const std::pair<const uint32, bool>& keyState) { if (keyState.second) pressedKeys.emplace_back(keyState.first); });
result.buttons.SetPressedButtons(pressedKeys);
return result;
}

View file

@ -3,8 +3,6 @@
#include "input/api/Controller.h"
#include "input/api/SDL/SDLController.h"
#include <wx/intl.h>
ClassicController::ClassicController(size_t player_index)
: WPADController(player_index, kDataFormat_CLASSIC)
{
@ -70,22 +68,22 @@ std::string_view ClassicController::get_button_name(ButtonId id)
case kButtonId_Plus: return "+";
case kButtonId_Minus: return "-";
case kButtonId_Home: return wxTRANSLATE("home");
case kButtonId_Home: return TR_NOOP("home");
case kButtonId_Up: return wxTRANSLATE("up");
case kButtonId_Down: return wxTRANSLATE("down");
case kButtonId_Left: return wxTRANSLATE("left");
case kButtonId_Right: return wxTRANSLATE("right");
case kButtonId_Up: return TR_NOOP("up");
case kButtonId_Down: return TR_NOOP("down");
case kButtonId_Left: return TR_NOOP("left");
case kButtonId_Right: return TR_NOOP("right");
case kButtonId_StickL_Up: return wxTRANSLATE("up");
case kButtonId_StickL_Down: return wxTRANSLATE("down");
case kButtonId_StickL_Left: return wxTRANSLATE("left");
case kButtonId_StickL_Right: return wxTRANSLATE("right");
case kButtonId_StickL_Up: return TR_NOOP("up");
case kButtonId_StickL_Down: return TR_NOOP("down");
case kButtonId_StickL_Left: return TR_NOOP("left");
case kButtonId_StickL_Right: return TR_NOOP("right");
case kButtonId_StickR_Up: return wxTRANSLATE("up");
case kButtonId_StickR_Down: return wxTRANSLATE("down");
case kButtonId_StickR_Left: return wxTRANSLATE("left");
case kButtonId_StickR_Right: return wxTRANSLATE("right");
case kButtonId_StickR_Up: return TR_NOOP("up");
case kButtonId_StickR_Down: return TR_NOOP("down");
case kButtonId_StickR_Left: return TR_NOOP("left");
case kButtonId_StickR_Right: return TR_NOOP("right");
default:
return "";

View file

@ -3,8 +3,6 @@
#include "input/api/Controller.h"
#include "input/api/SDL/SDLController.h"
#include <wx/intl.h>
ProController::ProController(size_t player_index)
: WPADController(player_index, kDataFormat_URCC)
{
@ -75,21 +73,21 @@ std::string_view ProController::get_button_name(ButtonId id)
case kButtonId_ZR: return "ZR";
case kButtonId_Plus: return "+";
case kButtonId_Minus: return "-";
case kButtonId_Up: return wxTRANSLATE("up");
case kButtonId_Down: return wxTRANSLATE("down");
case kButtonId_Left: return wxTRANSLATE("left");
case kButtonId_Right: return wxTRANSLATE("right");
case kButtonId_StickL: return wxTRANSLATE("click");
case kButtonId_StickR: return wxTRANSLATE("click");
case kButtonId_StickL_Up: return wxTRANSLATE("up");
case kButtonId_StickL_Down: return wxTRANSLATE("down");
case kButtonId_StickL_Left: return wxTRANSLATE("left");
case kButtonId_StickL_Right: return wxTRANSLATE("right");
case kButtonId_StickR_Up: return wxTRANSLATE("up");
case kButtonId_StickR_Down: return wxTRANSLATE("down");
case kButtonId_StickR_Left: return wxTRANSLATE("left");
case kButtonId_StickR_Right: return wxTRANSLATE("right");
case kButtonId_Home: return wxTRANSLATE("home");
case kButtonId_Up: return TR_NOOP("up");
case kButtonId_Down: return TR_NOOP("down");
case kButtonId_Left: return TR_NOOP("left");
case kButtonId_Right: return TR_NOOP("right");
case kButtonId_StickL: return TR_NOOP("click");
case kButtonId_StickR: return TR_NOOP("click");
case kButtonId_StickL_Up: return TR_NOOP("up");
case kButtonId_StickL_Down: return TR_NOOP("down");
case kButtonId_StickL_Left: return TR_NOOP("left");
case kButtonId_StickL_Right: return TR_NOOP("right");
case kButtonId_StickR_Up: return TR_NOOP("up");
case kButtonId_StickR_Down: return TR_NOOP("down");
case kButtonId_StickR_Left: return TR_NOOP("left");
case kButtonId_StickR_Right: return TR_NOOP("right");
case kButtonId_Home: return TR_NOOP("home");
default:
cemu_assert_debug(false);
return "";

View file

@ -1,11 +1,10 @@
#include "input/emulated/VPADController.h"
#include "input/api/Controller.h"
#include "input/api/SDL/SDLController.h"
#include "gui/guiWrapper.h"
#include "WindowSystem.h"
#include "input/InputManager.h"
#include "Cafe/HW/Latte/Core/Latte.h"
#include "Cafe/CafeSystem.h"
#include <wx/intl.h>
enum ControllerVPADMapping2 : uint32
{
@ -287,9 +286,9 @@ void VPADController::update_motion(VPADStatus_t& status)
int w, h;
if (pad_view)
gui_getPadWindowPhysSize(w, h);
WindowSystem::GetPadWindowPhysSize(w, h);
else
gui_getWindowPhysSize(w, h);
WindowSystem::GetWindowPhysSize(w, h);
float wx = mousePos.x / w;
float wy = mousePos.y / h;
@ -367,21 +366,21 @@ std::string_view VPADController::get_button_name(ButtonId id)
case kButtonId_ZR: return "ZR";
case kButtonId_Plus: return "+";
case kButtonId_Minus: return "-";
case kButtonId_Up: return wxTRANSLATE("up");
case kButtonId_Down: return wxTRANSLATE("down");
case kButtonId_Left: return wxTRANSLATE("left");
case kButtonId_Right: return wxTRANSLATE("right");
case kButtonId_StickL: return wxTRANSLATE("click");
case kButtonId_StickR: return wxTRANSLATE("click");
case kButtonId_StickL_Up: return wxTRANSLATE("up");
case kButtonId_StickL_Down: return wxTRANSLATE("down");
case kButtonId_StickL_Left: return wxTRANSLATE("left");
case kButtonId_StickL_Right: return wxTRANSLATE("right");
case kButtonId_StickR_Up: return wxTRANSLATE("up");
case kButtonId_StickR_Down: return wxTRANSLATE("down");
case kButtonId_StickR_Left: return wxTRANSLATE("left");
case kButtonId_StickR_Right: return wxTRANSLATE("right");
case kButtonId_Home: return wxTRANSLATE("home");
case kButtonId_Up: return TR_NOOP("up");
case kButtonId_Down: return TR_NOOP("down");
case kButtonId_Left: return TR_NOOP("left");
case kButtonId_Right: return TR_NOOP("right");
case kButtonId_StickL: return TR_NOOP("click");
case kButtonId_StickR: return TR_NOOP("click");
case kButtonId_StickL_Up: return TR_NOOP("up");
case kButtonId_StickL_Down: return TR_NOOP("down");
case kButtonId_StickL_Left: return TR_NOOP("left");
case kButtonId_StickL_Right: return TR_NOOP("right");
case kButtonId_StickR_Up: return TR_NOOP("up");
case kButtonId_StickR_Down: return TR_NOOP("down");
case kButtonId_StickR_Left: return TR_NOOP("left");
case kButtonId_StickR_Right: return TR_NOOP("right");
case kButtonId_Home: return TR_NOOP("home");
default:
cemu_assert_debug(false);
return "";

View file

@ -1,7 +1,5 @@
#pragma once
#include <wx/cmdargs.h>
#include "input/emulated/EmulatedController.h"
#include "Cafe/OS/libs/padscore/padscore.h"
#include "Cafe/OS/libs/vpad/vpad.h"

View file

@ -2,7 +2,6 @@
#include "input/api/Controller.h"
#include "input/api/Wiimote/NativeWiimoteController.h"
#include <wx/intl.h>
WiimoteController::WiimoteController(size_t player_index)
: WPADController(player_index, kDataFormat_CORE_ACC_DPD)
@ -159,22 +158,22 @@ std::string_view WiimoteController::get_button_name(ButtonId id)
case kButtonId_1: return "1";
case kButtonId_2: return "2";
case kButtonId_Home: return wxTRANSLATE("home");
case kButtonId_Home: return TR_NOOP("home");
case kButtonId_Plus: return "+";
case kButtonId_Minus: return "-";
case kButtonId_Up: return wxTRANSLATE("up");
case kButtonId_Down: return wxTRANSLATE("down");
case kButtonId_Left: return wxTRANSLATE("left");
case kButtonId_Right: return wxTRANSLATE("right");
case kButtonId_Up: return TR_NOOP("up");
case kButtonId_Down: return TR_NOOP("down");
case kButtonId_Left: return TR_NOOP("left");
case kButtonId_Right: return TR_NOOP("right");
case kButtonId_Nunchuck_Z: return "Z";
case kButtonId_Nunchuck_C: return "C";
case kButtonId_Nunchuck_Up: return wxTRANSLATE("up");
case kButtonId_Nunchuck_Down: return wxTRANSLATE("down");
case kButtonId_Nunchuck_Left: return wxTRANSLATE("left");
case kButtonId_Nunchuck_Right: return wxTRANSLATE("right");
case kButtonId_Nunchuck_Up: return TR_NOOP("up");
case kButtonId_Nunchuck_Down: return TR_NOOP("down");
case kButtonId_Nunchuck_Left: return TR_NOOP("left");
case kButtonId_Nunchuck_Right: return TR_NOOP("right");
default:
return "";