aboutsummaryrefslogtreecommitdiff
path: root/src/include/razerdevice.h
blob: 02dec29be9aa6ba0af2e06d1963ccc34ddcf68cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//
//  razerdevice.h
//  Razer device query functions
//
//

#ifndef DRIVER_RAZERDEVICE_H_
#define DRIVER_RAZERDEVICE_H_

#include <IOKit/usb/IOUSBLib.h>
#include <IOKit/IOCFPlugIn.h>
#include <stdio.h>

#include "razerkbd_driver.h"
#include "razermouse_driver.h"
#include "razermousedock_driver.h"
#include "razermousemat_driver.h"
#include "razerheadphone_driver.h"
#include "razeregpu_driver.h"
#include "razerkraken_driver.h"
#include "razeraccessory_driver.h"

#define TYPE_KEYBOARD 0
#define TYPE_BLADE 1
#define TYPE_MOUSE 2
#define TYPE_MOUSE_DOCK 3
#define TYPE_MOUSE_MAT 4
#define TYPE_EGPU 5
#define TYPE_HEADPHONE 6
#define TYPE_ACCESSORY 7

#ifndef USB_VENDOR_ID_RAZER
#define USB_VENDOR_ID_RAZER 0x1532
#endif

typedef struct {
    IOUSBDeviceInterface **usbDevice;
    UInt16 productId;
    int internalDeviceId;
} RazerDevice;

typedef struct {
    RazerDevice *devices;
    int size;
} RazerDevices;

IOUSBDeviceInterface **getRazerUSBDeviceInterface(int type);
void closeRazerUSBDeviceInterface(IOUSBDeviceInterface **dev);

RazerDevices getAllRazerDevices();
void closeAllRazerDevices(RazerDevices devices);

#endif