mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-12-24 10:37:01 +00:00
UI+build: Isolate wxWidgets code from non-GUI code (#1633)
This commit is contained in:
parent
5f3c2816ec
commit
67de63bed6
199 changed files with 2414 additions and 2091 deletions
|
|
@ -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 ()
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)))
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 "";
|
||||
|
|
|
|||
|
|
@ -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 "";
|
||||
|
|
|
|||
|
|
@ -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 "";
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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 "";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue