Skip to content

Commit

Permalink
ControllerEmu: Convert Translatability to enum class
Browse files Browse the repository at this point in the history
  • Loading branch information
Dentomologist committed Jun 13, 2023
1 parent c8559a7 commit ef0d00c
Show file tree
Hide file tree
Showing 26 changed files with 146 additions and 120 deletions.
30 changes: 16 additions & 14 deletions Source/Core/Core/FreeLookManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -81,31 +81,33 @@ enum GyroButtons

FreeLookController::FreeLookController(const unsigned int index) : m_index(index)
{
using Translatability = ControllerEmu::Translatability;

groups.emplace_back(m_move_buttons = new ControllerEmu::Buttons(_trans("Move")));

m_move_buttons->AddInput(ControllerEmu::Translate, _trans("Up"));
m_move_buttons->AddInput(ControllerEmu::Translate, _trans("Down"));
m_move_buttons->AddInput(ControllerEmu::Translate, _trans("Left"));
m_move_buttons->AddInput(ControllerEmu::Translate, _trans("Right"));
m_move_buttons->AddInput(ControllerEmu::Translate, _trans("Forward"));
m_move_buttons->AddInput(ControllerEmu::Translate, _trans("Backward"));
m_move_buttons->AddInput(Translatability::Translate, _trans("Up"));
m_move_buttons->AddInput(Translatability::Translate, _trans("Down"));
m_move_buttons->AddInput(Translatability::Translate, _trans("Left"));
m_move_buttons->AddInput(Translatability::Translate, _trans("Right"));
m_move_buttons->AddInput(Translatability::Translate, _trans("Forward"));
m_move_buttons->AddInput(Translatability::Translate, _trans("Backward"));

groups.emplace_back(m_speed_buttons = new ControllerEmu::Buttons(_trans("Speed")));

m_speed_buttons->AddInput(ControllerEmu::Translate, _trans("Decrease"));
m_speed_buttons->AddInput(ControllerEmu::Translate, _trans("Increase"));
m_speed_buttons->AddInput(ControllerEmu::Translate, _trans("Reset"));
m_speed_buttons->AddInput(Translatability::Translate, _trans("Decrease"));
m_speed_buttons->AddInput(Translatability::Translate, _trans("Increase"));
m_speed_buttons->AddInput(Translatability::Translate, _trans("Reset"));

groups.emplace_back(m_other_buttons = new ControllerEmu::Buttons(_trans("Other")));

m_other_buttons->AddInput(ControllerEmu::Translate, _trans("Reset View"));
m_other_buttons->AddInput(Translatability::Translate, _trans("Reset View"));

groups.emplace_back(m_fov_buttons = new ControllerEmu::Buttons(_trans("Field of View")));

m_fov_buttons->AddInput(ControllerEmu::Translate, _trans("Increase X"));
m_fov_buttons->AddInput(ControllerEmu::Translate, _trans("Decrease X"));
m_fov_buttons->AddInput(ControllerEmu::Translate, _trans("Increase Y"));
m_fov_buttons->AddInput(ControllerEmu::Translate, _trans("Decrease Y"));
m_fov_buttons->AddInput(Translatability::Translate, _trans("Increase X"));
m_fov_buttons->AddInput(Translatability::Translate, _trans("Decrease X"));
m_fov_buttons->AddInput(Translatability::Translate, _trans("Increase Y"));
m_fov_buttons->AddInput(Translatability::Translate, _trans("Decrease Y"));

groups.emplace_back(m_rotation_gyro = new ControllerEmu::IMUGyroscope(
_trans("Incremental Rotation"), _trans("Incremental Rotation")));
Expand Down
8 changes: 5 additions & 3 deletions Source/Core/Core/HW/GBAPadEmu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,24 @@ static const u16 button_bitmasks[] = {PAD_BUTTON_B, PAD_BUTTON_A, PAD_TRIGGER_

GBAPad::GBAPad(const unsigned int index) : m_reset_pending(false), m_index(index)
{
using Translatability = ControllerEmu::Translatability;

// Buttons
groups.emplace_back(m_buttons = new ControllerEmu::Buttons(BUTTONS_GROUP));
for (const char* named_button : {B_BUTTON, A_BUTTON, L_BUTTON, R_BUTTON})
{
m_buttons->AddInput(ControllerEmu::DoNotTranslate, named_button);
m_buttons->AddInput(Translatability::DoNotTranslate, named_button);
}
for (const char* named_button : {SELECT_BUTTON, START_BUTTON})
{
m_buttons->AddInput(ControllerEmu::Translate, named_button);
m_buttons->AddInput(Translatability::Translate, named_button);
}

// DPad
groups.emplace_back(m_dpad = new ControllerEmu::Buttons(DPAD_GROUP));
for (const char* named_direction : named_directions)
{
m_dpad->AddInput(ControllerEmu::Translate, named_direction);
m_dpad->AddInput(Translatability::Translate, named_direction);
}
}

Expand Down
14 changes: 8 additions & 6 deletions Source/Core/Core/HW/GCKeyboardEmu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,30 +51,32 @@ static const char* const named_keys5[] = {"LEFT", "DOWN", "UP", "RIGHT", "ENTER"

GCKeyboard::GCKeyboard(const unsigned int index) : m_index(index)
{
using Translatability = ControllerEmu::Translatability;

// buttons
groups.emplace_back(m_keys0x = new ControllerEmu::Buttons(_trans("Keys")));
for (const char* key : named_keys0)
m_keys0x->AddInput(ControllerEmu::DoNotTranslate, key);
m_keys0x->AddInput(Translatability::DoNotTranslate, key);

groups.emplace_back(m_keys1x = new ControllerEmu::Buttons(_trans("Keys")));
for (const char* key : named_keys1)
m_keys1x->AddInput(ControllerEmu::DoNotTranslate, key);
m_keys1x->AddInput(Translatability::DoNotTranslate, key);

groups.emplace_back(m_keys2x = new ControllerEmu::Buttons(_trans("Keys")));
for (const char* key : named_keys2)
m_keys2x->AddInput(ControllerEmu::DoNotTranslate, key);
m_keys2x->AddInput(Translatability::DoNotTranslate, key);

groups.emplace_back(m_keys3x = new ControllerEmu::Buttons(_trans("Keys")));
for (const char* key : named_keys3)
m_keys3x->AddInput(ControllerEmu::DoNotTranslate, key);
m_keys3x->AddInput(Translatability::DoNotTranslate, key);

groups.emplace_back(m_keys4x = new ControllerEmu::Buttons(_trans("Keys")));
for (const char* key : named_keys4)
m_keys4x->AddInput(ControllerEmu::DoNotTranslate, key);
m_keys4x->AddInput(Translatability::DoNotTranslate, key);

groups.emplace_back(m_keys5x = new ControllerEmu::Buttons(_trans("Keys")));
for (const char* key : named_keys5)
m_keys5x->AddInput(ControllerEmu::DoNotTranslate, key);
m_keys5x->AddInput(Translatability::DoNotTranslate, key);
}

std::string GCKeyboard::GetName() const
Expand Down
24 changes: 13 additions & 11 deletions Source/Core/Core/HW/GCPadEmu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,16 @@ static const u16 dpad_bitmasks[] = {PAD_BUTTON_UP, PAD_BUTTON_DOWN, PAD_BUTTON_L

GCPad::GCPad(const unsigned int index) : m_index(index)
{
using Translatability = ControllerEmu::Translatability;

// buttons
groups.emplace_back(m_buttons = new ControllerEmu::Buttons(BUTTONS_GROUP));
for (const char* named_button : {A_BUTTON, B_BUTTON, X_BUTTON, Y_BUTTON, Z_BUTTON})
{
m_buttons->AddInput(ControllerEmu::DoNotTranslate, named_button);
m_buttons->AddInput(Translatability::DoNotTranslate, named_button);
}
// i18n: The START/PAUSE button on GameCube controllers
m_buttons->AddInput(ControllerEmu::Translate, START_BUTTON, _trans("START"));
m_buttons->AddInput(Translatability::Translate, START_BUTTON, _trans("START"));

// sticks
groups.emplace_back(m_main_stick = new ControllerEmu::OctagonAnalogStick(
Expand All @@ -57,23 +59,23 @@ GCPad::GCPad(const unsigned int index) : m_index(index)
groups.emplace_back(m_triggers = new ControllerEmu::MixedTriggers(TRIGGERS_GROUP));
for (const char* named_trigger : {L_DIGITAL, R_DIGITAL, L_ANALOG, R_ANALOG})
{
m_triggers->AddInput(ControllerEmu::Translate, named_trigger);
m_triggers->AddInput(Translatability::Translate, named_trigger);
}

// dpad
groups.emplace_back(m_dpad = new ControllerEmu::Buttons(DPAD_GROUP));
for (const char* named_direction : named_directions)
{
m_dpad->AddInput(ControllerEmu::Translate, named_direction);
m_dpad->AddInput(Translatability::Translate, named_direction);
}

// Microphone
groups.emplace_back(m_mic = new ControllerEmu::Buttons(MIC_GROUP));
m_mic->AddInput(ControllerEmu::Translate, _trans("Button"));
m_mic->AddInput(Translatability::Translate, _trans("Button"));

// rumble
groups.emplace_back(m_rumble = new ControllerEmu::ControlGroup(RUMBLE_GROUP));
m_rumble->AddOutput(ControllerEmu::Translate, _trans("Motor"));
m_rumble->AddOutput(Translatability::Translate, _trans("Motor"));

// options
groups.emplace_back(m_options = new ControllerEmu::ControlGroup(OPTIONS_GROUP));
Expand Down Expand Up @@ -175,11 +177,11 @@ void GCPad::LoadDefaults(const ControllerInterface& ciface)
m_rumble->SetControlExpression(0, "`Android/0/Device Sensors:Motor 0`");
#else
// Buttons
m_buttons->SetControlExpression(0, "`X`"); // A
m_buttons->SetControlExpression(1, "`Z`"); // B
m_buttons->SetControlExpression(2, "`C`"); // X
m_buttons->SetControlExpression(3, "`S`"); // Y
m_buttons->SetControlExpression(4, "`D`"); // Z
m_buttons->SetControlExpression(0, "`X`"); // A
m_buttons->SetControlExpression(1, "`Z`"); // B
m_buttons->SetControlExpression(2, "`C`"); // X
m_buttons->SetControlExpression(3, "`S`"); // Y
m_buttons->SetControlExpression(4, "`D`"); // Z
#ifdef _WIN32
m_buttons->SetControlExpression(5, "`RETURN`"); // Start
#else
Expand Down
10 changes: 6 additions & 4 deletions Source/Core/Core/HW/WiimoteEmu/Extension/Classic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,14 +53,16 @@ constexpr std::array<u16, 4> classic_dpad_bitmasks{{

Classic::Classic() : Extension1stParty("Classic", _trans("Classic Controller"))
{
using Translatability = ControllerEmu::Translatability;

// buttons
groups.emplace_back(m_buttons = new ControllerEmu::Buttons(BUTTONS_GROUP));
for (auto& button_name :
{A_BUTTON, B_BUTTON, X_BUTTON, Y_BUTTON, ZL_BUTTON, ZR_BUTTON, MINUS_BUTTON, PLUS_BUTTON})
{
m_buttons->AddInput(ControllerEmu::DoNotTranslate, button_name);
m_buttons->AddInput(Translatability::DoNotTranslate, button_name);
}
m_buttons->AddInput(ControllerEmu::DoNotTranslate, HOME_BUTTON, "HOME");
m_buttons->AddInput(Translatability::DoNotTranslate, HOME_BUTTON, "HOME");

// sticks
constexpr auto gate_radius = ControlState(STICK_GATE_RADIUS) / CAL_STICK_RADIUS;
Expand All @@ -73,14 +75,14 @@ Classic::Classic() : Extension1stParty("Classic", _trans("Classic Controller"))
groups.emplace_back(m_triggers = new ControllerEmu::MixedTriggers(TRIGGERS_GROUP));
for (const char* trigger_name : {L_DIGITAL, R_DIGITAL, L_ANALOG, R_ANALOG})
{
m_triggers->AddInput(ControllerEmu::Translate, trigger_name);
m_triggers->AddInput(Translatability::Translate, trigger_name);
}

// dpad
groups.emplace_back(m_dpad = new ControllerEmu::Buttons(DPAD_GROUP));
for (const char* named_direction : named_directions)
{
m_dpad->AddInput(ControllerEmu::Translate, named_direction);
m_dpad->AddInput(Translatability::Translate, named_direction);
}
}

Expand Down
5 changes: 3 additions & 2 deletions Source/Core/Core/HW/WiimoteEmu/Extension/DrawsomeTablet.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,9 @@ DrawsomeTablet::DrawsomeTablet() : Extension3rdParty("Drawsome", _trans("Drawsom

// Touch
groups.emplace_back(m_touch = new ControllerEmu::Triggers(_trans("Touch")));
m_touch->AddInput(ControllerEmu::Translate, _trans("Pressure"));
m_touch->AddInput(ControllerEmu::Translate, _trans("Lift"));
using Translatability = ControllerEmu::Translatability;
m_touch->AddInput(Translatability::Translate, _trans("Pressure"));
m_touch->AddInput(Translatability::Translate, _trans("Lift"));
}

void DrawsomeTablet::BuildDesiredExtensionState(DesiredExtensionState* target_state)
Expand Down
8 changes: 5 additions & 3 deletions Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,13 @@ constexpr std::array<u8, 2> drum_button_bitmasks{{

Drums::Drums() : Extension1stParty("Drums", _trans("Drum Kit"))
{
using Translatability = ControllerEmu::Translatability;

// Pads.
groups.emplace_back(m_pads = new ControllerEmu::Buttons(_trans("Pads")));
for (auto& drum_pad_name : drum_pad_names)
{
m_pads->AddInput(ControllerEmu::Translate, drum_pad_name);
m_pads->AddInput(Translatability::Translate, drum_pad_name);
}

m_pads->AddSetting(&m_hit_strength_setting,
Expand All @@ -71,8 +73,8 @@ Drums::Drums() : Extension1stParty("Drums", _trans("Drum Kit"))

// Buttons.
groups.emplace_back(m_buttons = new ControllerEmu::Buttons(_trans("Buttons")));
m_buttons->AddInput(ControllerEmu::DoNotTranslate, "-");
m_buttons->AddInput(ControllerEmu::DoNotTranslate, "+");
m_buttons->AddInput(Translatability::DoNotTranslate, "-");
m_buttons->AddInput(Translatability::DoNotTranslate, "+");

// Stick.
groups.emplace_back(m_stick =
Expand Down
14 changes: 8 additions & 6 deletions Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,22 +65,24 @@ constexpr std::array<u16, 2> guitar_strum_bitmasks{{

Guitar::Guitar() : Extension1stParty(_trans("Guitar"))
{
using Translatability = ControllerEmu::Translatability;

// frets
groups.emplace_back(m_frets = new ControllerEmu::Buttons(_trans("Frets")));
for (auto& guitar_fret_name : guitar_fret_names)
{
m_frets->AddInput(ControllerEmu::Translate, guitar_fret_name);
m_frets->AddInput(Translatability::Translate, guitar_fret_name);
}

// strum
groups.emplace_back(m_strum = new ControllerEmu::Buttons(_trans("Strum")));
m_strum->AddInput(ControllerEmu::Translate, _trans("Up"));
m_strum->AddInput(ControllerEmu::Translate, _trans("Down"));
m_strum->AddInput(Translatability::Translate, _trans("Up"));
m_strum->AddInput(Translatability::Translate, _trans("Down"));

// buttons
groups.emplace_back(m_buttons = new ControllerEmu::Buttons(_trans("Buttons")));
m_buttons->AddInput(ControllerEmu::DoNotTranslate, "-");
m_buttons->AddInput(ControllerEmu::DoNotTranslate, "+");
m_buttons->AddInput(Translatability::DoNotTranslate, "-");
m_buttons->AddInput(Translatability::DoNotTranslate, "+");

// stick
constexpr auto gate_radius = ControlState(STICK_GATE_RADIUS) / STICK_RADIUS;
Expand All @@ -89,7 +91,7 @@ Guitar::Guitar() : Extension1stParty(_trans("Guitar"))

// whammy
groups.emplace_back(m_whammy = new ControllerEmu::Triggers(_trans("Whammy")));
m_whammy->AddInput(ControllerEmu::Translate, _trans("Bar"));
m_whammy->AddInput(Translatability::Translate, _trans("Bar"));

// slider bar
groups.emplace_back(m_slider_bar = new ControllerEmu::Slider(_trans("Slider Bar")));
Expand Down
5 changes: 3 additions & 2 deletions Source/Core/Core/HW/WiimoteEmu/Extension/Nunchuk.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,9 @@ Nunchuk::Nunchuk() : Extension1stParty(_trans("Nunchuk"))
{
// buttons
groups.emplace_back(m_buttons = new ControllerEmu::Buttons(BUTTONS_GROUP));
m_buttons->AddInput(ControllerEmu::DoNotTranslate, C_BUTTON);
m_buttons->AddInput(ControllerEmu::DoNotTranslate, Z_BUTTON);
using Translatability = ControllerEmu::Translatability;
m_buttons->AddInput(Translatability::DoNotTranslate, C_BUTTON);
m_buttons->AddInput(Translatability::DoNotTranslate, Z_BUTTON);

// stick
constexpr auto gate_radius = ControlState(STICK_GATE_RADIUS) / STICK_RADIUS;
Expand Down
28 changes: 15 additions & 13 deletions Source/Core/Core/HW/WiimoteEmu/Extension/Shinkansen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,35 +22,37 @@ constexpr std::array<u8, 6> shinkansen_id{{0x00, 0x00, 0xa4, 0x20, 0x01, 0x10}};

Shinkansen::Shinkansen() : Extension3rdParty("Shinkansen", _trans("Shinkansen Controller"))
{
using Translatability = ControllerEmu::Translatability;

// Button layout on the controller:
//
// Up Select Start D
// Left Right A C
// Down B
//
groups.emplace_back(m_buttons = new ControllerEmu::Buttons(_trans("Buttons")));
m_buttons->AddInput(ControllerEmu::Translate, _trans("Up"));
m_buttons->AddInput(ControllerEmu::Translate, _trans("Down"));
m_buttons->AddInput(ControllerEmu::Translate, _trans("Left"));
m_buttons->AddInput(ControllerEmu::Translate, _trans("Right"));
m_buttons->AddInput(ControllerEmu::DoNotTranslate, "A");
m_buttons->AddInput(ControllerEmu::DoNotTranslate, "B");
m_buttons->AddInput(ControllerEmu::DoNotTranslate, "C");
m_buttons->AddInput(ControllerEmu::DoNotTranslate, "D");
m_buttons->AddInput(ControllerEmu::Translate, _trans("SELECT"));
m_buttons->AddInput(ControllerEmu::Translate, _trans("START"));
m_buttons->AddInput(Translatability::Translate, _trans("Up"));
m_buttons->AddInput(Translatability::Translate, _trans("Down"));
m_buttons->AddInput(Translatability::Translate, _trans("Left"));
m_buttons->AddInput(Translatability::Translate, _trans("Right"));
m_buttons->AddInput(Translatability::DoNotTranslate, "A");
m_buttons->AddInput(Translatability::DoNotTranslate, "B");
m_buttons->AddInput(Translatability::DoNotTranslate, "C");
m_buttons->AddInput(Translatability::DoNotTranslate, "D");
m_buttons->AddInput(Translatability::Translate, _trans("SELECT"));
m_buttons->AddInput(Translatability::Translate, _trans("START"));

// For easier axis mapping the right lever is inverted in Dolphin,
// so that the train coasts when no trigger is squeezed.
groups.emplace_back(m_levers = new ControllerEmu::Triggers(_trans("Levers")));
m_levers->AddInput(ControllerEmu::Translate, _trans("L"));
m_levers->AddInput(ControllerEmu::Translate, _trans("R"));
m_levers->AddInput(Translatability::Translate, _trans("L"));
m_levers->AddInput(Translatability::Translate, _trans("R"));

// i18n: Noun. This is used as a label for a control group that represents lights on controllers.
groups.emplace_back(m_led = new ControllerEmu::ControlGroup(_trans("Light")));
// i18n: A light on the Shinkansen controller that lights up when the train doors are locked.
// Labeled 戸じめ (in Japanese) on the actual controller.
m_led->AddOutput(ControllerEmu::Translate, _trans("Doors Locked"));
m_led->AddOutput(Translatability::Translate, _trans("Doors Locked"));
}

void Shinkansen::BuildDesiredExtensionState(DesiredExtensionState* target_state)
Expand Down
6 changes: 4 additions & 2 deletions Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,17 @@ constexpr std::array<const char*, 2> position_names{{
// i18n: The drum controller used in "Taiko no Tatsujin" games. Also known as a "TaTaCon".
TaTaCon::TaTaCon() : Extension3rdParty("TaTaCon", _trans("Taiko Drum"))
{
using Translatability = ControllerEmu::Translatability;

// i18n: Refers to the "center" of a TaTaCon drum.
groups.emplace_back(m_center = new ControllerEmu::Buttons(_trans("Center")));
for (auto& name : position_names)
m_center->AddInput(ControllerEmu::Translate, name);
m_center->AddInput(Translatability::Translate, name);

// i18n: Refers to the "rim" of a TaTaCon drum.
groups.emplace_back(m_rim = new ControllerEmu::Buttons(_trans("Rim")));
for (auto& name : position_names)
m_rim->AddInput(ControllerEmu::Translate, name);
m_rim->AddInput(Translatability::Translate, name);
}

void TaTaCon::BuildDesiredExtensionState(DesiredExtensionState* target_state)
Expand Down
10 changes: 6 additions & 4 deletions Source/Core/Core/HW/WiimoteEmu/Extension/Turntable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,18 +48,20 @@ constexpr std::array<const char*, 6> turntable_button_names{{

Turntable::Turntable() : Extension1stParty("Turntable", _trans("DJ Turntable"))
{
using Translatability = ControllerEmu::Translatability;

// buttons
groups.emplace_back(m_buttons = new ControllerEmu::Buttons(_trans("Buttons")));
for (auto& turntable_button_name : turntable_button_names)
{
m_buttons->AddInput(ControllerEmu::Translate, turntable_button_name);
m_buttons->AddInput(Translatability::Translate, turntable_button_name);
}

m_buttons->AddInput(ControllerEmu::DoNotTranslate, "-");
m_buttons->AddInput(ControllerEmu::DoNotTranslate, "+");
m_buttons->AddInput(Translatability::DoNotTranslate, "-");
m_buttons->AddInput(Translatability::DoNotTranslate, "+");

// i18n: This button name refers to a gameplay element in DJ Hero
m_buttons->AddInput(ControllerEmu::Translate, _trans("Euphoria"));
m_buttons->AddInput(Translatability::Translate, _trans("Euphoria"));

// turntables
// i18n: "Table" refers to a turntable
Expand Down

0 comments on commit ef0d00c

Please sign in to comment.