mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	Merge pull request #4537 from RicBent/master
Added Debug/GPIO14 Buttons
This commit is contained in:
		
						commit
						941d241e7d
					
				
					 9 changed files with 67 additions and 11 deletions
				
			
		|  | @ -47,9 +47,9 @@ bool Config::LoadINI(const std::string& default_contents, bool retry) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static const std::array<int, Settings::NativeButton::NumButtons> default_buttons = { | static const std::array<int, Settings::NativeButton::NumButtons> default_buttons = { | ||||||
|     SDL_SCANCODE_A, SDL_SCANCODE_S, SDL_SCANCODE_Z, SDL_SCANCODE_X, SDL_SCANCODE_T, |     SDL_SCANCODE_A, SDL_SCANCODE_S, SDL_SCANCODE_Z, SDL_SCANCODE_X, SDL_SCANCODE_T, SDL_SCANCODE_G, | ||||||
|     SDL_SCANCODE_G, SDL_SCANCODE_F, SDL_SCANCODE_H, SDL_SCANCODE_Q, SDL_SCANCODE_W, |     SDL_SCANCODE_F, SDL_SCANCODE_H, SDL_SCANCODE_Q, SDL_SCANCODE_W, SDL_SCANCODE_M, SDL_SCANCODE_N, | ||||||
|     SDL_SCANCODE_M, SDL_SCANCODE_N, SDL_SCANCODE_1, SDL_SCANCODE_2, SDL_SCANCODE_B, |     SDL_SCANCODE_O, SDL_SCANCODE_P, SDL_SCANCODE_1, SDL_SCANCODE_2, SDL_SCANCODE_B, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| static const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> default_analogs{{ | static const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> default_analogs{{ | ||||||
|  |  | ||||||
|  | @ -38,6 +38,8 @@ button_l= | ||||||
| button_r= | button_r= | ||||||
| button_start= | button_start= | ||||||
| button_select= | button_select= | ||||||
|  | button_debug= | ||||||
|  | button_gpio14= | ||||||
| button_zl= | button_zl= | ||||||
| button_zr= | button_zr= | ||||||
| button_home= | button_home= | ||||||
|  |  | ||||||
|  | @ -27,8 +27,9 @@ Config::~Config() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const std::array<int, Settings::NativeButton::NumButtons> Config::default_buttons = { | const std::array<int, Settings::NativeButton::NumButtons> Config::default_buttons = { | ||||||
|     Qt::Key_A, Qt::Key_S, Qt::Key_Z, Qt::Key_X, Qt::Key_T, Qt::Key_G, Qt::Key_F, Qt::Key_H, |     Qt::Key_A, Qt::Key_S, Qt::Key_Z, Qt::Key_X, Qt::Key_T, Qt::Key_G, | ||||||
|     Qt::Key_Q, Qt::Key_W, Qt::Key_M, Qt::Key_N, Qt::Key_1, Qt::Key_2, Qt::Key_B, |     Qt::Key_F, Qt::Key_H, Qt::Key_Q, Qt::Key_W, Qt::Key_M, Qt::Key_N, | ||||||
|  |     Qt::Key_O, Qt::Key_P, Qt::Key_1, Qt::Key_2, Qt::Key_B, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> Config::default_analogs{{ | const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> Config::default_analogs{{ | ||||||
|  |  | ||||||
|  | @ -100,9 +100,11 @@ ConfigureInput::ConfigureInput(QWidget* parent) | ||||||
|     setFocusPolicy(Qt::ClickFocus); |     setFocusPolicy(Qt::ClickFocus); | ||||||
| 
 | 
 | ||||||
|     button_map = { |     button_map = { | ||||||
|         ui->buttonA,        ui->buttonB,        ui->buttonX,         ui->buttonY,  ui->buttonDpadUp, |         ui->buttonA,      ui->buttonB,        ui->buttonX,        ui->buttonY, | ||||||
|         ui->buttonDpadDown, ui->buttonDpadLeft, ui->buttonDpadRight, ui->buttonL,  ui->buttonR, |         ui->buttonDpadUp, ui->buttonDpadDown, ui->buttonDpadLeft, ui->buttonDpadRight, | ||||||
|         ui->buttonStart,    ui->buttonSelect,   ui->buttonZL,        ui->buttonZR, ui->buttonHome, |         ui->buttonL,      ui->buttonR,        ui->buttonStart,    ui->buttonSelect, | ||||||
|  |         ui->buttonDebug,  ui->buttonGpio14,   ui->buttonZL,       ui->buttonZR, | ||||||
|  |         ui->buttonHome, | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     analog_map_buttons = {{ |     analog_map_buttons = {{ | ||||||
|  | @ -273,7 +275,8 @@ void ConfigureInput::ClearAll() { | ||||||
| 
 | 
 | ||||||
| void ConfigureInput::updateButtonLabels() { | void ConfigureInput::updateButtonLabels() { | ||||||
|     for (int button = 0; button < Settings::NativeButton::NumButtons; button++) { |     for (int button = 0; button < Settings::NativeButton::NumButtons; button++) { | ||||||
|         button_map[button]->setText(ButtonToText(buttons_param[button])); |         if (button_map[button]) | ||||||
|  |             button_map[button]->setText(ButtonToText(buttons_param[button])); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     for (int analog_id = 0; analog_id < Settings::NativeAnalog::NumAnalogs; analog_id++) { |     for (int analog_id = 0; analog_id < Settings::NativeAnalog::NumAnalogs; analog_id++) { | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
|     <x>0</x> |     <x>0</x> | ||||||
|     <y>0</y> |     <y>0</y> | ||||||
|     <width>370</width> |     <width>370</width> | ||||||
|     <height>534</height> |     <height>595</height> | ||||||
|    </rect> |    </rect> | ||||||
|   </property> |   </property> | ||||||
|   <property name="windowTitle"> |   <property name="windowTitle"> | ||||||
|  | @ -549,6 +549,42 @@ | ||||||
|           </item> |           </item> | ||||||
|          </layout> |          </layout> | ||||||
|         </item> |         </item> | ||||||
|  |         <item row="2" column="1"> | ||||||
|  |          <layout class="QVBoxLayout" name="verticalLayout_33"> | ||||||
|  |           <item> | ||||||
|  |            <widget class="QLabel" name="label_41"> | ||||||
|  |             <property name="text"> | ||||||
|  |              <string>GPIO14:</string> | ||||||
|  |             </property> | ||||||
|  |            </widget> | ||||||
|  |           </item> | ||||||
|  |           <item> | ||||||
|  |            <widget class="QPushButton" name="buttonGpio14"> | ||||||
|  |             <property name="text"> | ||||||
|  |              <string/> | ||||||
|  |             </property> | ||||||
|  |            </widget> | ||||||
|  |           </item> | ||||||
|  |          </layout> | ||||||
|  |         </item> | ||||||
|  |         <item row="2" column="0"> | ||||||
|  |          <layout class="QVBoxLayout" name="verticalLayout_32"> | ||||||
|  |           <item> | ||||||
|  |            <widget class="QLabel" name="label_40"> | ||||||
|  |             <property name="text"> | ||||||
|  |              <string>Debug:</string> | ||||||
|  |             </property> | ||||||
|  |            </widget> | ||||||
|  |           </item> | ||||||
|  |           <item> | ||||||
|  |            <widget class="QPushButton" name="buttonDebug"> | ||||||
|  |             <property name="text"> | ||||||
|  |              <string/> | ||||||
|  |             </property> | ||||||
|  |            </widget> | ||||||
|  |           </item> | ||||||
|  |          </layout> | ||||||
|  |         </item> | ||||||
|        </layout> |        </layout> | ||||||
|       </widget> |       </widget> | ||||||
|      </item> |      </item> | ||||||
|  |  | ||||||
|  | @ -87,6 +87,8 @@ void Module::UpdatePadCallback(u64 userdata, s64 cycles_late) { | ||||||
|     state.r.Assign(buttons[R - BUTTON_HID_BEGIN]->GetStatus()); |     state.r.Assign(buttons[R - BUTTON_HID_BEGIN]->GetStatus()); | ||||||
|     state.start.Assign(buttons[Start - BUTTON_HID_BEGIN]->GetStatus()); |     state.start.Assign(buttons[Start - BUTTON_HID_BEGIN]->GetStatus()); | ||||||
|     state.select.Assign(buttons[Select - BUTTON_HID_BEGIN]->GetStatus()); |     state.select.Assign(buttons[Select - BUTTON_HID_BEGIN]->GetStatus()); | ||||||
|  |     state.debug.Assign(buttons[Debug - BUTTON_HID_BEGIN]->GetStatus()); | ||||||
|  |     state.gpio14.Assign(buttons[Gpio14 - BUTTON_HID_BEGIN]->GetStatus()); | ||||||
| 
 | 
 | ||||||
|     // Get current circle pad position and update circle pad direction
 |     // Get current circle pad position and update circle pad direction
 | ||||||
|     float circle_pad_x_f, circle_pad_y_f; |     float circle_pad_x_f, circle_pad_y_f; | ||||||
|  |  | ||||||
|  | @ -52,6 +52,8 @@ struct PadState { | ||||||
|         BitField<9, 1, u32> l; |         BitField<9, 1, u32> l; | ||||||
|         BitField<10, 1, u32> x; |         BitField<10, 1, u32> x; | ||||||
|         BitField<11, 1, u32> y; |         BitField<11, 1, u32> y; | ||||||
|  |         BitField<12, 1, u32> debug; | ||||||
|  |         BitField<13, 1, u32> gpio14; | ||||||
| 
 | 
 | ||||||
|         BitField<28, 1, u32> circle_right; |         BitField<28, 1, u32> circle_right; | ||||||
|         BitField<29, 1, u32> circle_left; |         BitField<29, 1, u32> circle_left; | ||||||
|  |  | ||||||
|  | @ -57,7 +57,9 @@ struct ControllerState { | ||||||
|                 BitField<9, 1, u16_le> l; |                 BitField<9, 1, u16_le> l; | ||||||
|                 BitField<10, 1, u16_le> x; |                 BitField<10, 1, u16_le> x; | ||||||
|                 BitField<11, 1, u16_le> y; |                 BitField<11, 1, u16_le> y; | ||||||
|                 // Bits 12-15 are currently unused
 |                 BitField<12, 1, u16_le> debug; | ||||||
|  |                 BitField<13, 1, u16_le> gpio14; | ||||||
|  |                 // Bits 14-15 are currently unused
 | ||||||
|             }; |             }; | ||||||
|             s16_le circle_pad_x; |             s16_le circle_pad_x; | ||||||
|             s16_le circle_pad_y; |             s16_le circle_pad_y; | ||||||
|  | @ -161,6 +163,8 @@ void Movie::Play(Service::HID::PadState& pad_state, s16& circle_pad_x, s16& circ | ||||||
|     pad_state.l.Assign(s.pad_and_circle.l); |     pad_state.l.Assign(s.pad_and_circle.l); | ||||||
|     pad_state.x.Assign(s.pad_and_circle.x); |     pad_state.x.Assign(s.pad_and_circle.x); | ||||||
|     pad_state.y.Assign(s.pad_and_circle.y); |     pad_state.y.Assign(s.pad_and_circle.y); | ||||||
|  |     pad_state.debug.Assign(s.pad_and_circle.debug); | ||||||
|  |     pad_state.gpio14.Assign(s.pad_and_circle.gpio14); | ||||||
| 
 | 
 | ||||||
|     circle_pad_x = s.pad_and_circle.circle_pad_x; |     circle_pad_x = s.pad_and_circle.circle_pad_x; | ||||||
|     circle_pad_y = s.pad_and_circle.circle_pad_y; |     circle_pad_y = s.pad_and_circle.circle_pad_y; | ||||||
|  | @ -281,6 +285,8 @@ void Movie::Record(const Service::HID::PadState& pad_state, const s16& circle_pa | ||||||
|     s.pad_and_circle.l.Assign(static_cast<u16>(pad_state.l)); |     s.pad_and_circle.l.Assign(static_cast<u16>(pad_state.l)); | ||||||
|     s.pad_and_circle.x.Assign(static_cast<u16>(pad_state.x)); |     s.pad_and_circle.x.Assign(static_cast<u16>(pad_state.x)); | ||||||
|     s.pad_and_circle.y.Assign(static_cast<u16>(pad_state.y)); |     s.pad_and_circle.y.Assign(static_cast<u16>(pad_state.y)); | ||||||
|  |     s.pad_and_circle.debug.Assign(static_cast<u16>(pad_state.debug)); | ||||||
|  |     s.pad_and_circle.gpio14.Assign(static_cast<u16>(pad_state.gpio14)); | ||||||
| 
 | 
 | ||||||
|     s.pad_and_circle.circle_pad_x = circle_pad_x; |     s.pad_and_circle.circle_pad_x = circle_pad_x; | ||||||
|     s.pad_and_circle.circle_pad_y = circle_pad_y; |     s.pad_and_circle.circle_pad_y = circle_pad_y; | ||||||
|  |  | ||||||
|  | @ -38,6 +38,8 @@ enum Values { | ||||||
|     R, |     R, | ||||||
|     Start, |     Start, | ||||||
|     Select, |     Select, | ||||||
|  |     Debug, | ||||||
|  |     Gpio14, | ||||||
| 
 | 
 | ||||||
|     ZL, |     ZL, | ||||||
|     ZR, |     ZR, | ||||||
|  | @ -72,6 +74,8 @@ static const std::array<const char*, NumButtons> mapping = {{ | ||||||
|     "button_r", |     "button_r", | ||||||
|     "button_start", |     "button_start", | ||||||
|     "button_select", |     "button_select", | ||||||
|  |     "button_debug", | ||||||
|  |     "button_gpio14", | ||||||
|     "button_zl", |     "button_zl", | ||||||
|     "button_zr", |     "button_zr", | ||||||
|     "button_home", |     "button_home", | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue