29 lines
		
	
	
		
			688 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			688 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #include <kinc/global.h>
 | |
| 
 | |
| #include <IOKit/IOKitLib.h>
 | |
| #include <IOKit/hid/IOHIDKeys.h>
 | |
| #include <IOKit/hid/IOHIDManager.h>
 | |
| 
 | |
| #include "HIDGamepad.h"
 | |
| 
 | |
| // Maximum number of devices supported
 | |
| // Corresponds to size of Kore::Gamepad array
 | |
| static const int KINC_MAX_HID_DEVICES = 12;
 | |
| 
 | |
| // Slots to hold details on connected devices
 | |
| struct HIDManagerDeviceRecord {
 | |
| 	bool connected;        // = false;
 | |
| 	IOHIDDeviceRef device; // = NULL;
 | |
| 	struct HIDGamepad pad;
 | |
| };
 | |
| 
 | |
| struct HIDManager {
 | |
| 	IOHIDManagerRef managerRef;
 | |
| 	struct HIDManagerDeviceRecord devices[KINC_MAX_HID_DEVICES];
 | |
| };
 | |
| 
 | |
| void HIDManager_init(struct HIDManager *manager);
 | |
| void HIDManager_destroy(struct HIDManager *manager);
 |