WiiTASInputWindow.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. // Copyright 2018 Dolphin Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include "DolphinQt/TAS/TASInputWindow.h"
  5. #include "Core/HW/WiimoteEmu/ExtensionPort.h"
  6. class QGroupBox;
  7. class QHideEvent;
  8. class QShowEvent;
  9. class QSpinBox;
  10. class TASCheckBox;
  11. class TASSpinBox;
  12. namespace WiimoteEmu
  13. {
  14. class Extension;
  15. class Wiimote;
  16. } // namespace WiimoteEmu
  17. namespace ControllerEmu
  18. {
  19. class Attachments;
  20. }
  21. class WiiTASInputWindow : public TASInputWindow
  22. {
  23. Q_OBJECT
  24. public:
  25. explicit WiiTASInputWindow(QWidget* parent, int num);
  26. void hideEvent(QHideEvent* event) override;
  27. void showEvent(QShowEvent* event) override;
  28. void UpdateExtension(int extension);
  29. void UpdateMotionPlus(bool attached);
  30. private:
  31. WiimoteEmu::Wiimote* GetWiimote();
  32. ControllerEmu::Attachments* GetAttachments();
  33. WiimoteEmu::Extension* GetExtension();
  34. void LoadExtensionAndMotionPlus();
  35. void UpdateControlVisibility();
  36. void UpdateInputOverrideFunction();
  37. WiimoteEmu::ExtensionNumber m_active_extension;
  38. int m_attachment_callback_id = -1;
  39. bool m_is_motion_plus_attached;
  40. int m_motion_plus_callback_id = -1;
  41. int m_num;
  42. InputOverrider m_wiimote_overrider;
  43. InputOverrider m_nunchuk_overrider;
  44. InputOverrider m_classic_overrider;
  45. TASCheckBox* m_a_button;
  46. TASCheckBox* m_b_button;
  47. TASCheckBox* m_1_button;
  48. TASCheckBox* m_2_button;
  49. TASCheckBox* m_plus_button;
  50. TASCheckBox* m_minus_button;
  51. TASCheckBox* m_home_button;
  52. TASCheckBox* m_left_button;
  53. TASCheckBox* m_up_button;
  54. TASCheckBox* m_down_button;
  55. TASCheckBox* m_right_button;
  56. TASCheckBox* m_c_button;
  57. TASCheckBox* m_z_button;
  58. TASCheckBox* m_classic_a_button;
  59. TASCheckBox* m_classic_b_button;
  60. TASCheckBox* m_classic_x_button;
  61. TASCheckBox* m_classic_y_button;
  62. TASCheckBox* m_classic_plus_button;
  63. TASCheckBox* m_classic_minus_button;
  64. TASCheckBox* m_classic_l_button;
  65. TASCheckBox* m_classic_r_button;
  66. TASCheckBox* m_classic_zl_button;
  67. TASCheckBox* m_classic_zr_button;
  68. TASCheckBox* m_classic_home_button;
  69. TASCheckBox* m_classic_left_button;
  70. TASCheckBox* m_classic_up_button;
  71. TASCheckBox* m_classic_down_button;
  72. TASCheckBox* m_classic_right_button;
  73. TASSpinBox* m_ir_x_value;
  74. TASSpinBox* m_ir_y_value;
  75. QGroupBox* m_remote_accelerometer_box;
  76. QGroupBox* m_remote_gyroscope_box;
  77. QGroupBox* m_nunchuk_accelerometer_box;
  78. QGroupBox* m_ir_box;
  79. QGroupBox* m_nunchuk_stick_box;
  80. QGroupBox* m_classic_left_stick_box;
  81. QGroupBox* m_classic_right_stick_box;
  82. QGroupBox* m_remote_buttons_box;
  83. QGroupBox* m_nunchuk_buttons_box;
  84. QGroupBox* m_classic_buttons_box;
  85. QGroupBox* m_triggers_box;
  86. };