diff --git a/Source/Android/jni/CMakeLists.txt b/Source/Android/jni/CMakeLists.txt index 848da01823..6279c9e94b 100644 --- a/Source/Android/jni/CMakeLists.txt +++ b/Source/Android/jni/CMakeLists.txt @@ -3,7 +3,6 @@ add_library(main SHARED AndroidCommon/IDCache.cpp GameList/GameFile.cpp GameList/GameFileCache.cpp - ButtonManager.cpp MainAndroid.cpp ) diff --git a/Source/Android/jni/MainAndroid.cpp b/Source/Android/jni/MainAndroid.cpp index d998097fee..2b8b91de74 100644 --- a/Source/Android/jni/MainAndroid.cpp +++ b/Source/Android/jni/MainAndroid.cpp @@ -48,6 +48,7 @@ #include "DiscIO/Volume.h" #include "InputCommon/ControllerInterface/Android/Android.h" +#include "InputCommon/ControllerInterface/Touch/ButtonManager.h" #include "UICommon/UICommon.h" @@ -58,7 +59,6 @@ #include "../../Core/Common/WindowSystemInfo.h" #include "jni/AndroidCommon/AndroidCommon.h" #include "jni/AndroidCommon/IDCache.h" -#include "jni/ButtonManager.h" namespace { diff --git a/Source/Core/InputCommon/CMakeLists.txt b/Source/Core/InputCommon/CMakeLists.txt index bce33498f6..30b2a4714c 100644 --- a/Source/Core/InputCommon/CMakeLists.txt +++ b/Source/Core/InputCommon/CMakeLists.txt @@ -120,6 +120,10 @@ elseif(ANDROID) target_sources(inputcommon PRIVATE ControllerInterface/Android/Android.cpp ControllerInterface/Android/Android.h + ControllerInterface/Touch/ButtonManager.cpp + ControllerInterface/Touch/ButtonManager.h + ControllerInterface/Touch/Touchscreen.cpp + ControllerInterface/Touch/Touchscreen.h ) endif() diff --git a/Source/Core/InputCommon/ControllerInterface/Android/Android.cpp b/Source/Core/InputCommon/ControllerInterface/Android/Android.cpp index 21537cba15..50792576be 100644 --- a/Source/Core/InputCommon/ControllerInterface/Android/Android.cpp +++ b/Source/Core/InputCommon/ControllerInterface/Android/Android.cpp @@ -3,10 +3,8 @@ // Refer to the license.txt file included. #include "InputCommon/ControllerInterface/Android/Android.h" -#include -#include -#include #include "InputCommon/ControllerInterface/ControllerInterface.h" +#include "InputCommon/ControllerInterface/Touch/Touchscreen.h" namespace ciface::Android { @@ -28,251 +26,7 @@ void SetMotionSensorsEnabled(bool accelerometer_enabled, bool gyroscope_enabled) void PopulateDevices() { for (int i = 0; i < 8; ++i) - g_controller_interface.AddDevice(std::make_shared(i)); -} - -// Touchscreens and stuff -std::string Touchscreen::GetName() const -{ - return "Touchscreen"; -} - -std::string Touchscreen::GetSource() const -{ - return "Android"; -} - -Touchscreen::Touchscreen(int padID) : _padID(padID) -{ - // GC - AddInput(new Button(_padID, ButtonManager::BUTTON_A)); - AddInput(new Button(_padID, ButtonManager::BUTTON_B)); - AddInput(new Button(_padID, ButtonManager::BUTTON_START)); - AddInput(new Button(_padID, ButtonManager::BUTTON_X)); - AddInput(new Button(_padID, ButtonManager::BUTTON_Y)); - AddInput(new Button(_padID, ButtonManager::BUTTON_Z)); - AddInput(new Button(_padID, ButtonManager::BUTTON_UP)); - AddInput(new Button(_padID, ButtonManager::BUTTON_DOWN)); - AddInput(new Button(_padID, ButtonManager::BUTTON_LEFT)); - AddInput(new Button(_padID, ButtonManager::BUTTON_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::STICK_MAIN_LEFT)); - AddInput(new Axis(_padID, ButtonManager::STICK_MAIN_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::STICK_MAIN_UP)); - AddInput(new Axis(_padID, ButtonManager::STICK_MAIN_DOWN)); - AddInput(new Axis(_padID, ButtonManager::STICK_C_LEFT)); - AddInput(new Axis(_padID, ButtonManager::STICK_C_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::STICK_C_UP)); - AddInput(new Axis(_padID, ButtonManager::STICK_C_DOWN)); - AddInput(new Axis(_padID, ButtonManager::TRIGGER_L)); - AddInput(new Axis(_padID, ButtonManager::TRIGGER_R)); - - // Wiimote - AddInput(new Button(_padID, ButtonManager::WIIMOTE_BUTTON_A)); - AddInput(new Button(_padID, ButtonManager::WIIMOTE_BUTTON_B)); - AddInput(new Button(_padID, ButtonManager::WIIMOTE_BUTTON_MINUS)); - AddInput(new Button(_padID, ButtonManager::WIIMOTE_BUTTON_PLUS)); - AddInput(new Button(_padID, ButtonManager::WIIMOTE_BUTTON_HOME)); - AddInput(new Button(_padID, ButtonManager::WIIMOTE_BUTTON_1)); - AddInput(new Button(_padID, ButtonManager::WIIMOTE_BUTTON_2)); - AddInput(new Button(_padID, ButtonManager::WIIMOTE_UP)); - AddInput(new Button(_padID, ButtonManager::WIIMOTE_DOWN)); - AddInput(new Button(_padID, ButtonManager::WIIMOTE_LEFT)); - AddInput(new Button(_padID, ButtonManager::WIIMOTE_RIGHT)); - AddInput(new Button(_padID, ButtonManager::WIIMOTE_IR_HIDE)); - AddInput(new Button(_padID, ButtonManager::WIIMOTE_TILT_MODIFIER)); - AddInput(new Button(_padID, ButtonManager::WIIMOTE_SHAKE_X)); - AddInput(new Button(_padID, ButtonManager::WIIMOTE_SHAKE_Y)); - AddInput(new Button(_padID, ButtonManager::WIIMOTE_SHAKE_Z)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_IR_UP)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_IR_DOWN)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_IR_LEFT)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_IR_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_IR_FORWARD)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_IR_BACKWARD)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_SWING_UP)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_SWING_DOWN)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_SWING_LEFT)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_SWING_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_SWING_FORWARD)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_SWING_BACKWARD)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_TILT_LEFT)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_TILT_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_TILT_FORWARD)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_TILT_BACKWARD)); - - // Wii ext: Nunchuk - AddInput(new Button(_padID, ButtonManager::NUNCHUK_BUTTON_C)); - AddInput(new Button(_padID, ButtonManager::NUNCHUK_BUTTON_Z)); - AddInput(new Button(_padID, ButtonManager::NUNCHUK_TILT_MODIFIER)); - AddInput(new Button(_padID, ButtonManager::NUNCHUK_SHAKE_X)); - AddInput(new Button(_padID, ButtonManager::NUNCHUK_SHAKE_Y)); - AddInput(new Button(_padID, ButtonManager::NUNCHUK_SHAKE_Z)); - AddInput(new Axis(_padID, ButtonManager::NUNCHUK_STICK_LEFT)); - AddInput(new Axis(_padID, ButtonManager::NUNCHUK_STICK_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::NUNCHUK_STICK_UP)); - AddInput(new Axis(_padID, ButtonManager::NUNCHUK_STICK_DOWN)); - AddInput(new Axis(_padID, ButtonManager::NUNCHUK_SWING_LEFT)); - AddInput(new Axis(_padID, ButtonManager::NUNCHUK_SWING_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::NUNCHUK_SWING_UP)); - AddInput(new Axis(_padID, ButtonManager::NUNCHUK_SWING_DOWN)); - AddInput(new Axis(_padID, ButtonManager::NUNCHUK_SWING_FORWARD)); - AddInput(new Axis(_padID, ButtonManager::NUNCHUK_SWING_BACKWARD)); - AddInput(new Axis(_padID, ButtonManager::NUNCHUK_TILT_LEFT)); - AddInput(new Axis(_padID, ButtonManager::NUNCHUK_TILT_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::NUNCHUK_TILT_FORWARD)); - AddInput(new Axis(_padID, ButtonManager::NUNCHUK_TILT_BACKWARD)); - - // Wii ext: Classic - AddInput(new Button(_padID, ButtonManager::CLASSIC_BUTTON_A)); - AddInput(new Button(_padID, ButtonManager::CLASSIC_BUTTON_B)); - AddInput(new Button(_padID, ButtonManager::CLASSIC_BUTTON_X)); - AddInput(new Button(_padID, ButtonManager::CLASSIC_BUTTON_Y)); - AddInput(new Button(_padID, ButtonManager::CLASSIC_BUTTON_MINUS)); - AddInput(new Button(_padID, ButtonManager::CLASSIC_BUTTON_PLUS)); - AddInput(new Button(_padID, ButtonManager::CLASSIC_BUTTON_HOME)); - AddInput(new Button(_padID, ButtonManager::CLASSIC_BUTTON_ZL)); - AddInput(new Button(_padID, ButtonManager::CLASSIC_BUTTON_ZR)); - AddInput(new Button(_padID, ButtonManager::CLASSIC_DPAD_UP)); - AddInput(new Button(_padID, ButtonManager::CLASSIC_DPAD_DOWN)); - AddInput(new Button(_padID, ButtonManager::CLASSIC_DPAD_LEFT)); - AddInput(new Button(_padID, ButtonManager::CLASSIC_DPAD_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::CLASSIC_STICK_LEFT_LEFT)); - AddInput(new Axis(_padID, ButtonManager::CLASSIC_STICK_LEFT_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::CLASSIC_STICK_LEFT_UP)); - AddInput(new Axis(_padID, ButtonManager::CLASSIC_STICK_LEFT_DOWN)); - AddInput(new Axis(_padID, ButtonManager::CLASSIC_STICK_RIGHT_LEFT)); - AddInput(new Axis(_padID, ButtonManager::CLASSIC_STICK_RIGHT_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::CLASSIC_STICK_RIGHT_UP)); - AddInput(new Axis(_padID, ButtonManager::CLASSIC_STICK_RIGHT_DOWN)); - AddInput(new Axis(_padID, ButtonManager::CLASSIC_TRIGGER_L)); - AddInput(new Axis(_padID, ButtonManager::CLASSIC_TRIGGER_R)); - - // Wii-ext: Guitar - AddInput(new Button(_padID, ButtonManager::GUITAR_BUTTON_MINUS)); - AddInput(new Button(_padID, ButtonManager::GUITAR_BUTTON_PLUS)); - AddInput(new Button(_padID, ButtonManager::GUITAR_FRET_GREEN)); - AddInput(new Button(_padID, ButtonManager::GUITAR_FRET_RED)); - AddInput(new Button(_padID, ButtonManager::GUITAR_FRET_YELLOW)); - AddInput(new Button(_padID, ButtonManager::GUITAR_FRET_BLUE)); - AddInput(new Button(_padID, ButtonManager::GUITAR_FRET_ORANGE)); - AddInput(new Button(_padID, ButtonManager::GUITAR_STRUM_UP)); - AddInput(new Button(_padID, ButtonManager::GUITAR_STRUM_DOWN)); - AddInput(new Axis(_padID, ButtonManager::GUITAR_STICK_LEFT)); - AddInput(new Axis(_padID, ButtonManager::GUITAR_STICK_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::GUITAR_STICK_UP)); - AddInput(new Axis(_padID, ButtonManager::GUITAR_STICK_DOWN)); - AddInput(new Axis(_padID, ButtonManager::GUITAR_WHAMMY_BAR)); - - // Wii-ext: Drums - AddInput(new Button(_padID, ButtonManager::DRUMS_BUTTON_MINUS)); - AddInput(new Button(_padID, ButtonManager::DRUMS_BUTTON_PLUS)); - AddInput(new Button(_padID, ButtonManager::DRUMS_PAD_RED)); - AddInput(new Button(_padID, ButtonManager::DRUMS_PAD_YELLOW)); - AddInput(new Button(_padID, ButtonManager::DRUMS_PAD_BLUE)); - AddInput(new Button(_padID, ButtonManager::DRUMS_PAD_GREEN)); - AddInput(new Button(_padID, ButtonManager::DRUMS_PAD_ORANGE)); - AddInput(new Button(_padID, ButtonManager::DRUMS_PAD_BASS)); - AddInput(new Axis(_padID, ButtonManager::DRUMS_STICK_LEFT)); - AddInput(new Axis(_padID, ButtonManager::DRUMS_STICK_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::DRUMS_STICK_UP)); - AddInput(new Axis(_padID, ButtonManager::DRUMS_STICK_DOWN)); - - // Wii-ext: Turntable - AddInput(new Button(_padID, ButtonManager::TURNTABLE_BUTTON_GREEN_LEFT)); - AddInput(new Button(_padID, ButtonManager::TURNTABLE_BUTTON_RED_LEFT)); - AddInput(new Button(_padID, ButtonManager::TURNTABLE_BUTTON_BLUE_LEFT)); - AddInput(new Button(_padID, ButtonManager::TURNTABLE_BUTTON_GREEN_RIGHT)); - AddInput(new Button(_padID, ButtonManager::TURNTABLE_BUTTON_RED_RIGHT)); - AddInput(new Button(_padID, ButtonManager::TURNTABLE_BUTTON_BLUE_RIGHT)); - AddInput(new Button(_padID, ButtonManager::TURNTABLE_BUTTON_MINUS)); - AddInput(new Button(_padID, ButtonManager::TURNTABLE_BUTTON_PLUS)); - AddInput(new Button(_padID, ButtonManager::TURNTABLE_BUTTON_HOME)); - AddInput(new Button(_padID, ButtonManager::TURNTABLE_BUTTON_EUPHORIA)); - AddInput(new Axis(_padID, ButtonManager::TURNTABLE_TABLE_LEFT_LEFT)); - AddInput(new Axis(_padID, ButtonManager::TURNTABLE_TABLE_LEFT_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::TURNTABLE_TABLE_RIGHT_LEFT)); - AddInput(new Axis(_padID, ButtonManager::TURNTABLE_TABLE_RIGHT_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::TURNTABLE_STICK_LEFT)); - AddInput(new Axis(_padID, ButtonManager::TURNTABLE_STICK_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::TURNTABLE_STICK_UP)); - AddInput(new Axis(_padID, ButtonManager::TURNTABLE_STICK_DOWN)); - AddInput(new Axis(_padID, ButtonManager::TURNTABLE_CROSSFADE_LEFT)); - AddInput(new Axis(_padID, ButtonManager::TURNTABLE_CROSSFADE_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::TURNTABLE_EFFECT_DIAL)); - - // Wiimote IMU - // Only add inputs if we actually can receive data from the relevant sensor. - // Whether inputs exist affects what WiimoteEmu gets when calling ControlReference::BoundCount. - if (s_accelerometer_enabled) - { - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_ACCEL_LEFT)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_ACCEL_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_ACCEL_FORWARD)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_ACCEL_BACKWARD)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_ACCEL_UP)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_ACCEL_DOWN)); - } - if (s_gyroscope_enabled) - { - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_GYRO_PITCH_UP)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_GYRO_PITCH_DOWN)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_GYRO_ROLL_LEFT)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_GYRO_ROLL_RIGHT)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_GYRO_YAW_LEFT)); - AddInput(new Axis(_padID, ButtonManager::WIIMOTE_GYRO_YAW_RIGHT)); - } - - // Rumble - AddOutput(new Motor(_padID, ButtonManager::RUMBLE)); -} -// Buttons and stuff - -std::string Touchscreen::Button::GetName() const -{ - std::ostringstream ss; - ss << "Button " << (int)_index; - return ss.str(); -} - -ControlState Touchscreen::Button::GetState() const -{ - return ButtonManager::GetButtonPressed(_padID, _index); -} - -std::string Touchscreen::Axis::GetName() const -{ - std::ostringstream ss; - ss << "Axis " << (int)_index; - return ss.str(); -} - -ControlState Touchscreen::Axis::GetState() const -{ - return ButtonManager::GetAxisValue(_padID, _index) * _neg; -} - -Touchscreen::Motor::~Motor() -{ -} - -std::string Touchscreen::Motor::GetName() const -{ - std::ostringstream ss; - ss << "Rumble " << (int)_index; - return ss.str(); -} - -void Touchscreen::Motor::SetState(ControlState state) -{ - if (state > 0) - { - std::thread(Rumble, _padID, state).detach(); - } -} - -void Touchscreen::Motor::Rumble(int padID, double state) -{ - JNIEnv* env = IDCache::GetEnvForThread(); - env->CallStaticVoidMethod(IDCache::GetNativeLibraryClass(), IDCache::GetDoRumble(), padID, state); + g_controller_interface.AddDevice(std::make_shared( + i, s_accelerometer_enabled, s_gyroscope_enabled)); } } // namespace ciface::Android diff --git a/Source/Core/InputCommon/ControllerInterface/Android/Android.h b/Source/Core/InputCommon/ControllerInterface/Android/Android.h index c9e7ddc0a9..5b60487cfc 100644 --- a/Source/Core/InputCommon/ControllerInterface/Android/Android.h +++ b/Source/Core/InputCommon/ControllerInterface/Android/Android.h @@ -4,66 +4,9 @@ #pragma once -#include "InputCommon/ControllerInterface/ControllerInterface.h" -#include "jni/ButtonManager.h" - namespace ciface::Android { void SetMotionSensorsEnabled(bool accelerometer_enabled, bool gyroscope_enabled); void PopulateDevices(); - -class Touchscreen : public Core::Device -{ -private: - class Button : public Input - { - public: - std::string GetName() const; - Button(int padID, ButtonManager::ButtonType index) : _padID(padID), _index(index) {} - ControlState GetState() const; - - private: - const int _padID; - const ButtonManager::ButtonType _index; - }; - class Axis : public Input - { - public: - std::string GetName() const; - bool IsDetectable() override { return false; } - Axis(int padID, ButtonManager::ButtonType index, float neg = 1.0f) - : _padID(padID), _index(index), _neg(neg) - { - } - ControlState GetState() const; - - private: - const int _padID; - const ButtonManager::ButtonType _index; - const float _neg; - }; - class Motor : public Core::Device::Output - { - public: - Motor(int padID, ButtonManager::ButtonType index) : _padID(padID), _index(index) {} - ~Motor(); - std::string GetName() const override; - void SetState(ControlState state) override; - - private: - const int _padID; - const ButtonManager::ButtonType _index; - static void Rumble(int padID, double state); - }; - -public: - Touchscreen(int padID); - ~Touchscreen() {} - std::string GetName() const; - std::string GetSource() const; - -private: - const int _padID; -}; } // namespace ciface::Android diff --git a/Source/Android/jni/ButtonManager.cpp b/Source/Core/InputCommon/ControllerInterface/Touch/ButtonManager.cpp similarity index 53% rename from Source/Android/jni/ButtonManager.cpp rename to Source/Core/InputCommon/ControllerInterface/Touch/ButtonManager.cpp index bd02525db4..35d4552afc 100644 --- a/Source/Android/jni/ButtonManager.cpp +++ b/Source/Core/InputCommon/ControllerInterface/Touch/ButtonManager.cpp @@ -11,14 +11,14 @@ #include "Common/FileUtil.h" #include "Common/IniFile.h" #include "Common/Thread.h" -#include "jni/ButtonManager.h" +#include "InputCommon/ControllerInterface/Touch/ButtonManager.h" namespace ButtonManager { namespace { -constexpr char touchScreenKey[] = "Touchscreen"; -constexpr std::array configStrings{{ +constexpr char TOUCHSCREEN_KEY[] = "Touchscreen"; +constexpr std::array CONFIG_STRINGS{{ // GC "InputA", "InputB", @@ -185,7 +185,7 @@ constexpr std::array configStrings{{ "Rumble", }}; -constexpr std::array configTypes{{ +constexpr std::array CONFIG_TYPES{{ // GC BUTTON_A, BUTTON_B, @@ -367,261 +367,267 @@ void AddBind(const std::string& dev, sBind* bind) } } // Anonymous namespace -void Init(const std::string& gameId) +void Init(const std::string& game_id) { // Initialize pad 0(gc 1) and pad 4(wii 1) as touch overlay controller for (int a = 0; a < 5; a += 4) { // GC - AddBind(touchScreenKey, new sBind(a, BUTTON_A, BIND_BUTTON, BUTTON_A, 1.0f)); - AddBind(touchScreenKey, new sBind(a, BUTTON_B, BIND_BUTTON, BUTTON_B, 1.0f)); - AddBind(touchScreenKey, new sBind(a, BUTTON_START, BIND_BUTTON, BUTTON_START, 1.0f)); - AddBind(touchScreenKey, new sBind(a, BUTTON_X, BIND_BUTTON, BUTTON_X, 1.0f)); - AddBind(touchScreenKey, new sBind(a, BUTTON_Y, BIND_BUTTON, BUTTON_Y, 1.0f)); - AddBind(touchScreenKey, new sBind(a, BUTTON_Z, BIND_BUTTON, BUTTON_Z, 1.0f)); - AddBind(touchScreenKey, new sBind(a, BUTTON_UP, BIND_BUTTON, BUTTON_UP, 1.0f)); - AddBind(touchScreenKey, new sBind(a, BUTTON_DOWN, BIND_BUTTON, BUTTON_DOWN, 1.0f)); - AddBind(touchScreenKey, new sBind(a, BUTTON_LEFT, BIND_BUTTON, BUTTON_LEFT, 1.0f)); - AddBind(touchScreenKey, new sBind(a, BUTTON_RIGHT, BIND_BUTTON, BUTTON_RIGHT, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, BUTTON_A, BIND_BUTTON, BUTTON_A, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, BUTTON_B, BIND_BUTTON, BUTTON_B, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, BUTTON_START, BIND_BUTTON, BUTTON_START, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, BUTTON_X, BIND_BUTTON, BUTTON_X, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, BUTTON_Y, BIND_BUTTON, BUTTON_Y, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, BUTTON_Z, BIND_BUTTON, BUTTON_Z, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, BUTTON_UP, BIND_BUTTON, BUTTON_UP, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, BUTTON_DOWN, BIND_BUTTON, BUTTON_DOWN, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, BUTTON_LEFT, BIND_BUTTON, BUTTON_LEFT, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, BUTTON_RIGHT, BIND_BUTTON, BUTTON_RIGHT, 1.0f)); - AddBind(touchScreenKey, new sBind(a, STICK_MAIN_UP, BIND_AXIS, STICK_MAIN_UP, -1.0f)); - AddBind(touchScreenKey, new sBind(a, STICK_MAIN_DOWN, BIND_AXIS, STICK_MAIN_DOWN, 1.0f)); - AddBind(touchScreenKey, new sBind(a, STICK_MAIN_LEFT, BIND_AXIS, STICK_MAIN_LEFT, -1.0f)); - AddBind(touchScreenKey, new sBind(a, STICK_MAIN_RIGHT, BIND_AXIS, STICK_MAIN_RIGHT, 1.0f)); - AddBind(touchScreenKey, new sBind(a, STICK_C_UP, BIND_AXIS, STICK_C_UP, -1.0f)); - AddBind(touchScreenKey, new sBind(a, STICK_C_DOWN, BIND_AXIS, STICK_C_DOWN, 1.0f)); - AddBind(touchScreenKey, new sBind(a, STICK_C_LEFT, BIND_AXIS, STICK_C_LEFT, -1.0f)); - AddBind(touchScreenKey, new sBind(a, STICK_C_RIGHT, BIND_AXIS, STICK_C_RIGHT, 1.0f)); - AddBind(touchScreenKey, new sBind(a, TRIGGER_L, BIND_AXIS, TRIGGER_L, 1.0f)); - AddBind(touchScreenKey, new sBind(a, TRIGGER_R, BIND_AXIS, TRIGGER_R, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, STICK_MAIN_UP, BIND_AXIS, STICK_MAIN_UP, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, STICK_MAIN_DOWN, BIND_AXIS, STICK_MAIN_DOWN, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, STICK_MAIN_LEFT, BIND_AXIS, STICK_MAIN_LEFT, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, STICK_MAIN_RIGHT, BIND_AXIS, STICK_MAIN_RIGHT, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, STICK_C_UP, BIND_AXIS, STICK_C_UP, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, STICK_C_DOWN, BIND_AXIS, STICK_C_DOWN, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, STICK_C_LEFT, BIND_AXIS, STICK_C_LEFT, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, STICK_C_RIGHT, BIND_AXIS, STICK_C_RIGHT, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, TRIGGER_L, BIND_AXIS, TRIGGER_L, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, TRIGGER_R, BIND_AXIS, TRIGGER_R, 1.0f)); // Wiimote - AddBind(touchScreenKey, new sBind(a, WIIMOTE_BUTTON_A, BIND_BUTTON, WIIMOTE_BUTTON_A, 1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_BUTTON_B, BIND_BUTTON, WIIMOTE_BUTTON_B, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_BUTTON_A, BIND_BUTTON, WIIMOTE_BUTTON_A, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_BUTTON_B, BIND_BUTTON, WIIMOTE_BUTTON_B, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_BUTTON_MINUS, BIND_BUTTON, WIIMOTE_BUTTON_MINUS, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_BUTTON_PLUS, BIND_BUTTON, WIIMOTE_BUTTON_PLUS, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_BUTTON_HOME, BIND_BUTTON, WIIMOTE_BUTTON_HOME, 1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_BUTTON_1, BIND_BUTTON, WIIMOTE_BUTTON_1, 1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_BUTTON_2, BIND_BUTTON, WIIMOTE_BUTTON_2, 1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_UP, BIND_BUTTON, WIIMOTE_UP, 1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_DOWN, BIND_BUTTON, WIIMOTE_DOWN, 1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_LEFT, BIND_BUTTON, WIIMOTE_LEFT, 1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_RIGHT, BIND_BUTTON, WIIMOTE_RIGHT, 1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_IR_HIDE, BIND_BUTTON, WIIMOTE_IR_HIDE, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_BUTTON_1, BIND_BUTTON, WIIMOTE_BUTTON_1, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_BUTTON_2, BIND_BUTTON, WIIMOTE_BUTTON_2, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_UP, BIND_BUTTON, WIIMOTE_UP, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_DOWN, BIND_BUTTON, WIIMOTE_DOWN, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_LEFT, BIND_BUTTON, WIIMOTE_LEFT, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_RIGHT, BIND_BUTTON, WIIMOTE_RIGHT, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_IR_HIDE, BIND_BUTTON, WIIMOTE_IR_HIDE, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_TILT_MODIFIER, BIND_BUTTON, WIIMOTE_TILT_MODIFIER, 1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_SHAKE_X, BIND_BUTTON, WIIMOTE_SHAKE_X, 1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_SHAKE_Y, BIND_BUTTON, WIIMOTE_SHAKE_Y, 1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_SHAKE_Z, BIND_BUTTON, WIIMOTE_SHAKE_Z, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_SHAKE_X, BIND_BUTTON, WIIMOTE_SHAKE_X, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_SHAKE_Y, BIND_BUTTON, WIIMOTE_SHAKE_Y, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_SHAKE_Z, BIND_BUTTON, WIIMOTE_SHAKE_Z, 1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_IR_UP, BIND_AXIS, WIIMOTE_IR_UP, -1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_IR_DOWN, BIND_AXIS, WIIMOTE_IR_DOWN, 1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_IR_LEFT, BIND_AXIS, WIIMOTE_IR_LEFT, -1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_IR_RIGHT, BIND_AXIS, WIIMOTE_IR_RIGHT, 1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_IR_FORWARD, BIND_AXIS, WIIMOTE_IR_FORWARD, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_IR_UP, BIND_AXIS, WIIMOTE_IR_UP, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_IR_DOWN, BIND_AXIS, WIIMOTE_IR_DOWN, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_IR_LEFT, BIND_AXIS, WIIMOTE_IR_LEFT, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_IR_RIGHT, BIND_AXIS, WIIMOTE_IR_RIGHT, 1.0f)); + AddBind(TOUCHSCREEN_KEY, + new sBind(a, WIIMOTE_IR_FORWARD, BIND_AXIS, WIIMOTE_IR_FORWARD, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_IR_BACKWARD, BIND_AXIS, WIIMOTE_IR_BACKWARD, 1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_SWING_UP, BIND_AXIS, WIIMOTE_SWING_UP, -1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_SWING_DOWN, BIND_AXIS, WIIMOTE_SWING_DOWN, 1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_SWING_LEFT, BIND_AXIS, WIIMOTE_SWING_LEFT, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_SWING_UP, BIND_AXIS, WIIMOTE_SWING_UP, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_SWING_DOWN, BIND_AXIS, WIIMOTE_SWING_DOWN, 1.0f)); + AddBind(TOUCHSCREEN_KEY, + new sBind(a, WIIMOTE_SWING_LEFT, BIND_AXIS, WIIMOTE_SWING_LEFT, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_SWING_RIGHT, BIND_AXIS, WIIMOTE_SWING_RIGHT, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_SWING_FORWARD, BIND_AXIS, WIIMOTE_SWING_FORWARD, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_SWING_BACKWARD, BIND_AXIS, WIIMOTE_SWING_BACKWARD, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_TILT_FORWARD, BIND_AXIS, WIIMOTE_TILT_FORWARD, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_TILT_BACKWARD, BIND_AXIS, WIIMOTE_TILT_BACKWARD, 1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_TILT_LEFT, BIND_AXIS, WIIMOTE_TILT_LEFT, -1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_TILT_RIGHT, BIND_AXIS, WIIMOTE_TILT_RIGHT, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_TILT_LEFT, BIND_AXIS, WIIMOTE_TILT_LEFT, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_TILT_RIGHT, BIND_AXIS, WIIMOTE_TILT_RIGHT, 1.0f)); // Wii: Nunchuk - AddBind(touchScreenKey, new sBind(a, NUNCHUK_BUTTON_C, BIND_BUTTON, NUNCHUK_BUTTON_C, 1.0f)); - AddBind(touchScreenKey, new sBind(a, NUNCHUK_BUTTON_Z, BIND_BUTTON, NUNCHUK_BUTTON_Z, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, NUNCHUK_BUTTON_C, BIND_BUTTON, NUNCHUK_BUTTON_C, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, NUNCHUK_BUTTON_Z, BIND_BUTTON, NUNCHUK_BUTTON_Z, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, NUNCHUK_TILT_MODIFIER, BIND_BUTTON, NUNCHUK_TILT_MODIFIER, 1.0f)); - AddBind(touchScreenKey, new sBind(a, NUNCHUK_SHAKE_X, BIND_BUTTON, NUNCHUK_SHAKE_X, 1.0f)); - AddBind(touchScreenKey, new sBind(a, NUNCHUK_SHAKE_Y, BIND_BUTTON, NUNCHUK_SHAKE_Y, 1.0f)); - AddBind(touchScreenKey, new sBind(a, NUNCHUK_SHAKE_Z, BIND_BUTTON, NUNCHUK_SHAKE_Z, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, NUNCHUK_SHAKE_X, BIND_BUTTON, NUNCHUK_SHAKE_X, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, NUNCHUK_SHAKE_Y, BIND_BUTTON, NUNCHUK_SHAKE_Y, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, NUNCHUK_SHAKE_Z, BIND_BUTTON, NUNCHUK_SHAKE_Z, 1.0f)); - AddBind(touchScreenKey, new sBind(a, NUNCHUK_SWING_UP, BIND_AXIS, NUNCHUK_SWING_UP, -1.0f)); - AddBind(touchScreenKey, new sBind(a, NUNCHUK_SWING_DOWN, BIND_AXIS, NUNCHUK_SWING_DOWN, 1.0f)); - AddBind(touchScreenKey, new sBind(a, NUNCHUK_SWING_LEFT, BIND_AXIS, NUNCHUK_SWING_LEFT, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, NUNCHUK_SWING_UP, BIND_AXIS, NUNCHUK_SWING_UP, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, NUNCHUK_SWING_DOWN, BIND_AXIS, NUNCHUK_SWING_DOWN, 1.0f)); + AddBind(TOUCHSCREEN_KEY, + new sBind(a, NUNCHUK_SWING_LEFT, BIND_AXIS, NUNCHUK_SWING_LEFT, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, NUNCHUK_SWING_RIGHT, BIND_AXIS, NUNCHUK_SWING_RIGHT, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, NUNCHUK_SWING_FORWARD, BIND_AXIS, NUNCHUK_SWING_FORWARD, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, NUNCHUK_SWING_BACKWARD, BIND_BUTTON, NUNCHUK_SWING_BACKWARD, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, NUNCHUK_TILT_FORWARD, BIND_AXIS, NUNCHUK_TILT_FORWARD, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, NUNCHUK_TILT_BACKWARD, BIND_AXIS, NUNCHUK_TILT_BACKWARD, 1.0f)); - AddBind(touchScreenKey, new sBind(a, NUNCHUK_TILT_LEFT, BIND_AXIS, NUNCHUK_TILT_LEFT, -1.0f)); - AddBind(touchScreenKey, new sBind(a, NUNCHUK_TILT_RIGHT, BIND_AXIS, NUNCHUK_TILT_RIGHT, 1.0f)); - AddBind(touchScreenKey, new sBind(a, NUNCHUK_STICK_UP, BIND_AXIS, NUNCHUK_STICK_UP, -1.0f)); - AddBind(touchScreenKey, new sBind(a, NUNCHUK_STICK_DOWN, BIND_AXIS, NUNCHUK_STICK_DOWN, 1.0f)); - AddBind(touchScreenKey, new sBind(a, NUNCHUK_STICK_LEFT, BIND_AXIS, NUNCHUK_STICK_LEFT, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, NUNCHUK_TILT_LEFT, BIND_AXIS, NUNCHUK_TILT_LEFT, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, NUNCHUK_TILT_RIGHT, BIND_AXIS, NUNCHUK_TILT_RIGHT, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, NUNCHUK_STICK_UP, BIND_AXIS, NUNCHUK_STICK_UP, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, NUNCHUK_STICK_DOWN, BIND_AXIS, NUNCHUK_STICK_DOWN, 1.0f)); + AddBind(TOUCHSCREEN_KEY, + new sBind(a, NUNCHUK_STICK_LEFT, BIND_AXIS, NUNCHUK_STICK_LEFT, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, NUNCHUK_STICK_RIGHT, BIND_AXIS, NUNCHUK_STICK_RIGHT, 1.0f)); // Wii: Classic - AddBind(touchScreenKey, new sBind(a, CLASSIC_BUTTON_A, BIND_BUTTON, CLASSIC_BUTTON_A, 1.0f)); - AddBind(touchScreenKey, new sBind(a, CLASSIC_BUTTON_B, BIND_BUTTON, CLASSIC_BUTTON_B, 1.0f)); - AddBind(touchScreenKey, new sBind(a, CLASSIC_BUTTON_X, BIND_BUTTON, CLASSIC_BUTTON_X, 1.0f)); - AddBind(touchScreenKey, new sBind(a, CLASSIC_BUTTON_Y, BIND_BUTTON, CLASSIC_BUTTON_Y, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_BUTTON_A, BIND_BUTTON, CLASSIC_BUTTON_A, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_BUTTON_B, BIND_BUTTON, CLASSIC_BUTTON_B, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_BUTTON_X, BIND_BUTTON, CLASSIC_BUTTON_X, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_BUTTON_Y, BIND_BUTTON, CLASSIC_BUTTON_Y, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_BUTTON_MINUS, BIND_BUTTON, CLASSIC_BUTTON_MINUS, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_BUTTON_PLUS, BIND_BUTTON, CLASSIC_BUTTON_PLUS, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_BUTTON_HOME, BIND_BUTTON, CLASSIC_BUTTON_HOME, 1.0f)); - AddBind(touchScreenKey, new sBind(a, CLASSIC_BUTTON_ZL, BIND_BUTTON, CLASSIC_BUTTON_ZL, 1.0f)); - AddBind(touchScreenKey, new sBind(a, CLASSIC_BUTTON_ZR, BIND_BUTTON, CLASSIC_BUTTON_ZR, 1.0f)); - AddBind(touchScreenKey, new sBind(a, CLASSIC_DPAD_UP, BIND_BUTTON, CLASSIC_DPAD_UP, 1.0f)); - AddBind(touchScreenKey, new sBind(a, CLASSIC_DPAD_DOWN, BIND_BUTTON, CLASSIC_DPAD_DOWN, 1.0f)); - AddBind(touchScreenKey, new sBind(a, CLASSIC_DPAD_LEFT, BIND_BUTTON, CLASSIC_DPAD_LEFT, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_BUTTON_ZL, BIND_BUTTON, CLASSIC_BUTTON_ZL, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_BUTTON_ZR, BIND_BUTTON, CLASSIC_BUTTON_ZR, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_DPAD_UP, BIND_BUTTON, CLASSIC_DPAD_UP, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_DPAD_DOWN, BIND_BUTTON, CLASSIC_DPAD_DOWN, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_DPAD_LEFT, BIND_BUTTON, CLASSIC_DPAD_LEFT, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_DPAD_RIGHT, BIND_BUTTON, CLASSIC_DPAD_RIGHT, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_STICK_LEFT_UP, BIND_AXIS, CLASSIC_STICK_LEFT_UP, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_STICK_LEFT_DOWN, BIND_AXIS, CLASSIC_STICK_LEFT_DOWN, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_STICK_LEFT_LEFT, BIND_AXIS, CLASSIC_STICK_LEFT_LEFT, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_STICK_LEFT_RIGHT, BIND_AXIS, CLASSIC_STICK_LEFT_RIGHT, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_STICK_RIGHT_UP, BIND_AXIS, CLASSIC_STICK_RIGHT_UP, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_STICK_RIGHT_DOWN, BIND_AXIS, CLASSIC_STICK_RIGHT_DOWN, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_STICK_RIGHT_LEFT, BIND_AXIS, CLASSIC_STICK_RIGHT_LEFT, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_STICK_RIGHT_RIGHT, BIND_AXIS, CLASSIC_STICK_RIGHT_RIGHT, 1.0f)); - AddBind(touchScreenKey, new sBind(a, CLASSIC_TRIGGER_L, BIND_AXIS, CLASSIC_TRIGGER_L, 1.0f)); - AddBind(touchScreenKey, new sBind(a, CLASSIC_TRIGGER_R, BIND_AXIS, CLASSIC_TRIGGER_R, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_TRIGGER_L, BIND_AXIS, CLASSIC_TRIGGER_L, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, CLASSIC_TRIGGER_R, BIND_AXIS, CLASSIC_TRIGGER_R, 1.0f)); // Wii: Guitar - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, GUITAR_BUTTON_MINUS, BIND_BUTTON, GUITAR_BUTTON_MINUS, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, GUITAR_BUTTON_PLUS, BIND_BUTTON, GUITAR_BUTTON_PLUS, 1.0f)); - AddBind(touchScreenKey, new sBind(a, GUITAR_FRET_GREEN, BIND_BUTTON, GUITAR_FRET_GREEN, 1.0f)); - AddBind(touchScreenKey, new sBind(a, GUITAR_FRET_RED, BIND_BUTTON, GUITAR_FRET_RED, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, GUITAR_FRET_GREEN, BIND_BUTTON, GUITAR_FRET_GREEN, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, GUITAR_FRET_RED, BIND_BUTTON, GUITAR_FRET_RED, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, GUITAR_FRET_YELLOW, BIND_BUTTON, GUITAR_FRET_YELLOW, 1.0f)); - AddBind(touchScreenKey, new sBind(a, GUITAR_FRET_BLUE, BIND_BUTTON, GUITAR_FRET_BLUE, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, GUITAR_FRET_BLUE, BIND_BUTTON, GUITAR_FRET_BLUE, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, GUITAR_FRET_ORANGE, BIND_BUTTON, GUITAR_FRET_ORANGE, 1.0f)); - AddBind(touchScreenKey, new sBind(a, GUITAR_STRUM_UP, BIND_BUTTON, GUITAR_STRUM_UP, 1.0f)); - AddBind(touchScreenKey, new sBind(a, GUITAR_STRUM_DOWN, BIND_BUTTON, GUITAR_STRUM_DOWN, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, GUITAR_STRUM_UP, BIND_BUTTON, GUITAR_STRUM_UP, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, GUITAR_STRUM_DOWN, BIND_BUTTON, GUITAR_STRUM_DOWN, 1.0f)); - AddBind(touchScreenKey, new sBind(a, GUITAR_STICK_UP, BIND_AXIS, GUITAR_STICK_UP, -1.0f)); - AddBind(touchScreenKey, new sBind(a, GUITAR_STICK_DOWN, BIND_AXIS, GUITAR_STICK_DOWN, 1.0f)); - AddBind(touchScreenKey, new sBind(a, GUITAR_STICK_LEFT, BIND_AXIS, GUITAR_STICK_LEFT, -1.0f)); - AddBind(touchScreenKey, new sBind(a, GUITAR_STICK_RIGHT, BIND_AXIS, GUITAR_STICK_RIGHT, 1.0f)); - AddBind(touchScreenKey, new sBind(a, GUITAR_WHAMMY_BAR, BIND_AXIS, GUITAR_WHAMMY_BAR, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, GUITAR_STICK_UP, BIND_AXIS, GUITAR_STICK_UP, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, GUITAR_STICK_DOWN, BIND_AXIS, GUITAR_STICK_DOWN, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, GUITAR_STICK_LEFT, BIND_AXIS, GUITAR_STICK_LEFT, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, GUITAR_STICK_RIGHT, BIND_AXIS, GUITAR_STICK_RIGHT, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, GUITAR_WHAMMY_BAR, BIND_AXIS, GUITAR_WHAMMY_BAR, 1.0f)); // Wii: Drums - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, DRUMS_BUTTON_MINUS, BIND_BUTTON, DRUMS_BUTTON_MINUS, 1.0f)); - AddBind(touchScreenKey, new sBind(a, DRUMS_BUTTON_PLUS, BIND_BUTTON, DRUMS_BUTTON_PLUS, 1.0f)); - AddBind(touchScreenKey, new sBind(a, DRUMS_PAD_RED, BIND_BUTTON, DRUMS_PAD_RED, 1.0f)); - AddBind(touchScreenKey, new sBind(a, DRUMS_PAD_YELLOW, BIND_BUTTON, DRUMS_PAD_YELLOW, 1.0f)); - AddBind(touchScreenKey, new sBind(a, DRUMS_PAD_BLUE, BIND_BUTTON, DRUMS_PAD_BLUE, 1.0f)); - AddBind(touchScreenKey, new sBind(a, DRUMS_PAD_GREEN, BIND_BUTTON, DRUMS_PAD_GREEN, 1.0f)); - AddBind(touchScreenKey, new sBind(a, DRUMS_PAD_ORANGE, BIND_BUTTON, DRUMS_PAD_ORANGE, 1.0f)); - AddBind(touchScreenKey, new sBind(a, DRUMS_PAD_BASS, BIND_BUTTON, DRUMS_PAD_BASS, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, DRUMS_BUTTON_PLUS, BIND_BUTTON, DRUMS_BUTTON_PLUS, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, DRUMS_PAD_RED, BIND_BUTTON, DRUMS_PAD_RED, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, DRUMS_PAD_YELLOW, BIND_BUTTON, DRUMS_PAD_YELLOW, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, DRUMS_PAD_BLUE, BIND_BUTTON, DRUMS_PAD_BLUE, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, DRUMS_PAD_GREEN, BIND_BUTTON, DRUMS_PAD_GREEN, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, DRUMS_PAD_ORANGE, BIND_BUTTON, DRUMS_PAD_ORANGE, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, DRUMS_PAD_BASS, BIND_BUTTON, DRUMS_PAD_BASS, 1.0f)); - AddBind(touchScreenKey, new sBind(a, DRUMS_STICK_UP, BIND_AXIS, DRUMS_STICK_UP, -1.0f)); - AddBind(touchScreenKey, new sBind(a, DRUMS_STICK_DOWN, BIND_AXIS, DRUMS_STICK_DOWN, 1.0f)); - AddBind(touchScreenKey, new sBind(a, DRUMS_STICK_LEFT, BIND_AXIS, DRUMS_STICK_LEFT, -1.0f)); - AddBind(touchScreenKey, new sBind(a, DRUMS_STICK_RIGHT, BIND_AXIS, DRUMS_STICK_RIGHT, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, DRUMS_STICK_UP, BIND_AXIS, DRUMS_STICK_UP, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, DRUMS_STICK_DOWN, BIND_AXIS, DRUMS_STICK_DOWN, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, DRUMS_STICK_LEFT, BIND_AXIS, DRUMS_STICK_LEFT, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, DRUMS_STICK_RIGHT, BIND_AXIS, DRUMS_STICK_RIGHT, 1.0f)); // Wii: Turntable - AddBind(touchScreenKey, new sBind(a, TURNTABLE_BUTTON_GREEN_LEFT, BIND_BUTTON, - TURNTABLE_BUTTON_GREEN_LEFT, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_BUTTON_GREEN_LEFT, BIND_BUTTON, + TURNTABLE_BUTTON_GREEN_LEFT, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_BUTTON_RED_LEFT, BIND_BUTTON, TURNTABLE_BUTTON_RED_LEFT, 1.0f)); - AddBind(touchScreenKey, new sBind(a, TURNTABLE_BUTTON_BLUE_LEFT, BIND_BUTTON, - TURNTABLE_BUTTON_BLUE_LEFT, 1.0f)); - AddBind(touchScreenKey, new sBind(a, TURNTABLE_BUTTON_GREEN_RIGHT, BIND_BUTTON, - TURNTABLE_BUTTON_GREEN_RIGHT, 1.0f)); - AddBind(touchScreenKey, new sBind(a, TURNTABLE_BUTTON_RED_RIGHT, BIND_BUTTON, - TURNTABLE_BUTTON_RED_RIGHT, 1.0f)); - AddBind(touchScreenKey, new sBind(a, TURNTABLE_BUTTON_BLUE_RIGHT, BIND_BUTTON, - TURNTABLE_BUTTON_BLUE_RIGHT, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_BUTTON_BLUE_LEFT, BIND_BUTTON, + TURNTABLE_BUTTON_BLUE_LEFT, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_BUTTON_GREEN_RIGHT, BIND_BUTTON, + TURNTABLE_BUTTON_GREEN_RIGHT, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_BUTTON_RED_RIGHT, BIND_BUTTON, + TURNTABLE_BUTTON_RED_RIGHT, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_BUTTON_BLUE_RIGHT, BIND_BUTTON, + TURNTABLE_BUTTON_BLUE_RIGHT, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_BUTTON_MINUS, BIND_BUTTON, TURNTABLE_BUTTON_MINUS, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_BUTTON_PLUS, BIND_BUTTON, TURNTABLE_BUTTON_PLUS, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_BUTTON_HOME, BIND_BUTTON, TURNTABLE_BUTTON_HOME, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_BUTTON_EUPHORIA, BIND_BUTTON, TURNTABLE_BUTTON_EUPHORIA, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_TABLE_LEFT_LEFT, BIND_AXIS, TURNTABLE_TABLE_LEFT_LEFT, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_TABLE_LEFT_RIGHT, BIND_AXIS, TURNTABLE_TABLE_LEFT_RIGHT, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_TABLE_RIGHT_LEFT, BIND_AXIS, TURNTABLE_TABLE_RIGHT_LEFT, -1.0f)); - AddBind(touchScreenKey, new sBind(a, TURNTABLE_TABLE_RIGHT_RIGHT, BIND_AXIS, - TURNTABLE_TABLE_RIGHT_RIGHT, 1.0f)); - AddBind(touchScreenKey, new sBind(a, TURNTABLE_STICK_UP, BIND_AXIS, TURNTABLE_STICK_UP, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_TABLE_RIGHT_RIGHT, BIND_AXIS, + TURNTABLE_TABLE_RIGHT_RIGHT, 1.0f)); + AddBind(TOUCHSCREEN_KEY, + new sBind(a, TURNTABLE_STICK_UP, BIND_AXIS, TURNTABLE_STICK_UP, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_STICK_DOWN, BIND_AXIS, TURNTABLE_STICK_DOWN, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_STICK_LEFT, BIND_AXIS, TURNTABLE_STICK_LEFT, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_STICK_RIGHT, BIND_AXIS, TURNTABLE_STICK_RIGHT, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_EFFECT_DIAL, BIND_AXIS, TURNTABLE_EFFECT_DIAL, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_CROSSFADE_LEFT, BIND_AXIS, TURNTABLE_CROSSFADE_LEFT, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, TURNTABLE_CROSSFADE_RIGHT, BIND_AXIS, TURNTABLE_CROSSFADE_RIGHT, 1.0f)); // Wiimote IMU - AddBind(touchScreenKey, new sBind(a, WIIMOTE_ACCEL_LEFT, BIND_AXIS, WIIMOTE_ACCEL_LEFT, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_ACCEL_LEFT, BIND_AXIS, WIIMOTE_ACCEL_LEFT, 1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_ACCEL_RIGHT, BIND_AXIS, WIIMOTE_ACCEL_RIGHT, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_ACCEL_FORWARD, BIND_AXIS, WIIMOTE_ACCEL_FORWARD, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_ACCEL_BACKWARD, BIND_AXIS, WIIMOTE_ACCEL_BACKWARD, 1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_ACCEL_UP, BIND_AXIS, WIIMOTE_ACCEL_UP, 1.0f)); - AddBind(touchScreenKey, new sBind(a, WIIMOTE_ACCEL_DOWN, BIND_AXIS, WIIMOTE_ACCEL_DOWN, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_ACCEL_UP, BIND_AXIS, WIIMOTE_ACCEL_UP, 1.0f)); + AddBind(TOUCHSCREEN_KEY, + new sBind(a, WIIMOTE_ACCEL_DOWN, BIND_AXIS, WIIMOTE_ACCEL_DOWN, -1.0f)); + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_GYRO_PITCH_UP, BIND_AXIS, WIIMOTE_GYRO_PITCH_UP, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_GYRO_PITCH_DOWN, BIND_AXIS, WIIMOTE_GYRO_PITCH_DOWN, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_GYRO_ROLL_LEFT, BIND_AXIS, WIIMOTE_GYRO_ROLL_LEFT, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_GYRO_ROLL_RIGHT, BIND_AXIS, WIIMOTE_GYRO_ROLL_RIGHT, -1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_GYRO_YAW_LEFT, BIND_AXIS, WIIMOTE_GYRO_YAW_LEFT, 1.0f)); - AddBind(touchScreenKey, + AddBind(TOUCHSCREEN_KEY, new sBind(a, WIIMOTE_GYRO_YAW_RIGHT, BIND_AXIS, WIIMOTE_GYRO_YAW_RIGHT, -1.0f)); } // Init our controller bindings IniFile ini; ini.Load(File::GetUserPath(D_CONFIG_IDX) + std::string("Dolphin.ini"), true); - ini.Load(File::GetUserPath(D_GAMESETTINGS_IDX) + std::string(gameId + ".ini"), true); - for (u32 a = 0; a < configStrings.size(); ++a) + ini.Load(File::GetUserPath(D_GAMESETTINGS_IDX) + std::string(game_id + ".ini"), true); + for (u32 a = 0; a < CONFIG_STRINGS.size(); ++a) { - for (int padID = 0; padID < 8; ++padID) + for (int pad_id = 0; pad_id < 8; ++pad_id) { std::ostringstream config; - config << configStrings[a] << "_" << padID; + config << CONFIG_STRINGS[a] << "_" << pad_id; BindType type; int bindnum; char dev[128]; @@ -645,29 +651,29 @@ void Init(const std::string& gameId) } if (hasbind) AddBind(std::string(dev), - new sBind(padID, configTypes[a], type, bindnum, modifier == '-' ? -1.0f : 1.0f)); + new sBind(pad_id, CONFIG_TYPES[a], type, bindnum, modifier == '-' ? -1.0f : 1.0f)); } } } -bool GetButtonPressed(int padID, ButtonType button) +bool GetButtonPressed(int pad_id, ButtonType button) { - bool pressed = m_controllers[touchScreenKey]->ButtonValue(padID, button); + bool pressed = m_controllers[TOUCHSCREEN_KEY]->ButtonValue(pad_id, button); for (const auto& ctrl : m_controllers) - pressed |= ctrl.second->ButtonValue(padID, button); + pressed |= ctrl.second->ButtonValue(pad_id, button); return pressed; } -float GetAxisValue(int padID, ButtonType axis) +float GetAxisValue(int pad_id, ButtonType axis) { - float value = m_controllers[touchScreenKey]->AxisValue(padID, axis); + float value = m_controllers[TOUCHSCREEN_KEY]->AxisValue(pad_id, axis); if (value == 0.0f) { for (const auto& ctrl : m_controllers) { - value = ctrl.second->AxisValue(padID, axis); + value = ctrl.second->AxisValue(pad_id, axis); if (value != 0.0f) return value; } @@ -701,14 +707,14 @@ void Shutdown() bool InputDevice::PressEvent(int button, int action) { bool handled = false; - for (const auto& binding : _inputbinds) + for (const auto& binding : m_input_binds) { - if (binding.second->_bind == button) + if (binding.second->m_bind == button) { - if (binding.second->_bindtype == BIND_BUTTON) - _buttons[binding.second->_buttontype] = action == BUTTON_PRESSED ? true : false; + if (binding.second->m_bind_type == BIND_BUTTON) + m_buttons[binding.second->m_button_type] = action == BUTTON_PRESSED ? true : false; else - _axises[binding.second->_buttontype] = action == BUTTON_PRESSED ? 1.0f : 0.0f; + m_axises[binding.second->m_button_type] = action == BUTTON_PRESSED ? 1.0f : 0.0f; handled = true; } } @@ -717,39 +723,39 @@ bool InputDevice::PressEvent(int button, int action) void InputDevice::AxisEvent(int axis, float value) { - for (const auto& binding : _inputbinds) + for (const auto& binding : m_input_binds) { - if (binding.second->_bind == axis) + if (binding.second->m_bind == axis) { - if (binding.second->_bindtype == BIND_AXIS) - _axises[binding.second->_buttontype] = value; + if (binding.second->m_bind_type == BIND_AXIS) + m_axises[binding.second->m_button_type] = value; else - _buttons[binding.second->_buttontype] = value > 0.5f ? true : false; + m_buttons[binding.second->m_button_type] = value > 0.5f ? true : false; } } } -bool InputDevice::ButtonValue(int padID, ButtonType button) +bool InputDevice::ButtonValue(int pad_id, ButtonType button) { - const auto& binding = _inputbinds.find(std::make_pair(padID, button)); - if (binding == _inputbinds.end()) + const auto& binding = m_input_binds.find(std::make_pair(pad_id, button)); + if (binding == m_input_binds.end()) return false; - if (binding->second->_bindtype == BIND_BUTTON) - return _buttons[binding->second->_buttontype]; + if (binding->second->m_bind_type == BIND_BUTTON) + return m_buttons[binding->second->m_button_type]; else - return (_axises[binding->second->_buttontype] * binding->second->_neg) > 0.5f; + return (m_axises[binding->second->m_button_type] * binding->second->m_neg) > 0.5f; } -float InputDevice::AxisValue(int padID, ButtonType axis) +float InputDevice::AxisValue(int pad_id, ButtonType axis) { - const auto& binding = _inputbinds.find(std::make_pair(padID, axis)); - if (binding == _inputbinds.end()) + const auto& binding = m_input_binds.find(std::make_pair(pad_id, axis)); + if (binding == m_input_binds.end()) return 0.0f; - if (binding->second->_bindtype == BIND_AXIS) - return _axises[binding->second->_buttontype] * binding->second->_neg; + if (binding->second->m_bind_type == BIND_AXIS) + return m_axises[binding->second->m_button_type] * binding->second->m_neg; else - return _buttons[binding->second->_buttontype] == BUTTON_PRESSED ? 1.0f : 0.0f; + return m_buttons[binding->second->m_button_type] == BUTTON_PRESSED ? 1.0f : 0.0f; } } // namespace ButtonManager diff --git a/Source/Android/jni/ButtonManager.h b/Source/Core/InputCommon/ControllerInterface/Touch/ButtonManager.h similarity index 86% rename from Source/Android/jni/ButtonManager.h rename to Source/Core/InputCommon/ControllerInterface/Touch/ButtonManager.h index 71722c54d6..5d6a19ef78 100644 --- a/Source/Android/jni/ButtonManager.h +++ b/Source/Core/InputCommon/ControllerInterface/Touch/ButtonManager.h @@ -227,13 +227,14 @@ public: struct sBind { - const int _padID; - const ButtonType _buttontype; - const BindType _bindtype; - const int _bind; - const float _neg; - sBind(int padID, ButtonType buttontype, BindType bindtype, int bind, float neg) - : _padID(padID), _buttontype(buttontype), _bindtype(bindtype), _bind(bind), _neg(neg) + const int m_pad_id; + const ButtonType m_button_type; + const BindType m_bind_type; + const int m_bind; + const float m_neg; + sBind(int pad_id, ButtonType button_type, BindType bind_type, int bind, float neg) + : m_pad_id(pad_id), m_button_type(button_type), m_bind_type(bind_type), m_bind(bind), + m_neg(neg) { } }; @@ -241,31 +242,34 @@ struct sBind class InputDevice { private: - const std::string _dev; - std::map _buttons; - std::map _axises; + const std::string m_dev; + std::map m_buttons; + std::map m_axises; - // Key is padID and ButtonType - std::map, sBind*> _inputbinds; + // Key is pad_id and ButtonType + std::map, sBind*> m_input_binds; public: - InputDevice(std::string dev) : _dev(dev) {} + InputDevice(std::string dev) : m_dev(dev) {} ~InputDevice() { - for (const auto& bind : _inputbinds) + for (const auto& bind : m_input_binds) delete bind.second; - _inputbinds.clear(); + m_input_binds.clear(); + } + void AddBind(sBind* bind) + { + m_input_binds[std::make_pair(bind->m_pad_id, bind->m_button_type)] = bind; } - void AddBind(sBind* bind) { _inputbinds[std::make_pair(bind->_padID, bind->_buttontype)] = bind; } bool PressEvent(int button, int action); void AxisEvent(int axis, float value); - bool ButtonValue(int padID, ButtonType button); - float AxisValue(int padID, ButtonType axis); + bool ButtonValue(int pad_id, ButtonType button); + float AxisValue(int pad_id, ButtonType axis); }; void Init(const std::string&); -bool GetButtonPressed(int padID, ButtonType button); -float GetAxisValue(int padID, ButtonType axis); +bool GetButtonPressed(int pad_id, ButtonType button); +float GetAxisValue(int pad_id, ButtonType axis); bool GamepadEvent(const std::string& dev, int button, int action); void GamepadAxisEvent(const std::string& dev, int axis, float value); void Shutdown(); diff --git a/Source/Core/InputCommon/ControllerInterface/Touch/Touchscreen.cpp b/Source/Core/InputCommon/ControllerInterface/Touch/Touchscreen.cpp new file mode 100644 index 0000000000..5a885db375 --- /dev/null +++ b/Source/Core/InputCommon/ControllerInterface/Touch/Touchscreen.cpp @@ -0,0 +1,264 @@ +// Copyright 2013 Dolphin Emulator Project +// Licensed under GPLv2+ +// Refer to the license.txt file included. + +#ifdef ANDROID +#include +#endif + +#include +#include +#include "InputCommon/ControllerInterface/ControllerInterface.h" +#include "InputCommon/ControllerInterface/Touch/Touchscreen.h" + +namespace ciface::Touch +{ +// Touchscreens and stuff +std::string Touchscreen::GetName() const +{ + return "Touchscreen"; +} + +std::string Touchscreen::GetSource() const +{ + return "Android"; +} + +Touchscreen::Touchscreen(int pad_id, bool accelerometer_enabled, bool gyroscope_enabled) + : m_pad_id(pad_id) +{ + // GC + AddInput(new Button(m_pad_id, ButtonManager::BUTTON_A)); + AddInput(new Button(m_pad_id, ButtonManager::BUTTON_B)); + AddInput(new Button(m_pad_id, ButtonManager::BUTTON_START)); + AddInput(new Button(m_pad_id, ButtonManager::BUTTON_X)); + AddInput(new Button(m_pad_id, ButtonManager::BUTTON_Y)); + AddInput(new Button(m_pad_id, ButtonManager::BUTTON_Z)); + AddInput(new Button(m_pad_id, ButtonManager::BUTTON_UP)); + AddInput(new Button(m_pad_id, ButtonManager::BUTTON_DOWN)); + AddInput(new Button(m_pad_id, ButtonManager::BUTTON_LEFT)); + AddInput(new Button(m_pad_id, ButtonManager::BUTTON_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::STICK_MAIN_LEFT)); + AddInput(new Axis(m_pad_id, ButtonManager::STICK_MAIN_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::STICK_MAIN_UP)); + AddInput(new Axis(m_pad_id, ButtonManager::STICK_MAIN_DOWN)); + AddInput(new Axis(m_pad_id, ButtonManager::STICK_C_LEFT)); + AddInput(new Axis(m_pad_id, ButtonManager::STICK_C_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::STICK_C_UP)); + AddInput(new Axis(m_pad_id, ButtonManager::STICK_C_DOWN)); + AddInput(new Axis(m_pad_id, ButtonManager::TRIGGER_L)); + AddInput(new Axis(m_pad_id, ButtonManager::TRIGGER_R)); + + // Wiimote + AddInput(new Button(m_pad_id, ButtonManager::WIIMOTE_BUTTON_A)); + AddInput(new Button(m_pad_id, ButtonManager::WIIMOTE_BUTTON_B)); + AddInput(new Button(m_pad_id, ButtonManager::WIIMOTE_BUTTON_MINUS)); + AddInput(new Button(m_pad_id, ButtonManager::WIIMOTE_BUTTON_PLUS)); + AddInput(new Button(m_pad_id, ButtonManager::WIIMOTE_BUTTON_HOME)); + AddInput(new Button(m_pad_id, ButtonManager::WIIMOTE_BUTTON_1)); + AddInput(new Button(m_pad_id, ButtonManager::WIIMOTE_BUTTON_2)); + AddInput(new Button(m_pad_id, ButtonManager::WIIMOTE_UP)); + AddInput(new Button(m_pad_id, ButtonManager::WIIMOTE_DOWN)); + AddInput(new Button(m_pad_id, ButtonManager::WIIMOTE_LEFT)); + AddInput(new Button(m_pad_id, ButtonManager::WIIMOTE_RIGHT)); + AddInput(new Button(m_pad_id, ButtonManager::WIIMOTE_IR_HIDE)); + AddInput(new Button(m_pad_id, ButtonManager::WIIMOTE_TILT_MODIFIER)); + AddInput(new Button(m_pad_id, ButtonManager::WIIMOTE_SHAKE_X)); + AddInput(new Button(m_pad_id, ButtonManager::WIIMOTE_SHAKE_Y)); + AddInput(new Button(m_pad_id, ButtonManager::WIIMOTE_SHAKE_Z)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_IR_UP)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_IR_DOWN)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_IR_LEFT)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_IR_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_IR_FORWARD)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_IR_BACKWARD)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_SWING_UP)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_SWING_DOWN)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_SWING_LEFT)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_SWING_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_SWING_FORWARD)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_SWING_BACKWARD)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_TILT_LEFT)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_TILT_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_TILT_FORWARD)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_TILT_BACKWARD)); + + // Wii ext: Nunchuk + AddInput(new Button(m_pad_id, ButtonManager::NUNCHUK_BUTTON_C)); + AddInput(new Button(m_pad_id, ButtonManager::NUNCHUK_BUTTON_Z)); + AddInput(new Button(m_pad_id, ButtonManager::NUNCHUK_TILT_MODIFIER)); + AddInput(new Button(m_pad_id, ButtonManager::NUNCHUK_SHAKE_X)); + AddInput(new Button(m_pad_id, ButtonManager::NUNCHUK_SHAKE_Y)); + AddInput(new Button(m_pad_id, ButtonManager::NUNCHUK_SHAKE_Z)); + AddInput(new Axis(m_pad_id, ButtonManager::NUNCHUK_STICK_LEFT)); + AddInput(new Axis(m_pad_id, ButtonManager::NUNCHUK_STICK_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::NUNCHUK_STICK_UP)); + AddInput(new Axis(m_pad_id, ButtonManager::NUNCHUK_STICK_DOWN)); + AddInput(new Axis(m_pad_id, ButtonManager::NUNCHUK_SWING_LEFT)); + AddInput(new Axis(m_pad_id, ButtonManager::NUNCHUK_SWING_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::NUNCHUK_SWING_UP)); + AddInput(new Axis(m_pad_id, ButtonManager::NUNCHUK_SWING_DOWN)); + AddInput(new Axis(m_pad_id, ButtonManager::NUNCHUK_SWING_FORWARD)); + AddInput(new Axis(m_pad_id, ButtonManager::NUNCHUK_SWING_BACKWARD)); + AddInput(new Axis(m_pad_id, ButtonManager::NUNCHUK_TILT_LEFT)); + AddInput(new Axis(m_pad_id, ButtonManager::NUNCHUK_TILT_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::NUNCHUK_TILT_FORWARD)); + AddInput(new Axis(m_pad_id, ButtonManager::NUNCHUK_TILT_BACKWARD)); + + // Wii ext: Classic + AddInput(new Button(m_pad_id, ButtonManager::CLASSIC_BUTTON_A)); + AddInput(new Button(m_pad_id, ButtonManager::CLASSIC_BUTTON_B)); + AddInput(new Button(m_pad_id, ButtonManager::CLASSIC_BUTTON_X)); + AddInput(new Button(m_pad_id, ButtonManager::CLASSIC_BUTTON_Y)); + AddInput(new Button(m_pad_id, ButtonManager::CLASSIC_BUTTON_MINUS)); + AddInput(new Button(m_pad_id, ButtonManager::CLASSIC_BUTTON_PLUS)); + AddInput(new Button(m_pad_id, ButtonManager::CLASSIC_BUTTON_HOME)); + AddInput(new Button(m_pad_id, ButtonManager::CLASSIC_BUTTON_ZL)); + AddInput(new Button(m_pad_id, ButtonManager::CLASSIC_BUTTON_ZR)); + AddInput(new Button(m_pad_id, ButtonManager::CLASSIC_DPAD_UP)); + AddInput(new Button(m_pad_id, ButtonManager::CLASSIC_DPAD_DOWN)); + AddInput(new Button(m_pad_id, ButtonManager::CLASSIC_DPAD_LEFT)); + AddInput(new Button(m_pad_id, ButtonManager::CLASSIC_DPAD_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::CLASSIC_STICK_LEFT_LEFT)); + AddInput(new Axis(m_pad_id, ButtonManager::CLASSIC_STICK_LEFT_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::CLASSIC_STICK_LEFT_UP)); + AddInput(new Axis(m_pad_id, ButtonManager::CLASSIC_STICK_LEFT_DOWN)); + AddInput(new Axis(m_pad_id, ButtonManager::CLASSIC_STICK_RIGHT_LEFT)); + AddInput(new Axis(m_pad_id, ButtonManager::CLASSIC_STICK_RIGHT_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::CLASSIC_STICK_RIGHT_UP)); + AddInput(new Axis(m_pad_id, ButtonManager::CLASSIC_STICK_RIGHT_DOWN)); + AddInput(new Axis(m_pad_id, ButtonManager::CLASSIC_TRIGGER_L)); + AddInput(new Axis(m_pad_id, ButtonManager::CLASSIC_TRIGGER_R)); + + // Wii-ext: Guitar + AddInput(new Button(m_pad_id, ButtonManager::GUITAR_BUTTON_MINUS)); + AddInput(new Button(m_pad_id, ButtonManager::GUITAR_BUTTON_PLUS)); + AddInput(new Button(m_pad_id, ButtonManager::GUITAR_FRET_GREEN)); + AddInput(new Button(m_pad_id, ButtonManager::GUITAR_FRET_RED)); + AddInput(new Button(m_pad_id, ButtonManager::GUITAR_FRET_YELLOW)); + AddInput(new Button(m_pad_id, ButtonManager::GUITAR_FRET_BLUE)); + AddInput(new Button(m_pad_id, ButtonManager::GUITAR_FRET_ORANGE)); + AddInput(new Button(m_pad_id, ButtonManager::GUITAR_STRUM_UP)); + AddInput(new Button(m_pad_id, ButtonManager::GUITAR_STRUM_DOWN)); + AddInput(new Axis(m_pad_id, ButtonManager::GUITAR_STICK_LEFT)); + AddInput(new Axis(m_pad_id, ButtonManager::GUITAR_STICK_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::GUITAR_STICK_UP)); + AddInput(new Axis(m_pad_id, ButtonManager::GUITAR_STICK_DOWN)); + AddInput(new Axis(m_pad_id, ButtonManager::GUITAR_WHAMMY_BAR)); + + // Wii-ext: Drums + AddInput(new Button(m_pad_id, ButtonManager::DRUMS_BUTTON_MINUS)); + AddInput(new Button(m_pad_id, ButtonManager::DRUMS_BUTTON_PLUS)); + AddInput(new Button(m_pad_id, ButtonManager::DRUMS_PAD_RED)); + AddInput(new Button(m_pad_id, ButtonManager::DRUMS_PAD_YELLOW)); + AddInput(new Button(m_pad_id, ButtonManager::DRUMS_PAD_BLUE)); + AddInput(new Button(m_pad_id, ButtonManager::DRUMS_PAD_GREEN)); + AddInput(new Button(m_pad_id, ButtonManager::DRUMS_PAD_ORANGE)); + AddInput(new Button(m_pad_id, ButtonManager::DRUMS_PAD_BASS)); + AddInput(new Axis(m_pad_id, ButtonManager::DRUMS_STICK_LEFT)); + AddInput(new Axis(m_pad_id, ButtonManager::DRUMS_STICK_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::DRUMS_STICK_UP)); + AddInput(new Axis(m_pad_id, ButtonManager::DRUMS_STICK_DOWN)); + + // Wii-ext: Turntable + AddInput(new Button(m_pad_id, ButtonManager::TURNTABLE_BUTTON_GREEN_LEFT)); + AddInput(new Button(m_pad_id, ButtonManager::TURNTABLE_BUTTON_RED_LEFT)); + AddInput(new Button(m_pad_id, ButtonManager::TURNTABLE_BUTTON_BLUE_LEFT)); + AddInput(new Button(m_pad_id, ButtonManager::TURNTABLE_BUTTON_GREEN_RIGHT)); + AddInput(new Button(m_pad_id, ButtonManager::TURNTABLE_BUTTON_RED_RIGHT)); + AddInput(new Button(m_pad_id, ButtonManager::TURNTABLE_BUTTON_BLUE_RIGHT)); + AddInput(new Button(m_pad_id, ButtonManager::TURNTABLE_BUTTON_MINUS)); + AddInput(new Button(m_pad_id, ButtonManager::TURNTABLE_BUTTON_PLUS)); + AddInput(new Button(m_pad_id, ButtonManager::TURNTABLE_BUTTON_HOME)); + AddInput(new Button(m_pad_id, ButtonManager::TURNTABLE_BUTTON_EUPHORIA)); + AddInput(new Axis(m_pad_id, ButtonManager::TURNTABLE_TABLE_LEFT_LEFT)); + AddInput(new Axis(m_pad_id, ButtonManager::TURNTABLE_TABLE_LEFT_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::TURNTABLE_TABLE_RIGHT_LEFT)); + AddInput(new Axis(m_pad_id, ButtonManager::TURNTABLE_TABLE_RIGHT_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::TURNTABLE_STICK_LEFT)); + AddInput(new Axis(m_pad_id, ButtonManager::TURNTABLE_STICK_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::TURNTABLE_STICK_UP)); + AddInput(new Axis(m_pad_id, ButtonManager::TURNTABLE_STICK_DOWN)); + AddInput(new Axis(m_pad_id, ButtonManager::TURNTABLE_CROSSFADE_LEFT)); + AddInput(new Axis(m_pad_id, ButtonManager::TURNTABLE_CROSSFADE_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::TURNTABLE_EFFECT_DIAL)); + + // Wiimote IMU + // Only add inputs if we actually can receive data from the relevant sensor. + // Whether inputs exist affects what WiimoteEmu gets when calling ControlReference::BoundCount. + if (accelerometer_enabled) + { + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_ACCEL_LEFT)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_ACCEL_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_ACCEL_FORWARD)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_ACCEL_BACKWARD)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_ACCEL_UP)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_ACCEL_DOWN)); + } + if (gyroscope_enabled) + { + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_GYRO_PITCH_UP)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_GYRO_PITCH_DOWN)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_GYRO_ROLL_LEFT)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_GYRO_ROLL_RIGHT)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_GYRO_YAW_LEFT)); + AddInput(new Axis(m_pad_id, ButtonManager::WIIMOTE_GYRO_YAW_RIGHT)); + } + + // Rumble + AddOutput(new Motor(m_pad_id, ButtonManager::RUMBLE)); +} +// Buttons and stuff + +std::string Touchscreen::Button::GetName() const +{ + std::ostringstream ss; + ss << "Button " << static_cast(m_index); + return ss.str(); +} + +ControlState Touchscreen::Button::GetState() const +{ + return ButtonManager::GetButtonPressed(m_pad_id, m_index); +} + +std::string Touchscreen::Axis::GetName() const +{ + std::ostringstream ss; + ss << "Axis " << static_cast(m_index); + return ss.str(); +} + +ControlState Touchscreen::Axis::GetState() const +{ + return ButtonManager::GetAxisValue(m_pad_id, m_index) * m_neg; +} + +Touchscreen::Motor::~Motor() +{ +} + +std::string Touchscreen::Motor::GetName() const +{ + std::ostringstream ss; + ss << "Rumble " << static_cast(m_index); + return ss.str(); +} + +void Touchscreen::Motor::SetState(ControlState state) +{ + if (state > 0) + { + std::thread(Rumble, m_pad_id, state).detach(); + } +} + +void Touchscreen::Motor::Rumble(int pad_id, double state) +{ +#ifdef ANDROID + JNIEnv* env = IDCache::GetEnvForThread(); + env->CallStaticVoidMethod(IDCache::GetNativeLibraryClass(), IDCache::GetDoRumble(), pad_id, + state); +#endif +} +} // namespace ciface::Touch diff --git a/Source/Core/InputCommon/ControllerInterface/Touch/Touchscreen.h b/Source/Core/InputCommon/ControllerInterface/Touch/Touchscreen.h new file mode 100644 index 0000000000..26091c4b38 --- /dev/null +++ b/Source/Core/InputCommon/ControllerInterface/Touch/Touchscreen.h @@ -0,0 +1,65 @@ +// Copyright 2008 Dolphin Emulator Project +// Licensed under GPLv2+ +// Refer to the license.txt file included. + +#pragma once + +#include "InputCommon/ControllerInterface/ControllerInterface.h" +#include "InputCommon/ControllerInterface/Touch/ButtonManager.h" + +namespace ciface::Touch +{ +class Touchscreen : public Core::Device +{ +private: + class Button : public Input + { + public: + std::string GetName() const; + Button(int pad_id, ButtonManager::ButtonType index) : m_pad_id(pad_id), m_index(index) {} + ControlState GetState() const; + + private: + const int m_pad_id; + const ButtonManager::ButtonType m_index; + }; + class Axis : public Input + { + public: + std::string GetName() const; + bool IsDetectable() override { return false; } + Axis(int pad_id, ButtonManager::ButtonType index, float neg = 1.0f) + : m_pad_id(pad_id), m_index(index), m_neg(neg) + { + } + ControlState GetState() const; + + private: + const int m_pad_id; + const ButtonManager::ButtonType m_index; + const float m_neg; + }; + class Motor : public Core::Device::Output + { + public: + Motor(int pad_id, ButtonManager::ButtonType index) : m_pad_id(pad_id), m_index(index) {} + ~Motor(); + std::string GetName() const override; + void SetState(ControlState state) override; + + private: + const int m_pad_id; + const ButtonManager::ButtonType m_index; + static void Rumble(int pad_id, double state); + }; + +public: + Touchscreen(int pad_id, bool accelerometer_enabled, bool gyroscope_enabled); + ~Touchscreen() {} + std::string GetName() const; + std::string GetSource() const; + +private: + const int m_pad_id; +}; +} // namespace ciface::Touch