src/HidDevice.cpp
author sl
Thu, 22 May 2014 07:50:02 +0200
changeset 14 4a5538e0ccbf
child 15 e5b84f315be7
permissions -rw-r--r--
Moving base HID classes into separate files.
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
	}