author | sl |
Thu, 22 May 2014 07:50:02 +0200 | |
changeset 14 | 4a5538e0ccbf |
child 15 | e5b84f315be7 |
permissions | -rw-r--r-- |
sl@14 | 1 |
// |
sl@14 | 2 |
// |
sl@14 | 3 |
// |
sl@14 | 4 |
|
sl@14 | 5 |
#include "HidDevice.h" |
sl@14 | 6 |
|
sl@14 | 7 |
|
sl@14 | 8 |
|
sl@14 | 9 |
// |
sl@14 | 10 |
// class HidDevice |
sl@14 | 11 |
// |
sl@14 | 12 |
|
sl@14 | 13 |
/** |
sl@14 | 14 |
*/ |
sl@14 | 15 |
int HidDevice::Open(const char* aPath) |
sl@14 | 16 |
{ |
sl@14 | 17 |
Close(); |
sl@14 | 18 |
|
sl@14 | 19 |
iHidDevice = hid_open_path(aPath); |
sl@14 | 20 |
|
sl@14 | 21 |
if (!iHidDevice) |
sl@14 | 22 |
{ |
sl@14 | 23 |
//Fail to connect our device |
sl@14 | 24 |
return 0; |
sl@14 | 25 |
} |
sl@14 | 26 |
|
sl@14 | 27 |
return 1; |
sl@14 | 28 |
} |
sl@14 | 29 |
|
sl@14 | 30 |
/** |
sl@14 | 31 |
See hidapi documentation. |
sl@14 | 32 |
*/ |
sl@14 | 33 |
int HidDevice::Open(unsigned short aVendorId, unsigned short aProductId, const wchar_t* aSerialNumber) |
sl@14 | 34 |
{ |
sl@14 | 35 |
iHidDevice = hid_open(aVendorId, aProductId, aSerialNumber); |
sl@14 | 36 |
|
sl@14 | 37 |
if (!iHidDevice) |
sl@14 | 38 |
{ |
sl@14 | 39 |
//Fail to connect our device |
sl@14 | 40 |
return 0; |
sl@14 | 41 |
} |
sl@14 | 42 |
|
sl@14 | 43 |
return 1; |
sl@14 | 44 |
} |
sl@14 | 45 |
|
sl@14 | 46 |
/** |
sl@14 | 47 |
*/ |
sl@14 | 48 |
void HidDevice::Close() |
sl@14 | 49 |
{ |
sl@14 | 50 |
hid_close(iHidDevice); |
sl@14 | 51 |
iHidDevice=NULL; |
sl@14 | 52 |
} |
sl@14 | 53 |
|
sl@14 | 54 |
/** |
sl@14 | 55 |
*/ |
sl@14 | 56 |
bool HidDevice::IsOpen() |
sl@14 | 57 |
{ |
sl@14 | 58 |
return iHidDevice!=NULL; |
sl@14 | 59 |
} |
sl@14 | 60 |
|
sl@14 | 61 |
|
sl@14 | 62 |
/** |
sl@14 | 63 |
*/ |
sl@14 | 64 |
const wchar_t* HidDevice::Error() |
sl@14 | 65 |
{ |
sl@14 | 66 |
return hid_error(iHidDevice); |
sl@14 | 67 |
} |
sl@14 | 68 |
|
sl@14 | 69 |
/** |
sl@14 | 70 |
*/ |
sl@14 | 71 |
int HidDevice::SetNonBlocking(int aNonBlocking) |
sl@14 | 72 |
{ |
sl@14 | 73 |
//Success we are now connected to our HID device |
sl@14 | 74 |
//Set read operation as non blocking |
sl@14 | 75 |
return hid_set_nonblocking(iHidDevice, aNonBlocking); |
sl@14 | 76 |
} |