-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhidapiw_native.h
33 lines (30 loc) · 1.1 KB
/
hidapiw_native.h
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
#pragma once
#include <map>
#include <hidapi.h>
#ifdef NATIVE_CODE
#include <mutex>
#endif
class hidapiw_native
{
private:
std::map<int, hid_device*> devMap;
#ifdef NATIVE_CODE
//std::recursive_mutex devMap_mutex;
#endif
void addDevice(hid_device* _dev, int& devIdx);
int findDeviceInMap(int devIdx, hid_device*& _dev);
public:
hidapiw_native();
~hidapiw_native();
void enumerate(struct hid_device_info*& devs, unsigned short vendorID, unsigned short productID);
void freeEnumerate(hid_device_info*& devs);
void open(int& devIdx, unsigned short vendorID, unsigned short productID, const wchar_t* serialNumber = nullptr);
void openByPath(int& devIdx, const char* path);
void close(int devIdx);
int write(int devIdx, const unsigned char* data, size_t length);
int read_timeout(int devIdx, unsigned char*& data, size_t length, int milliseconds);
int read(int devIdx, unsigned char*& data, size_t length);
int set_nonblocking(int devIdx, int nonblock);
int send_feature_report(int devIdx, const unsigned char* data, size_t length);
int get_feature_report(int devIdx, unsigned char*& data, size_t length);
};