Qt: Add binding layout for NegConRumble
This commit is contained in:
parent
147f48cc64
commit
c1bf1e5369
|
@ -24,10 +24,9 @@
|
||||||
|
|
||||||
Log_SetChannel(NeGconRumble);
|
Log_SetChannel(NeGconRumble);
|
||||||
|
|
||||||
|
|
||||||
// Mapping of Button to index of corresponding bit in m_button_state
|
// Mapping of Button to index of corresponding bit in m_button_state
|
||||||
static constexpr std::array<u8, static_cast<size_t>(NeGconRumble::Button::Count)> s_button_indices = {3, 4, 5, 6,
|
static constexpr std::array<u8, static_cast<size_t>(NeGconRumble::Button::Count)> s_button_indices = {3, 4, 5, 6,
|
||||||
7, 11, 12, 13};
|
7, 11, 12, 13};
|
||||||
NeGconRumble::NeGconRumble(u32 index) : Controller(index)
|
NeGconRumble::NeGconRumble(u32 index) : Controller(index)
|
||||||
{
|
{
|
||||||
m_status_byte = 0x5A;
|
m_status_byte = 0x5A;
|
||||||
|
@ -120,12 +119,12 @@ bool NeGconRumble::DoState(StateWrapper& sw, bool apply_input_state)
|
||||||
|
|
||||||
if (old_analog_mode != m_analog_mode)
|
if (old_analog_mode != m_analog_mode)
|
||||||
{
|
{
|
||||||
Host::AddIconOSDMessage(fmt::format("Controller{}AnalogMode", m_index), ICON_FA_GAMEPAD,
|
Host::AddIconOSDMessage(fmt::format("Controller{}AnalogMode", m_index), ICON_FA_GAMEPAD,
|
||||||
fmt::format(m_analog_mode ?
|
fmt::format(m_analog_mode ?
|
||||||
TRANSLATE_FS("AnalogController", "Controller {} switched to analog mode.") :
|
TRANSLATE_FS("AnalogController", "Controller {} switched to analog mode.") :
|
||||||
TRANSLATE_FS("AnalogController", "Controller {} switched to digital mode."),
|
TRANSLATE_FS("AnalogController", "Controller {} switched to digital mode."),
|
||||||
m_index + 1u),
|
m_index + 1u),
|
||||||
5.0f);
|
5.0f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -168,7 +167,7 @@ void NeGconRumble::SetBindState(u32 index, float value)
|
||||||
}
|
}
|
||||||
// Steering Axis: -1..1 -> 0..255
|
// Steering Axis: -1..1 -> 0..255
|
||||||
else if (index == (static_cast<u32>(Button::Count) + static_cast<u32>(HalfAxis::SteeringLeft)) ||
|
else if (index == (static_cast<u32>(Button::Count) + static_cast<u32>(HalfAxis::SteeringLeft)) ||
|
||||||
index == (static_cast<u32>(Button::Count) + static_cast<u32>(HalfAxis::SteeringRight)))
|
index == (static_cast<u32>(Button::Count) + static_cast<u32>(HalfAxis::SteeringRight)))
|
||||||
{
|
{
|
||||||
value *= m_steering_sensitivity;
|
value *= m_steering_sensitivity;
|
||||||
if (value < m_steering_deadzone)
|
if (value < m_steering_deadzone)
|
||||||
|
@ -247,8 +246,8 @@ void NeGconRumble::SetAnalogMode(bool enabled, bool show_message)
|
||||||
fmt::format(enabled ?
|
fmt::format(enabled ?
|
||||||
TRANSLATE_FS("AnalogController", "Controller {} switched to analog mode.") :
|
TRANSLATE_FS("AnalogController", "Controller {} switched to analog mode.") :
|
||||||
TRANSLATE_FS("AnalogController", "Controller {} switched to digital mode."),
|
TRANSLATE_FS("AnalogController", "Controller {} switched to digital mode."),
|
||||||
m_index + 1u),
|
m_index + 1u),
|
||||||
5.0f);
|
5.0f);
|
||||||
}
|
}
|
||||||
m_analog_mode = enabled;
|
m_analog_mode = enabled;
|
||||||
}
|
}
|
||||||
|
@ -347,7 +346,6 @@ u8 NeGconRumble::GetModeID() const
|
||||||
|
|
||||||
u8 NeGconRumble::GetIDByte() const
|
u8 NeGconRumble::GetIDByte() const
|
||||||
{
|
{
|
||||||
auto tteste = GetResponseNumHalfwords();
|
|
||||||
return Truncate8((GetModeID() << 4) | GetResponseNumHalfwords());
|
return Truncate8((GetModeID() << 4) | GetResponseNumHalfwords());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -482,7 +480,7 @@ bool NeGconRumble::Transfer(const u8 data_in, u8* data_out)
|
||||||
case 4:
|
case 4:
|
||||||
{
|
{
|
||||||
if (m_configuration_mode || m_analog_mode)
|
if (m_configuration_mode || m_analog_mode)
|
||||||
m_tx_buffer[m_command_step] = m_axis_state[static_cast<u8>(Axis::Steering)];
|
m_tx_buffer[m_command_step] = m_axis_state[static_cast<u8>(Axis::Steering)];
|
||||||
|
|
||||||
if (m_dualshock_enabled)
|
if (m_dualshock_enabled)
|
||||||
SetMotorStateForConfigIndex(rumble_index, data_in);
|
SetMotorStateForConfigIndex(rumble_index, data_in);
|
||||||
|
@ -502,7 +500,7 @@ bool NeGconRumble::Transfer(const u8 data_in, u8* data_out)
|
||||||
case 6:
|
case 6:
|
||||||
{
|
{
|
||||||
if (m_configuration_mode || m_analog_mode)
|
if (m_configuration_mode || m_analog_mode)
|
||||||
m_tx_buffer[m_command_step] = m_axis_state[static_cast<u8>(Axis::II)];
|
m_tx_buffer[m_command_step] = m_axis_state[static_cast<u8>(Axis::II)];
|
||||||
|
|
||||||
if (m_dualshock_enabled)
|
if (m_dualshock_enabled)
|
||||||
SetMotorStateForConfigIndex(rumble_index, data_in);
|
SetMotorStateForConfigIndex(rumble_index, data_in);
|
||||||
|
@ -512,7 +510,7 @@ bool NeGconRumble::Transfer(const u8 data_in, u8* data_out)
|
||||||
case 7:
|
case 7:
|
||||||
{
|
{
|
||||||
if (m_configuration_mode || m_analog_mode)
|
if (m_configuration_mode || m_analog_mode)
|
||||||
m_tx_buffer[m_command_step] = m_axis_state[static_cast<u8>(Axis::L)];
|
m_tx_buffer[m_command_step] = m_axis_state[static_cast<u8>(Axis::L)];
|
||||||
|
|
||||||
if (m_dualshock_enabled)
|
if (m_dualshock_enabled)
|
||||||
SetMotorStateForConfigIndex(rumble_index, data_in);
|
SetMotorStateForConfigIndex(rumble_index, data_in);
|
||||||
|
@ -548,7 +546,7 @@ bool NeGconRumble::Transfer(const u8 data_in, u8* data_out)
|
||||||
case 4:
|
case 4:
|
||||||
{
|
{
|
||||||
if (m_configuration_mode || m_analog_mode)
|
if (m_configuration_mode || m_analog_mode)
|
||||||
m_tx_buffer[m_command_step] = m_axis_state[static_cast<u8>(Axis::Steering)];
|
m_tx_buffer[m_command_step] = m_axis_state[static_cast<u8>(Axis::Steering)];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -562,14 +560,14 @@ bool NeGconRumble::Transfer(const u8 data_in, u8* data_out)
|
||||||
case 6:
|
case 6:
|
||||||
{
|
{
|
||||||
if (m_configuration_mode || m_analog_mode)
|
if (m_configuration_mode || m_analog_mode)
|
||||||
m_tx_buffer[m_command_step] = m_axis_state[static_cast<u8>(Axis::II)];
|
m_tx_buffer[m_command_step] = m_axis_state[static_cast<u8>(Axis::II)];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 7:
|
case 7:
|
||||||
{
|
{
|
||||||
if (m_configuration_mode || m_analog_mode)
|
if (m_configuration_mode || m_analog_mode)
|
||||||
m_tx_buffer[m_command_step] = m_axis_state[static_cast<u8>(Axis::L)];
|
m_tx_buffer[m_command_step] = m_axis_state[static_cast<u8>(Axis::L)];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -692,7 +690,6 @@ bool NeGconRumble::Transfer(const u8 data_in, u8* data_out)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
DefaultCaseIsUnreachable();
|
DefaultCaseIsUnreachable();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
*data_out = m_tx_buffer[m_command_step];
|
*data_out = m_tx_buffer[m_command_step];
|
||||||
|
@ -714,7 +711,6 @@ bool NeGconRumble::Transfer(const u8 data_in, u8* data_out)
|
||||||
}
|
}
|
||||||
|
|
||||||
return ack;
|
return ack;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<NeGconRumble> NeGconRumble::Create(u32 index)
|
std::unique_ptr<NeGconRumble> NeGconRumble::Create(u32 index)
|
||||||
|
@ -729,7 +725,7 @@ static const Controller::ControllerBindingInfo s_binding_info[] = {
|
||||||
}
|
}
|
||||||
#define AXIS(name, display_name, icon_name, halfaxis, genb) \
|
#define AXIS(name, display_name, icon_name, halfaxis, genb) \
|
||||||
{ \
|
{ \
|
||||||
name, display_name, icon_name, static_cast<u32>(NeGconRumble::Button::Count) + static_cast<u32>(halfaxis), \
|
name, display_name, icon_name, static_cast<u32>(NeGconRumble::Button::Count) + static_cast<u32>(halfaxis), \
|
||||||
InputBindingInfo::Type::HalfAxis, genb \
|
InputBindingInfo::Type::HalfAxis, genb \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -756,16 +752,20 @@ static const Controller::ControllerBindingInfo s_binding_info[] = {
|
||||||
|
|
||||||
static const SettingInfo s_settings[] = {
|
static const SettingInfo s_settings[] = {
|
||||||
{SettingInfo::Type::Float, "SteeringDeadzone", TRANSLATE_NOOP("NeGconRumble", "Steering Axis Deadzone"),
|
{SettingInfo::Type::Float, "SteeringDeadzone", TRANSLATE_NOOP("NeGconRumble", "Steering Axis Deadzone"),
|
||||||
TRANSLATE_NOOP("NeGconRumble", "Sets deadzone size for steering axis."), "0.00f", "0.00f", "0.99f", "0.01f", "%.0f%%", nullptr,
|
TRANSLATE_NOOP("NeGconRumble", "Sets deadzone size for steering axis."), "0.00f", "0.00f", "0.99f", "0.01f",
|
||||||
100.0f},
|
"%.0f%%", nullptr, 100.0f},
|
||||||
{SettingInfo::Type::Float, "SteeringSensitivity", TRANSLATE_NOOP("NeGconRumble", "Steering Axis Sensitivity"),
|
{SettingInfo::Type::Float, "SteeringSensitivity", TRANSLATE_NOOP("NeGconRumble", "Steering Axis Sensitivity"),
|
||||||
TRANSLATE_NOOP("NeGconRumble", "Sets the steering axis scaling factor."), "1.00f", "0.01f", "2.00f", "0.01f", "%.0f%%",
|
TRANSLATE_NOOP("NeGconRumble", "Sets the steering axis scaling factor."), "1.00f", "0.01f", "2.00f", "0.01f",
|
||||||
nullptr, 100.0f},
|
"%.0f%%", nullptr, 100.0f},
|
||||||
};
|
};
|
||||||
|
|
||||||
const Controller::ControllerInfo NeGconRumble::INFO = {
|
const Controller::ControllerInfo NeGconRumble::INFO = {ControllerType::NeGconRumble,
|
||||||
ControllerType::NeGconRumble, "NeGconRumble", TRANSLATE_NOOP("ControllerType", "NeGconRumble"), ICON_PF_GAMEPAD,
|
"NeGconRumble",
|
||||||
s_binding_info, s_settings, Controller::VibrationCapabilities::LargeSmallMotors};
|
TRANSLATE_NOOP("ControllerType", "NeGcon with Rumble"),
|
||||||
|
ICON_PF_GAMEPAD,
|
||||||
|
s_binding_info,
|
||||||
|
s_settings,
|
||||||
|
Controller::VibrationCapabilities::LargeSmallMotors};
|
||||||
|
|
||||||
void NeGconRumble::LoadSettings(SettingsInterface& si, const char* section)
|
void NeGconRumble::LoadSettings(SettingsInterface& si, const char* section)
|
||||||
{
|
{
|
||||||
|
|
|
@ -77,7 +77,7 @@ private:
|
||||||
{
|
{
|
||||||
Idle,
|
Idle,
|
||||||
Ready,
|
Ready,
|
||||||
ReadPad, // 0x42
|
ReadPad, // 0x42
|
||||||
ConfigModeSetMode, // 0x43
|
ConfigModeSetMode, // 0x43
|
||||||
SetAnalogMode, // 0x44
|
SetAnalogMode, // 0x44
|
||||||
GetAnalogMode, // 0x45
|
GetAnalogMode, // 0x45
|
||||||
|
@ -129,7 +129,7 @@ private:
|
||||||
std::array<u8, 6> m_rumble_config{};
|
std::array<u8, 6> m_rumble_config{};
|
||||||
int m_rumble_config_large_motor_index = -1;
|
int m_rumble_config_large_motor_index = -1;
|
||||||
int m_rumble_config_small_motor_index = -1;
|
int m_rumble_config_small_motor_index = -1;
|
||||||
|
|
||||||
bool m_analog_toggle_queued = false;
|
bool m_analog_toggle_queued = false;
|
||||||
u8 m_status_byte = 0;
|
u8 m_status_byte = 0;
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,7 @@ set(SRCS
|
||||||
controllerbindingwidget_guncon.ui
|
controllerbindingwidget_guncon.ui
|
||||||
controllerbindingwidget_mouse.ui
|
controllerbindingwidget_mouse.ui
|
||||||
controllerbindingwidget_negcon.ui
|
controllerbindingwidget_negcon.ui
|
||||||
|
controllerbindingwidget_negconrumble.ui
|
||||||
controllerbindingwidgets.cpp
|
controllerbindingwidgets.cpp
|
||||||
controllerbindingwidgets.h
|
controllerbindingwidgets.h
|
||||||
controllerbindingwidget.ui
|
controllerbindingwidget.ui
|
||||||
|
|
|
@ -0,0 +1,738 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>ControllerBindingWidget_NeGconRumble</class>
|
||||||
|
<widget class="QWidget" name="ControllerBindingWidget_NeGconRumble">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>1100</width>
|
||||||
|
<height>532</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>1100</width>
|
||||||
|
<height>500</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_35">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0" rowspan="3">
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="0,0,0,1">
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox">
|
||||||
|
<property name="title">
|
||||||
|
<string>D-Pad</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_5">
|
||||||
|
<item row="3" column="1" colspan="2">
|
||||||
|
<widget class="QGroupBox" name="groupBox_5">
|
||||||
|
<property name="title">
|
||||||
|
<string>Down</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_4">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="InputBindingWidget" name="Down">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>PushButton</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0" colspan="2">
|
||||||
|
<widget class="QGroupBox" name="groupBox_3">
|
||||||
|
<property name="title">
|
||||||
|
<string>Left</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="InputBindingWidget" name="Left">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>PushButton</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1" colspan="2">
|
||||||
|
<widget class="QGroupBox" name="groupBox_2">
|
||||||
|
<property name="title">
|
||||||
|
<string>Up</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="InputBindingWidget" name="Up">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>PushButton</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="2" colspan="2">
|
||||||
|
<widget class="QGroupBox" name="groupBox_4">
|
||||||
|
<property name="title">
|
||||||
|
<string>Right</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_3">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="InputBindingWidget" name="Right">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>PushButton</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_26">
|
||||||
|
<property name="title">
|
||||||
|
<string>Start</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_26">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="InputBindingWidget" name="Start">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>PushButton</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_5">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<layout class="QGridLayout" name="gridLayout_27">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QGroupBox" name="groupBox_22">
|
||||||
|
<property name="title">
|
||||||
|
<string>L</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_22">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="InputBindingWidget" name="L">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>PushButton</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="2">
|
||||||
|
<widget class="QGroupBox" name="groupBox_24">
|
||||||
|
<property name="title">
|
||||||
|
<string>R</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_24">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="InputBindingWidget" name="R">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>PushButton</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="2" rowspan="3">
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,0,1">
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_3">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_16">
|
||||||
|
<property name="title">
|
||||||
|
<string>Face Buttons</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_16">
|
||||||
|
<item row="3" column="1" colspan="2">
|
||||||
|
<widget class="QGroupBox" name="groupBox_17">
|
||||||
|
<property name="title">
|
||||||
|
<string>I</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_17">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="InputBindingWidget" name="I">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>PushButton</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0" colspan="2">
|
||||||
|
<widget class="QGroupBox" name="groupBox_18">
|
||||||
|
<property name="title">
|
||||||
|
<string>II</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_18">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="InputBindingWidget" name="II">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>PushButton</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1" colspan="2">
|
||||||
|
<widget class="QGroupBox" name="groupBox_19">
|
||||||
|
<property name="title">
|
||||||
|
<string>B</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_19">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="InputBindingWidget" name="B">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>PushButton</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="2" colspan="2">
|
||||||
|
<widget class="QGroupBox" name="groupBox_20">
|
||||||
|
<property name="title">
|
||||||
|
<string>A</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_20">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="InputBindingWidget" name="A">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>PushButton</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_4">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>400</width>
|
||||||
|
<height>266</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="pixmap">
|
||||||
|
<pixmap resource="resources/resources.qrc">:/controllers/negcon.svg</pixmap>
|
||||||
|
</property>
|
||||||
|
<property name="scaledContents">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<layout class="QGridLayout" name="gridLayout_32">
|
||||||
|
<item row="0" column="0" colspan="3">
|
||||||
|
<widget class="QGroupBox" name="groupBox_11">
|
||||||
|
<property name="title">
|
||||||
|
<string>Steering/Twist</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_11">
|
||||||
|
<item row="1" column="2" colspan="2">
|
||||||
|
<widget class="QGroupBox" name="groupBox_15">
|
||||||
|
<property name="title">
|
||||||
|
<string>Right</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_15">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="InputBindingWidget" name="SteeringRight">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>PushButton</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0" colspan="2">
|
||||||
|
<widget class="QGroupBox" name="groupBox_13">
|
||||||
|
<property name="title">
|
||||||
|
<string>Left</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_13">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="InputBindingWidget" name="SteeringLeft">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>PushButton</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<spacer name="verticalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QGroupBox" name="groupBox_31">
|
||||||
|
<property name="title">
|
||||||
|
<string>Analog</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_34">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="InputBindingWidget" name="Analog">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>150</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>PushButton</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<customwidgets>
|
||||||
|
<customwidget>
|
||||||
|
<class>InputBindingWidget</class>
|
||||||
|
<extends>QPushButton</extends>
|
||||||
|
<header>inputbindingwidgets.h</header>
|
||||||
|
</customwidget>
|
||||||
|
</customwidgets>
|
||||||
|
<resources>
|
||||||
|
<include location="resources/resources.qrc"/>
|
||||||
|
</resources>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
|
@ -14,6 +14,7 @@
|
||||||
#include "ui_controllerbindingwidget_guncon.h"
|
#include "ui_controllerbindingwidget_guncon.h"
|
||||||
#include "ui_controllerbindingwidget_mouse.h"
|
#include "ui_controllerbindingwidget_mouse.h"
|
||||||
#include "ui_controllerbindingwidget_negcon.h"
|
#include "ui_controllerbindingwidget_negcon.h"
|
||||||
|
#include "ui_controllerbindingwidget_negconrumble.h"
|
||||||
|
|
||||||
#include "core/controller.h"
|
#include "core/controller.h"
|
||||||
#include "core/host.h"
|
#include "core/host.h"
|
||||||
|
@ -153,6 +154,15 @@ void ControllerBindingWidget::populateWidgets()
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case ControllerType::NeGconRumble:
|
||||||
|
{
|
||||||
|
Ui::ControllerBindingWidget_NeGconRumble ui;
|
||||||
|
ui.setupUi(m_bindings_widget);
|
||||||
|
bindBindingWidgets(m_bindings_widget);
|
||||||
|
m_icon = QIcon::fromTheme(QStringLiteral("negcon-line"));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case ControllerType::PlayStationMouse:
|
case ControllerType::PlayStationMouse:
|
||||||
{
|
{
|
||||||
Ui::ControllerBindingWidget_Mouse ui;
|
Ui::ControllerBindingWidget_Mouse ui;
|
||||||
|
|
|
@ -335,6 +335,9 @@
|
||||||
<QtUi Include="memoryscannerwindow.ui">
|
<QtUi Include="memoryscannerwindow.ui">
|
||||||
<FileType>Document</FileType>
|
<FileType>Document</FileType>
|
||||||
</QtUi>
|
</QtUi>
|
||||||
|
<QtUi Include="controllerbindingwidget_negconrumble.ui">
|
||||||
|
<FileType>Document</FileType>
|
||||||
|
</QtUi>
|
||||||
<None Include="translations\duckstation-qt_es-es.ts" />
|
<None Include="translations\duckstation-qt_es-es.ts" />
|
||||||
<None Include="translations\duckstation-qt_tr.ts" />
|
<None Include="translations\duckstation-qt_tr.ts" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
@ -293,6 +293,7 @@
|
||||||
<QtUi Include="debuggeraddbreakpointdialog.ui" />
|
<QtUi Include="debuggeraddbreakpointdialog.ui" />
|
||||||
<QtUi Include="graphicssettingswidget.ui" />
|
<QtUi Include="graphicssettingswidget.ui" />
|
||||||
<QtUi Include="memoryscannerwindow.ui" />
|
<QtUi Include="memoryscannerwindow.ui" />
|
||||||
|
<QtUi Include="controllerbindingwidget_negconrumble.ui" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Natvis Include="qt5.natvis" />
|
<Natvis Include="qt5.natvis" />
|
||||||
|
|
Loading…
Reference in New Issue