24 lines
		
	
	
		
			621 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			24 lines
		
	
	
		
			621 B
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#pragma once
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <IOKit/IOKitLib.h>
							 | 
						||
| 
								 | 
							
								#include <IOKit/hid/IOHIDKeys.h>
							 | 
						||
| 
								 | 
							
								#include <IOKit/hid/IOHIDManager.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								struct HIDGamepad {
							 | 
						||
| 
								 | 
							
									int padIndex;
							 | 
						||
| 
								 | 
							
									IOHIDDeviceRef hidDeviceRef;
							 | 
						||
| 
								 | 
							
									IOHIDQueueRef hidQueueRef;
							 | 
						||
| 
								 | 
							
									int hidDeviceVendorID;
							 | 
						||
| 
								 | 
							
									int hidDeviceProductID;
							 | 
						||
| 
								 | 
							
									char hidDeviceVendor[64];
							 | 
						||
| 
								 | 
							
									char hidDeviceProduct[64];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									IOHIDElementCookie axis[6];
							 | 
						||
| 
								 | 
							
									IOHIDElementCookie buttons[15];
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void HIDGamepad_init(struct HIDGamepad *gamepad);
							 | 
						||
| 
								 | 
							
								void HIDGamepad_destroy(struct HIDGamepad *gamepad);
							 | 
						||
| 
								 | 
							
								void HIDGamepad_bind(struct HIDGamepad *gamepad, IOHIDDeviceRef deviceRef, int padIndex);
							 | 
						||
| 
								 | 
							
								void HIDGamepad_unbind(struct HIDGamepad *gamepad);
							 |