mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	HID: Added additional variable comments and some code cleanups.
This commit is contained in:
		
							parent
							
								
									d61b26b79f
								
							
						
					
					
						commit
						85cbccb1d3
					
				
					 2 changed files with 29 additions and 20 deletions
				
			
		|  | @ -17,6 +17,8 @@ | ||||||
| namespace Service { | namespace Service { | ||||||
| namespace HID { | namespace HID { | ||||||
| 
 | 
 | ||||||
|  | static const int MAX_CIRCLEPAD_POS = 0x9C; ///< Max value for a circle pad position
 | ||||||
|  | 
 | ||||||
| Kernel::SharedPtr<Kernel::SharedMemory> g_shared_mem = nullptr; | Kernel::SharedPtr<Kernel::SharedMemory> g_shared_mem = nullptr; | ||||||
| 
 | 
 | ||||||
| Kernel::SharedPtr<Kernel::Event> g_event_pad_or_touch_1; | Kernel::SharedPtr<Kernel::Event> g_event_pad_or_touch_1; | ||||||
|  | @ -78,8 +80,10 @@ void HIDUpdate() { | ||||||
|     pad_entry->delta_removals.hex = changed.hex & old_state.hex;; |     pad_entry->delta_removals.hex = changed.hex & old_state.hex;; | ||||||
| 
 | 
 | ||||||
|     // Set circle Pad
 |     // Set circle Pad
 | ||||||
|     pad_entry->circle_pad_x = state.circle_left ? -0x9C : state.circle_right ? 0x9C : 0x0; |     pad_entry->circle_pad_x = state.circle_left  ? -MAX_CIRCLEPAD_POS : | ||||||
|     pad_entry->circle_pad_y = state.circle_down ? -0x9C : state.circle_up ? 0x9C : 0x0; |                               state.circle_right ?  MAX_CIRCLEPAD_POS : 0x0; | ||||||
|  |     pad_entry->circle_pad_y = state.circle_down  ? -MAX_CIRCLEPAD_POS : | ||||||
|  |                               state.circle_up    ?  MAX_CIRCLEPAD_POS : 0x0; | ||||||
| 
 | 
 | ||||||
|     // If we just updated index 0, provide a new timestamp
 |     // If we just updated index 0, provide a new timestamp
 | ||||||
|     if (shared_mem->pad.index == 0) { |     if (shared_mem->pad.index == 0) { | ||||||
|  |  | ||||||
|  | @ -80,40 +80,45 @@ struct PadDataEntry { | ||||||
|  * Structure of a single entry of touch state history within HID shared memory |  * Structure of a single entry of touch state history within HID shared memory | ||||||
|  */ |  */ | ||||||
| struct TouchDataEntry { | struct TouchDataEntry { | ||||||
|     u16 x;                   ///< Y-coordinate of a touchpad press on the lower screen
 |     u16 x;                     ///< Y-coordinate of a touchpad press on the lower screen
 | ||||||
|     u16 y;                   ///< X-coordinate of a touchpad press on the lower screen
 |     u16 y;                     ///< X-coordinate of a touchpad press on the lower screen
 | ||||||
|     BitField<0,7,u32> valid; ///< Set to 1 when this entry contains actual X/Y data, otherwise 0
 |     BitField<0, 7, u32> valid; ///< Set to 1 when this entry contains actual X/Y data, otherwise 0
 | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| /**
 | /**
 | ||||||
|  * Structure of data stored in HID shared memory |  * Structure of data stored in HID shared memory | ||||||
|  */ |  */ | ||||||
| struct SharedMem { | struct SharedMem { | ||||||
|     // "Pad data, this is used for buttons and the circle pad
 |     /// Pad data, this is used for buttons and the circle pad
 | ||||||
|     struct { |     struct { | ||||||
|         s64 index_reset_ticks; |         s64 index_reset_ticks; ///< CPU tick count for when HID module updated entry index 0
 | ||||||
|         s64 index_reset_ticks_previous; |         s64 index_reset_ticks_previous; ///< Previous `index_reset_ticks`
 | ||||||
|         u32 index; // Index of the last updated pad state history element
 |         u32 index; ///< Index of the last updated pad state entry
 | ||||||
| 
 | 
 | ||||||
|         INSERT_PADDING_BYTES(0x8); |         INSERT_PADDING_WORDS(0x2); | ||||||
| 
 | 
 | ||||||
|         PadState current_state; // Same as entries[index].current_state
 |         PadState current_state; ///< Current state of the pad buttons
 | ||||||
|         u32 raw_circle_pad_data; |  | ||||||
| 
 | 
 | ||||||
|         INSERT_PADDING_BYTES(0x4); |         // TODO(bunnei): Implement `raw_circle_pad_data` field
 | ||||||
|  |         u32 raw_circle_pad_data; ///< Raw (analog) circle pad data, before being converted
 | ||||||
| 
 | 
 | ||||||
|         std::array<PadDataEntry, 8> entries; // Pad state history
 |         INSERT_PADDING_WORDS(0x1); | ||||||
|  | 
 | ||||||
|  |         std::array<PadDataEntry, 8> entries; ///< Last 8 pad entries
 | ||||||
|     } pad; |     } pad; | ||||||
| 
 | 
 | ||||||
|     // Touchpad data, this is used for touchpad input
 |     /// Touchpad data, this is used for touchpad input
 | ||||||
|     struct { |     struct { | ||||||
|         s64 index_reset_ticks; |         s64 index_reset_ticks; ///< CPU tick count for when HID module updated entry index 0
 | ||||||
|         s64 index_reset_ticks_previous; |         s64 index_reset_ticks_previous; ///< Previous `index_reset_ticks`
 | ||||||
|         u32 index; // Index of the last updated touch state history element
 |         u32 index; ///< Index of the last updated touch entry
 | ||||||
| 
 | 
 | ||||||
|         INSERT_PADDING_BYTES(0xC); |         INSERT_PADDING_WORDS(0x1); | ||||||
| 
 | 
 | ||||||
|         std::array<TouchDataEntry, 8> entries; |         // TODO(bunnei): Implement `raw_entry` field
 | ||||||
|  |         TouchDataEntry raw_entry; ///< Raw (analog) touch data, before being converted
 | ||||||
|  | 
 | ||||||
|  |         std::array<TouchDataEntry, 8> entries; ///< Last 8 touch entries, in pixel coordinates
 | ||||||
|     } touch; |     } touch; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue