mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-05-03 17:58:34 +00:00
Merge pull request #4873 from lioncash/controller-emu
ControllerEmu: Separate ControlGroup from ControllerEmu
This commit is contained in:
commit
f6d364e37b
69 changed files with 1807 additions and 971 deletions
|
@ -2,6 +2,8 @@
|
|||
// Licensed under GPLv2+
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include "DolphinWX/Input/InputConfigDiag.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <array>
|
||||
#include <cctype>
|
||||
|
@ -38,21 +40,27 @@
|
|||
#include "Common/FileUtil.h"
|
||||
#include "Common/IniFile.h"
|
||||
#include "Common/MsgHandler.h"
|
||||
|
||||
#include "Core/Core.h"
|
||||
#include "Core/HW/GCKeyboard.h"
|
||||
#include "Core/HW/GCPad.h"
|
||||
#include "Core/HW/Wiimote.h"
|
||||
#include "Core/HW/WiimoteEmu/WiimoteEmu.h"
|
||||
#include "Core/HotkeyManager.h"
|
||||
|
||||
#include "DolphinWX/DolphinSlider.h"
|
||||
#include "DolphinWX/Input/ClassicInputConfigDiag.h"
|
||||
#include "DolphinWX/Input/DrumsInputConfigDiag.h"
|
||||
#include "DolphinWX/Input/GuitarInputConfigDiag.h"
|
||||
#include "DolphinWX/Input/InputConfigDiag.h"
|
||||
#include "DolphinWX/Input/NunchukInputConfigDiag.h"
|
||||
#include "DolphinWX/Input/TurntableInputConfigDiag.h"
|
||||
#include "DolphinWX/WxUtils.h"
|
||||
|
||||
#include "InputCommon/ControlReference/ControlReference.h"
|
||||
#include "InputCommon/ControlReference/ExpressionParser.h"
|
||||
#include "InputCommon/ControllerEmu/Control/Control.h"
|
||||
#include "InputCommon/ControllerEmu/ControlGroup/ControlGroup.h"
|
||||
#include "InputCommon/ControllerEmu/ControlGroup/Extension.h"
|
||||
#include "InputCommon/ControllerEmu/ControllerEmu.h"
|
||||
#include "InputCommon/ControllerInterface/ControllerInterface.h"
|
||||
#include "InputCommon/ControllerInterface/Device.h"
|
||||
|
@ -388,7 +396,7 @@ bool ControlDialog::Validate()
|
|||
{
|
||||
control_reference->expression = WxStrToStr(textctrl->GetValue());
|
||||
|
||||
auto lock = ControllerEmu::GetStateLock();
|
||||
const auto lock = ControllerEmu::EmulatedController::GetStateLock();
|
||||
control_reference->UpdateReference(g_controller_interface,
|
||||
m_parent->GetController()->default_device);
|
||||
|
||||
|
@ -427,7 +435,7 @@ void ControlDialog::ClearControl(wxCommandEvent&)
|
|||
{
|
||||
control_reference->expression.clear();
|
||||
|
||||
auto lock = ControllerEmu::GetStateLock();
|
||||
const auto lock = ControllerEmu::EmulatedController::GetStateLock();
|
||||
control_reference->UpdateReference(g_controller_interface,
|
||||
m_parent->GetController()->default_device);
|
||||
|
||||
|
@ -486,7 +494,7 @@ void ControlDialog::SetSelectedControl(wxCommandEvent&)
|
|||
textctrl->WriteText(expr);
|
||||
control_reference->expression = textctrl->GetValue();
|
||||
|
||||
auto lock = ControllerEmu::GetStateLock();
|
||||
const auto lock = ControllerEmu::EmulatedController::GetStateLock();
|
||||
control_reference->UpdateReference(g_controller_interface,
|
||||
m_parent->GetController()->default_device);
|
||||
|
||||
|
@ -522,7 +530,7 @@ void ControlDialog::AppendControl(wxCommandEvent& event)
|
|||
textctrl->WriteText(expr);
|
||||
control_reference->expression = textctrl->GetValue();
|
||||
|
||||
auto lock = ControllerEmu::GetStateLock();
|
||||
const auto lock = ControllerEmu::EmulatedController::GetStateLock();
|
||||
control_reference->UpdateReference(g_controller_interface,
|
||||
m_parent->GetController()->default_device);
|
||||
|
||||
|
@ -704,7 +712,7 @@ bool InputConfigDialog::DetectButton(ControlButton* button)
|
|||
wxString expr;
|
||||
GetExpressionForControl(expr, control_name);
|
||||
button->control_reference->expression = expr;
|
||||
auto lock = ControllerEmu::GetStateLock();
|
||||
const auto lock = ControllerEmu::EmulatedController::GetStateLock();
|
||||
button->control_reference->UpdateReference(g_controller_interface,
|
||||
controller->default_device);
|
||||
success = true;
|
||||
|
@ -834,7 +842,7 @@ void InputConfigDialog::GetProfilePath(std::string& path)
|
|||
}
|
||||
}
|
||||
|
||||
ControllerEmu* InputConfigDialog::GetController() const
|
||||
ControllerEmu::EmulatedController* InputConfigDialog::GetController() const
|
||||
{
|
||||
return controller;
|
||||
}
|
||||
|
@ -933,8 +941,10 @@ ControlGroupBox::~ControlGroupBox()
|
|||
|
||||
bool ControlGroupBox::HasBitmapHeading() const
|
||||
{
|
||||
return control_group->type == GROUP_TYPE_STICK || control_group->type == GROUP_TYPE_TILT ||
|
||||
control_group->type == GROUP_TYPE_CURSOR || control_group->type == GROUP_TYPE_FORCE;
|
||||
return control_group->type == ControllerEmu::GROUP_TYPE_STICK ||
|
||||
control_group->type == ControllerEmu::GROUP_TYPE_TILT ||
|
||||
control_group->type == ControllerEmu::GROUP_TYPE_CURSOR ||
|
||||
control_group->type == ControllerEmu::GROUP_TYPE_FORCE;
|
||||
}
|
||||
|
||||
ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWindow* const parent,
|
||||
|
@ -989,10 +999,10 @@ ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWin
|
|||
|
||||
switch (group->type)
|
||||
{
|
||||
case GROUP_TYPE_STICK:
|
||||
case GROUP_TYPE_TILT:
|
||||
case GROUP_TYPE_CURSOR:
|
||||
case GROUP_TYPE_FORCE:
|
||||
case ControllerEmu::GROUP_TYPE_STICK:
|
||||
case ControllerEmu::GROUP_TYPE_TILT:
|
||||
case ControllerEmu::GROUP_TYPE_CURSOR:
|
||||
case ControllerEmu::GROUP_TYPE_FORCE:
|
||||
{
|
||||
wxSize bitmap_size = parent->FromDIP(wxSize(64, 64));
|
||||
m_scale = bitmap_size.GetWidth() / 64.0;
|
||||
|
@ -1034,7 +1044,7 @@ ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWin
|
|||
Add(h_szr, 0, wxEXPAND | wxLEFT | wxRIGHT, space3);
|
||||
}
|
||||
break;
|
||||
case GROUP_TYPE_BUTTONS:
|
||||
case ControllerEmu::GROUP_TYPE_BUTTONS:
|
||||
{
|
||||
// Draw buttons in rows of 8
|
||||
unsigned int button_cols = group->controls.size() > 8 ? 8 : group->controls.size();
|
||||
|
@ -1072,17 +1082,17 @@ ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWin
|
|||
Add(static_bitmap, 0, wxALIGN_CENTER_HORIZONTAL | wxLEFT | wxRIGHT, space3);
|
||||
}
|
||||
break;
|
||||
case GROUP_TYPE_MIXED_TRIGGERS:
|
||||
case GROUP_TYPE_TRIGGERS:
|
||||
case GROUP_TYPE_SLIDER:
|
||||
case ControllerEmu::GROUP_TYPE_MIXED_TRIGGERS:
|
||||
case ControllerEmu::GROUP_TYPE_TRIGGERS:
|
||||
case ControllerEmu::GROUP_TYPE_SLIDER:
|
||||
{
|
||||
int height = (int)(12 * group->controls.size());
|
||||
int width = 64;
|
||||
|
||||
if (GROUP_TYPE_MIXED_TRIGGERS == group->type)
|
||||
if (ControllerEmu::GROUP_TYPE_MIXED_TRIGGERS == group->type)
|
||||
width = 64 + 12 + 1;
|
||||
|
||||
if (GROUP_TYPE_TRIGGERS != group->type)
|
||||
if (ControllerEmu::GROUP_TYPE_TRIGGERS != group->type)
|
||||
height /= 2;
|
||||
height += 1;
|
||||
|
||||
|
@ -1116,7 +1126,7 @@ ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWin
|
|||
Add(static_bitmap, 0, wxALIGN_CENTER_HORIZONTAL | wxLEFT | wxRIGHT, space3);
|
||||
}
|
||||
break;
|
||||
case GROUP_TYPE_EXTENSION:
|
||||
case ControllerEmu::GROUP_TYPE_EXTENSION:
|
||||
{
|
||||
PadSettingExtension* const attachments =
|
||||
new PadSettingExtension(parent, (ControllerEmu::Extension*)group);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue