From 8c315f5e6ec6c614335fe47c6cfe41252f42eb6d Mon Sep 17 00:00:00 2001 From: Thomas Boos Date: Tue, 23 Aug 2022 13:42:15 +0000 Subject: [PATCH] Update hidapi to version 0.12.0. Direct mode stabilization of Logitech G203 Lightsync (fixes #877). --- .../LogitechG203LController.cpp | 96 +++++-- .../LogitechG203LController.h | 1 + .../RGBController_LogitechG203L.cpp | 87 +++--- dependencies/hidapi-win/x64/hidapi.dll | Bin 18432 -> 130560 bytes dependencies/hidapi-win/x64/hidapi.lib | Bin 5186 -> 6270 bytes dependencies/hidapi-win/x86/hidapi.dll | Bin 14336 -> 110080 bytes dependencies/hidapi-win/x86/hidapi.lib | Bin 5270 -> 6376 bytes dependencies/hidapi/hidapi/hidapi.h | 264 ++++++++++++++---- 8 files changed, 337 insertions(+), 111 deletions(-) diff --git a/Controllers/LogitechController/LogitechG203LController.cpp b/Controllers/LogitechController/LogitechG203LController.cpp index dda8bc948..da3537741 100644 --- a/Controllers/LogitechController/LogitechG203LController.cpp +++ b/Controllers/LogitechController/LogitechG203LController.cpp @@ -2,15 +2,36 @@ #include +#define PACKET_SIZE 20 + + LogitechG203LController::LogitechG203LController(hid_device* dev_handle, const char* path) { dev = dev_handle; location = path; + + // enable software control + unsigned char usb_buf[PACKET_SIZE]; + + memset(usb_buf, 0x00, PACKET_SIZE); + + usb_buf[0x00] = 0x11; + usb_buf[0x01] = 0xFF; + usb_buf[0x02] = 0x0E; + usb_buf[0x03] = 0x50; + usb_buf[0x04] = 0x01; + usb_buf[0x05] = 0x03; + usb_buf[0x06] = 0x07; + + SendPacket(usb_buf); } LogitechG203LController::~LogitechG203LController() { - hid_close(dev); + if(dev != nullptr) + { + hid_close(dev); + } } std::string LogitechG203LController::GetDeviceLocation() @@ -36,29 +57,28 @@ std::string LogitechG203LController::GetSerialString() void LogitechG203LController::SendApply() { - unsigned char usb_buf[20]; + unsigned char usb_buf[PACKET_SIZE]; - memset(usb_buf, 0x00, sizeof(usb_buf)); + memset(usb_buf, 0x00, PACKET_SIZE); usb_buf[0x00] = 0x11; usb_buf[0x01] = 0xFF; usb_buf[0x02] = 0x12; - usb_buf[0x03] = 0x7A; + usb_buf[0x03] = 0x70; - hid_write(dev, usb_buf, 20); - hid_read(dev, usb_buf, 20); + SendPacket(usb_buf); } void LogitechG203LController::SetSingleLED(int led, unsigned char red, unsigned char green, unsigned char blue) { - unsigned char usb_buf[20]; + unsigned char usb_buf[PACKET_SIZE]; - memset(usb_buf, 0x00, sizeof(usb_buf)); + memset(usb_buf, 0x00, PACKET_SIZE); usb_buf[0x00] = 0x11; usb_buf[0x01] = 0xFF; usb_buf[0x02] = 0x12; - usb_buf[0x03] = 0x19; + usb_buf[0x03] = 0x10; usb_buf[0x04] = (unsigned char)led; usb_buf[0x05] = red; @@ -67,8 +87,7 @@ void LogitechG203LController::SetSingleLED(int led, unsigned char red, unsigned usb_buf[0x08] = 0xFF; - hid_write(dev, usb_buf, 20); - hid_read(dev, usb_buf, 20); + SendPacket(usb_buf); SendApply(); } @@ -82,15 +101,21 @@ void LogitechG203LController::SetMode( unsigned char green, unsigned char blue) { - unsigned char usb_buf[20]; + unsigned char usb_buf[PACKET_SIZE]; + unsigned char brightness = bright * 5; - memset(usb_buf, 0x00, sizeof(usb_buf)); + if(brightness == 0) + { + brightness = 1; + } + + memset(usb_buf, 0x00, PACKET_SIZE); //Header usb_buf[0x00] = 0x11; usb_buf[0x01] = 0xFF; usb_buf[0x02] = 0x0E; - usb_buf[0x03] = 0x1A; + usb_buf[0x03] = 0x10; //Common Data usb_buf[0x04] = 0x00; usb_buf[0x05] = (unsigned char)mode; @@ -103,45 +128,44 @@ void LogitechG203LController::SetMode( { usb_buf[0x0B] = (unsigned char)((speed>>8) & 0x000000FF); usb_buf[0x0C] = (unsigned char)(speed & 0x000000FF); - usb_buf[0x0D] = bright; + usb_buf[0x0D] = brightness; } if(mode == LOGITECH_G203L_MODE_BREATHING) { usb_buf[0x09] = (unsigned char)((speed>>8) & 0x000000FF); usb_buf[0x0A] = (unsigned char)(speed & 0x000000FF); - usb_buf[0x0C] = bright; + usb_buf[0x0C] = brightness; } if(mode == LOGITECH_G203L_MODE_WAVE) { usb_buf[0x0C] = (unsigned char)(speed & 0x000000FF); usb_buf[0x0D] = dir ? 0x01 : 0x06; //0x01: Left->Right 0x06: Right->Left - usb_buf[0x0E] = bright; + usb_buf[0x0E] = brightness; usb_buf[0x0F] = (unsigned char)((speed>>8) & 0x000000FF); } if(mode == LOGITECH_G203L_MODE_COLORMIXING) { usb_buf[0x0C] = (unsigned char)(speed & 0x000000FF); usb_buf[0x0D] = (unsigned char)((speed>>8) & 0x000000FF); - usb_buf[0x0E] = bright; + usb_buf[0x0E] = brightness; } //END BYTE usb_buf[0x10] = 0x01; - hid_write(dev, usb_buf, 20); - hid_read(dev, usb_buf, 20); + SendPacket(usb_buf); } void LogitechG203LController::SetDevice(std::vector colors) { - unsigned char usb_buf[20]; + unsigned char usb_buf[PACKET_SIZE]; - memset(usb_buf, 0x00, sizeof(usb_buf)); + memset(usb_buf, 0x00, PACKET_SIZE); usb_buf[0x00] = 0x11; usb_buf[0x01] = 0xFF; usb_buf[0x02] = 0x12; - usb_buf[0x03] = 0x1A; + usb_buf[0x03] = 0x10; usb_buf[0x04] = 0x01; usb_buf[0x05] = RGBGetRValue(colors[0]); @@ -160,8 +184,30 @@ void LogitechG203LController::SetDevice(std::vector colors) usb_buf[0x10] = 0xFF; - hid_write(dev, usb_buf, 20); - hid_read(dev, usb_buf, 20); + SendPacket(usb_buf); SendApply(); } + +void LogitechG203LController::SendPacket(unsigned char* buffer) +{ + if(dev != nullptr) + { + if(hid_write(dev, buffer, PACKET_SIZE) == -1) + { + hid_close(dev); + dev = hid_open_path(location.c_str()); + return; + } + } + + if(dev != nullptr) + { + if(hid_read_timeout(dev, buffer, PACKET_SIZE, 10) <= 0) + { + hid_close(dev); + dev = hid_open_path(location.c_str()); + return; + } + } +} diff --git a/Controllers/LogitechController/LogitechG203LController.h b/Controllers/LogitechController/LogitechG203LController.h index 84dd0ab15..82fcea349 100644 --- a/Controllers/LogitechController/LogitechG203LController.h +++ b/Controllers/LogitechController/LogitechG203LController.h @@ -34,4 +34,5 @@ private: std::string location; void SendApply(); + void SendPacket(unsigned char* buffer); }; diff --git a/Controllers/LogitechController/RGBController_LogitechG203L.cpp b/Controllers/LogitechController/RGBController_LogitechG203L.cpp index dd0fec6d2..4f3d53ab9 100644 --- a/Controllers/LogitechController/RGBController_LogitechG203L.cpp +++ b/Controllers/LogitechController/RGBController_LogitechG203L.cpp @@ -23,62 +23,74 @@ RGBController_LogitechG203L::RGBController_LogitechG203L(LogitechG203LController serial = controller->GetSerialString(); mode Direct; - Direct.name = "Direct"; - Direct.value = LOGITECH_G203L_MODE_DIRECT; - Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; - Direct.color_mode = MODE_COLORS_PER_LED; + Direct.name = "Direct"; + Direct.value = LOGITECH_G203L_MODE_DIRECT; + Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; + Direct.color_mode = MODE_COLORS_PER_LED; modes.push_back(Direct); mode Off; - Off.name = "Off"; - Off.value = LOGITECH_G203L_MODE_OFF; - Off.flags = 0; - Off.color_mode = MODE_COLORS_NONE; + Off.name = "Off"; + Off.value = LOGITECH_G203L_MODE_OFF; + Off.flags = 0; + Off.color_mode = MODE_COLORS_NONE; modes.push_back(Off); mode Static; - Static.name = "Static"; - Static.value = LOGITECH_G203L_MODE_STATIC; - Static.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR; - Static.color_mode = MODE_COLORS_MODE_SPECIFIC; + Static.name = "Static"; + Static.value = LOGITECH_G203L_MODE_STATIC; + Static.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR; + Static.color_mode = MODE_COLORS_MODE_SPECIFIC; Static.colors.resize(1); modes.push_back(Static); mode Cycle; - Cycle.name = "Cycle"; - Cycle.value = LOGITECH_G203L_MODE_CYCLE; - Cycle.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS; - Cycle.color_mode = MODE_COLORS_NONE; - Cycle.speed_min = 0x4E20; - Cycle.speed_max = 0x03E8; + Cycle.name = "Cycle"; + Cycle.value = LOGITECH_G203L_MODE_CYCLE; + Cycle.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS; + Cycle.color_mode = MODE_COLORS_NONE; + Cycle.speed_min = 0x4E20; + Cycle.speed_max = 0x03E8; + Cycle.brightness = 20; + Cycle.brightness_min = 0; + Cycle.brightness_max = 20; modes.push_back(Cycle); mode Breathing; - Breathing.name = "Breathing"; - Breathing.value = LOGITECH_G203L_MODE_BREATHING; - Breathing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR; - Breathing.color_mode = MODE_COLORS_MODE_SPECIFIC; - Breathing.speed_min = 0x4E20; - Breathing.speed_max = 0x03E8; + Breathing.name = "Breathing"; + Breathing.value = LOGITECH_G203L_MODE_BREATHING; + Breathing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR; + Breathing.color_mode = MODE_COLORS_MODE_SPECIFIC; + Breathing.speed_min = 0x4E20; + Breathing.speed_max = 0x03E8; + Breathing.brightness = 20; + Breathing.brightness_min = 0; + Breathing.brightness_max = 20; Breathing.colors.resize(1); modes.push_back(Breathing); mode Wave; - Wave.name = "Wave"; - Wave.value = LOGITECH_G203L_MODE_WAVE; - Wave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_LR; - Wave.color_mode = MODE_COLORS_NONE; - Wave.speed_min = 0x4E20; - Wave.speed_max = 0x03E8; + Wave.name = "Wave"; + Wave.value = LOGITECH_G203L_MODE_WAVE; + Wave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_DIRECTION_LR; + Wave.color_mode = MODE_COLORS_NONE; + Wave.speed_min = 0x4E20; + Wave.speed_max = 0x03E8; + Wave.brightness = 20; + Wave.brightness_min = 0; + Wave.brightness_max = 20; modes.push_back(Wave); mode Colormixing; - Colormixing.name = "Colormixing"; - Colormixing.value = LOGITECH_G203L_MODE_COLORMIXING; - Colormixing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS; - Colormixing.color_mode = MODE_COLORS_NONE; - Colormixing.speed_min = 0x4E20; - Colormixing.speed_max = 0x03E8; + Colormixing.name = "Colormixing"; + Colormixing.value = LOGITECH_G203L_MODE_COLORMIXING; + Colormixing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS; + Colormixing.color_mode = MODE_COLORS_NONE; + Colormixing.speed_min = 0x4E20; + Colormixing.speed_max = 0x03E8; + Colormixing.brightness = 20; + Colormixing.brightness_min = 0; + Colormixing.brightness_max = 20; modes.push_back(Colormixing); SetupZones(); @@ -152,7 +164,6 @@ void RGBController_LogitechG203L::DeviceUpdateMode() unsigned char grn = 0; unsigned char blu = 0; unsigned char dir = 0; - unsigned char val = 0xFF; if(modes[active_mode].color_mode & MODE_COLORS_MODE_SPECIFIC) { @@ -177,6 +188,6 @@ void RGBController_LogitechG203L::DeviceUpdateMode() } else { - controller->SetMode(modes[active_mode].value, modes[active_mode].speed, val, dir, red, grn, blu); + controller->SetMode(modes[active_mode].value, modes[active_mode].speed, modes[active_mode].brightness, dir, red, grn, blu); } } diff --git a/dependencies/hidapi-win/x64/hidapi.dll b/dependencies/hidapi-win/x64/hidapi.dll index cea5b091aada2e7d5b5161e8ce380dd26cc636d5..68d7a8980bd0cb26306e9357171666b53921931a 100644 GIT binary patch literal 130560 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

8@I&HZqv@|X+-$+daWQ|_xOb3fUD9mZ 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 Bcm@Cf diff --git a/dependencies/hidapi-win/x64/hidapi.lib b/dependencies/hidapi-win/x64/hidapi.lib index eeebe3861f1c2863eb9c77398469af602bedee0f..041bdf965451079e1eb349598aa28b137ebf972c 100644 GIT binary patch delta 1508 zcmb7^YiJx*6vzLwna%Dzc4l{GA9<18HkAaGvU#9_8ovb8B6JIFp?1wAO*V0$?ryf* z3Q`|n%?D9vdsGlfjVV(65(>psp)F~|swFm}_Jc%<6-=WEH6nsS;(BH$X}89FaN);cpkAkYoy!!EH=z#%l|5}X7a%&d#C z43s&-Bcn~Y7-60>p`=S>9&m`JT_U?`*x+#3rG~#9!sDxKOmW%uK0yWiSijb8IM(x7lx zygzfu?#ozqb|6>QJ5DNW^t>>;$uxtQF zmH_ciu4hZn1p&$woF+|`) z0M$?-LxLYQ2*X4WA!yK1hgx`H{696#iYJxI80Wl?t9OL+H=&7=9+^HDO#0b-{*l$# zVO`wH(Y zeK(oltcnonXjPQn*B+t~(~Nh175X#Ib}z3ufAZgjU($C-16PulH?yXiRy14kzx&gS zGxJeS-%UfBS$k>w*wqAE{1raR;Urz}qEB^G3NL;3bu%j@x~}J>5AWTz;&_m0PtaB# z{pG`-v=H1L{{8I}^IV=>Ztkt@tX-s+jE5AZjPkBt!H`o zPPtR2RMI=0kTj3{6`pZI5?R%3SWV`R%`fzv`-Wd``7M^aS-~!5oOE%&+uFZ>KjeP^ DZr7tj delta 831 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 literal 14336 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 diff --git a/dependencies/hidapi-win/x86/hidapi.lib b/dependencies/hidapi-win/x86/hidapi.lib index 10e808950184c4081c87aa12e1c53e3d6a7de0f6..a1c38297ffb820dace7e7c65923aab59ab95f18d 100644 GIT binary patch delta 1487 zcmb7^e`phD7{{N4yCj#p%U$j+zuM{|>Qn@!qNQRg5oGA52r@xy+v|^{dKQzIMjeB8 zObT;hRTpl`iDB!`U|a85d;NMYiWJn-q|Kf1p}WvJkR^R z_f5Xf^WL!~4=aDD{-$!ps_OXEr_m1pl>q(*0I3T=9sp2=Y@)Qr2#z~MDH8fshgyn+ zcF#s3Ekn!M1P_y*2yb<`Opyp}>!dHnh)whm9Yll-8{;ehL+!UwXhVjYv@tf&IuSYH zP(`uo$C37x2dzv~&N6qU3ua3;Q)sd>>AY#Bz}#)6%vl!k3)g4yRQiC`k~XbOYt|OC zEsBcxt!t#*%H;MJ%zQeR%@<}=Q&l|2NANVSV$$pTy~Ew(!p}Wo;y^mzZe=rOdm(S@ zOA4m7H)l@$GN)Xk!E&yW8dWvjs50tQ1KHap0Sw3hLkhKx+A$s^_lT=HKrL}kqdKkS zC?2Nz)-b?jqB8_ALL8!J42oyT?S7SXq)k%XK>3LXKovm~0WNUYfe2yXAOa!qf(#yz zzz+iWAPNTPph6G=pg@Z?)0A`k$EC2ui delta 849 zcmZvaPe>GD7{;HOU7el(vpcivu4^V1n1rr|2iJ^bFCloa@Fp%=T3Uor7wIB+>Xz`3 zU4l-LL3t52PvKFBh@hi-6i?E@TcEu&v%5j`!H@UP^L*dO`^_8=ZuG7Xua<|0y5co! z0O$cyBY-grm>Ymyi*Xl$5O1%}ltjVZkFkz`5a%?;p8z6uB?_69I)@U4U?3*b=SV|H zZ^k%la)4mV0U=IDOu8a^g_iP+ZCb#qy1@gbgT3m{?NZ{i!v2lZ_u;BjB^sk5I)(5h9hPIlb;ankM8J1-i^i8sx@jBkdgUXnMIH{*>&fxps|&0eeYekcXbXGS@a52A6d zh*x9DU$z=MQ}Wte*7A|<%nu@=S8RGHbg7*j4JM<#;Xh#TRWQ@6O#ZG{?V?$n%g!}5 qn_siB^MYs&2XhONc3CQyZ*z~Ls!J-5e%lnUyMENkNhi(k`NAKr;^hDU diff --git a/dependencies/hidapi/hidapi/hidapi.h b/dependencies/hidapi/hidapi/hidapi.h index 722611e5f..3cee21db6 100644 --- a/dependencies/hidapi/hidapi/hidapi.h +++ b/dependencies/hidapi/hidapi/hidapi.h @@ -5,9 +5,9 @@ Alan Ott Signal 11 Software - 8/22/2009 + libusb/hidapi Team - Copyright 2009, All Rights Reserved. + Copyright 2022, All Rights Reserved. At the discretion of the user of this library, this software may be licensed under the terms of the @@ -17,7 +17,7 @@ files located at the root of the source distribution. These files may also be found in the public source code repository located at: - http://github.com/signal11/hidapi . + https://github.com/libusb/hidapi . ********************************************************/ /** @file @@ -30,7 +30,7 @@ #include #ifdef _WIN32 - #define HID_API_EXPORT + #define HID_API_EXPORT __declspec(dllexport) #define HID_API_CALL #else #define HID_API_EXPORT /**< API export macro */ @@ -39,9 +39,64 @@ #define HID_API_EXPORT_CALL HID_API_EXPORT HID_API_CALL /**< API export and call macro*/ +/** @brief Static/compile-time major version of the library. + + @ingroup API +*/ +#define HID_API_VERSION_MAJOR 0 +/** @brief Static/compile-time minor version of the library. + + @ingroup API +*/ +#define HID_API_VERSION_MINOR 13 +/** @brief Static/compile-time patch version of the library. + + @ingroup API +*/ +#define HID_API_VERSION_PATCH 0 + +/* Helper macros */ +#define HID_API_AS_STR_IMPL(x) #x +#define HID_API_AS_STR(x) HID_API_AS_STR_IMPL(x) +#define HID_API_TO_VERSION_STR(v1, v2, v3) HID_API_AS_STR(v1.v2.v3) + +/** @brief Coverts a version as Major/Minor/Patch into a number: + <8 bit major><16 bit minor><8 bit patch>. + + This macro was added in version 0.12.0. + + Convenient function to be used for compile-time checks, like: + #if HID_API_VERSION >= HID_API_MAKE_VERSION(0, 12, 0) + + @ingroup API +*/ +#define HID_API_MAKE_VERSION(mj, mn, p) (((mj) << 24) | ((mn) << 8) | (p)) + +/** @brief Static/compile-time version of the library. + + This macro was added in version 0.12.0. + + @see @ref HID_API_MAKE_VERSION. + + @ingroup API +*/ +#define HID_API_VERSION HID_API_MAKE_VERSION(HID_API_VERSION_MAJOR, HID_API_VERSION_MINOR, HID_API_VERSION_PATCH) + +/** @brief Static/compile-time string version of the library. + + @ingroup API +*/ +#define HID_API_VERSION_STR HID_API_TO_VERSION_STR(HID_API_VERSION_MAJOR, HID_API_VERSION_MINOR, HID_API_VERSION_PATCH) + #ifdef __cplusplus extern "C" { #endif + struct hid_api_version { + int major; + int minor; + int patch; + }; + struct hid_device_; typedef struct hid_device_ hid_device; /**< opaque hidapi structure */ @@ -63,15 +118,19 @@ extern "C" { /** Product string */ wchar_t *product_string; /** Usage Page for this Device/Interface - (Windows/Mac only). */ + (Windows/Mac/hidraw only) */ unsigned short usage_page; /** Usage for this Device/Interface - (Windows/Mac only).*/ + (Windows/Mac/hidraw only) */ unsigned short usage; /** The USB interface which this logical device - represents. Valid on both Linux implementations - in all cases, and valid on the Windows implementation - only if the device contains more than one interface. */ + represents. + + * Valid on both Linux implementations in all cases. + * Valid on the Windows implementation only if the device + contains more than one interface. + * Valid on the Mac implementation if and only if the device + is a USB HID device. */ int interface_number; /** Pointer to the next device */ @@ -87,11 +146,12 @@ extern "C" { needed. This function should be called at the beginning of execution however, if there is a chance of HIDAPI handles being opened by different threads simultaneously. - + @ingroup API @returns This function returns 0 on success and -1 on error. + Call hid_error(NULL) to get the failure reason. */ int HID_API_EXPORT HID_API_CALL hid_init(void); @@ -103,7 +163,7 @@ extern "C" { @ingroup API - @returns + @returns This function returns 0 on success and -1 on error. */ int HID_API_EXPORT HID_API_CALL hid_exit(void); @@ -123,21 +183,25 @@ extern "C" { @param product_id The Product ID (PID) of the types of device to open. - @returns - This function returns a pointer to a linked list of type - struct #hid_device, containing information about the HID devices - attached to the system, or NULL in the case of failure. Free - this linked list by calling hid_free_enumeration(). + @returns + This function returns a pointer to a linked list of type + struct #hid_device_info, containing information about the HID devices + attached to the system, + or NULL in the case of failure or if no HID devices present in the system. + Call hid_error(NULL) to get the failure reason. + + @note The returned value by this function must to be freed by calling hid_free_enumeration(), + when not needed anymore. */ struct hid_device_info HID_API_EXPORT * HID_API_CALL hid_enumerate(unsigned short vendor_id, unsigned short product_id); /** @brief Free an enumeration Linked List - This function frees a linked list created by hid_enumerate(). + This function frees a linked list created by hid_enumerate(). @ingroup API - @param devs Pointer to a list of struct_device returned from - hid_enumerate(). + @param devs Pointer to a list of struct_device returned from + hid_enumerate(). */ void HID_API_EXPORT HID_API_CALL hid_free_enumeration(struct hid_device_info *devs); @@ -151,11 +215,15 @@ extern "C" { @param vendor_id The Vendor ID (VID) of the device to open. @param product_id The Product ID (PID) of the device to open. @param serial_number The Serial Number of the device to open - (Optionally NULL). + (Optionally NULL). @returns This function returns a pointer to a #hid_device object on success or NULL on failure. + Call hid_error(NULL) to get the failure reason. + + @note The returned object must be freed by calling hid_close(), + when not needed anymore. */ HID_API_EXPORT hid_device * HID_API_CALL hid_open(unsigned short vendor_id, unsigned short product_id, const wchar_t *serial_number); @@ -166,11 +234,15 @@ extern "C" { Linux). @ingroup API - @param path The path name of the device to open + @param path The path name of the device to open @returns This function returns a pointer to a #hid_device object on success or NULL on failure. + Call hid_error(NULL) to get the failure reason. + + @note The returned object must be freed by calling hid_close(), + when not needed anymore. */ HID_API_EXPORT hid_device * HID_API_CALL hid_open_path(const char *path); @@ -191,7 +263,7 @@ extern "C" { the Control Endpoint (Endpoint 0). @ingroup API - @param device A device handle returned from hid_open(). + @param dev A device handle returned from hid_open(). @param data The data to send, including the report number as the first byte. @param length The length in bytes of the data to send. @@ -199,8 +271,9 @@ extern "C" { @returns This function returns the actual number of bytes written and -1 on error. + Call hid_error(dev) to get the failure reason. */ - int HID_API_EXPORT HID_API_CALL hid_write(hid_device *device, const unsigned char *data, size_t length); + int HID_API_EXPORT HID_API_CALL hid_write(hid_device *dev, const unsigned char *data, size_t length); /** @brief Read an Input report from a HID device with timeout. @@ -209,7 +282,7 @@ extern "C" { contain the Report number if the device uses numbered reports. @ingroup API - @param device A device handle returned from hid_open(). + @param dev A device handle returned from hid_open(). @param data A buffer to put the read data into. @param length The number of bytes to read. For devices with multiple reports, make sure to read an extra byte for @@ -218,7 +291,9 @@ extern "C" { @returns This function returns the actual number of bytes read and - -1 on error. If no packet was available to be read within + -1 on error. + Call hid_error(dev) to get the failure reason. + If no packet was available to be read within the timeout period, this function returns 0. */ int HID_API_EXPORT HID_API_CALL hid_read_timeout(hid_device *dev, unsigned char *data, size_t length, int milliseconds); @@ -226,11 +301,11 @@ extern "C" { /** @brief Read an Input report from a HID device. Input reports are returned - to the host through the INTERRUPT IN endpoint. The first byte will + to the host through the INTERRUPT IN endpoint. The first byte will contain the Report number if the device uses numbered reports. @ingroup API - @param device A device handle returned from hid_open(). + @param dev A device handle returned from hid_open(). @param data A buffer to put the read data into. @param length The number of bytes to read. For devices with multiple reports, make sure to read an extra byte for @@ -238,10 +313,12 @@ extern "C" { @returns This function returns the actual number of bytes read and - -1 on error. If no packet was available to be read and + -1 on error. + Call hid_error(dev) to get the failure reason. + If no packet was available to be read and the handle is in non-blocking mode, this function returns 0. */ - int HID_API_EXPORT HID_API_CALL hid_read(hid_device *device, unsigned char *data, size_t length); + int HID_API_EXPORT HID_API_CALL hid_read(hid_device *dev, unsigned char *data, size_t length); /** @brief Set the device handle to be non-blocking. @@ -253,15 +330,16 @@ extern "C" { Nonblocking can be turned on and off at any time. @ingroup API - @param device A device handle returned from hid_open(). + @param dev A device handle returned from hid_open(). @param nonblock enable or not the nonblocking reads - 1 to enable nonblocking - 0 to disable nonblocking. @returns This function returns 0 on success and -1 on error. + Call hid_error(dev) to get the failure reason. */ - int HID_API_EXPORT HID_API_CALL hid_set_nonblocking(hid_device *device, int nonblock); + int HID_API_EXPORT HID_API_CALL hid_set_nonblocking(hid_device *dev, int nonblock); /** @brief Send a Feature report to the device. @@ -279,7 +357,7 @@ extern "C" { in would be 17. @ingroup API - @param device A device handle returned from hid_open(). + @param dev A device handle returned from hid_open(). @param data The data to send, including the report number as the first byte. @param length The length in bytes of the data to send, including @@ -288,8 +366,9 @@ extern "C" { @returns This function returns the actual number of bytes written and -1 on error. + Call hid_error(dev) to get the failure reason. */ - int HID_API_EXPORT HID_API_CALL hid_send_feature_report(hid_device *device, const unsigned char *data, size_t length); + int HID_API_EXPORT HID_API_CALL hid_send_feature_report(hid_device *dev, const unsigned char *data, size_t length); /** @brief Get a feature report from a HID device. @@ -299,6 +378,34 @@ extern "C" { still contain the Report ID, and the report data will start in data[1]. + @ingroup API + @param dev A device handle returned from hid_open(). + @param data A buffer to put the read data into, including + the Report ID. Set the first byte of @p data[] to the + Report ID of the report to be read, or set it to zero + if your device does not use numbered reports. + @param length The number of bytes to read, including an + extra byte for the report ID. The buffer can be longer + than the actual report. + + @returns + This function returns the number of bytes read plus + one for the report ID (which is still in the first + byte), or -1 on error. + Call hid_error(dev) to get the failure reason. + */ + int HID_API_EXPORT HID_API_CALL hid_get_feature_report(hid_device *dev, unsigned char *data, size_t length); + + /** @brief Get a input report from a HID device. + + Since version 0.10.0, @ref HID_API_VERSION >= HID_API_MAKE_VERSION(0, 10, 0) + + Set the first byte of @p data[] to the Report ID of the + report to be read. Make sure to allow space for this + extra byte in @p data[]. Upon return, the first byte will + still contain the Report ID, and the report data will + start in data[1]. + @ingroup API @param device A device handle returned from hid_open(). @param data A buffer to put the read data into, including @@ -313,75 +420,136 @@ extern "C" { This function returns the number of bytes read plus one for the report ID (which is still in the first byte), or -1 on error. + Call hid_error(dev) to get the failure reason. */ - int HID_API_EXPORT HID_API_CALL hid_get_feature_report(hid_device *device, unsigned char *data, size_t length); + int HID_API_EXPORT HID_API_CALL hid_get_input_report(hid_device *dev, unsigned char *data, size_t length); /** @brief Close a HID device. @ingroup API - @param device A device handle returned from hid_open(). + @param dev A device handle returned from hid_open(). */ - void HID_API_EXPORT HID_API_CALL hid_close(hid_device *device); + void HID_API_EXPORT HID_API_CALL hid_close(hid_device *dev); /** @brief Get The Manufacturer String from a HID device. @ingroup API - @param device A device handle returned from hid_open(). + @param dev A device handle returned from hid_open(). @param string A wide string buffer to put the data into. @param maxlen The length of the buffer in multiples of wchar_t. @returns This function returns 0 on success and -1 on error. + Call hid_error(dev) to get the failure reason. */ - int HID_API_EXPORT_CALL hid_get_manufacturer_string(hid_device *device, wchar_t *string, size_t maxlen); + int HID_API_EXPORT_CALL hid_get_manufacturer_string(hid_device *dev, wchar_t *string, size_t maxlen); /** @brief Get The Product String from a HID device. @ingroup API - @param device A device handle returned from hid_open(). + @param dev A device handle returned from hid_open(). @param string A wide string buffer to put the data into. @param maxlen The length of the buffer in multiples of wchar_t. @returns This function returns 0 on success and -1 on error. + Call hid_error(dev) to get the failure reason. */ - int HID_API_EXPORT_CALL hid_get_product_string(hid_device *device, wchar_t *string, size_t maxlen); + int HID_API_EXPORT_CALL hid_get_product_string(hid_device *dev, wchar_t *string, size_t maxlen); /** @brief Get The Serial Number String from a HID device. @ingroup API - @param device A device handle returned from hid_open(). + @param dev A device handle returned from hid_open(). @param string A wide string buffer to put the data into. @param maxlen The length of the buffer in multiples of wchar_t. @returns This function returns 0 on success and -1 on error. + Call hid_error(dev) to get the failure reason. */ - int HID_API_EXPORT_CALL hid_get_serial_number_string(hid_device *device, wchar_t *string, size_t maxlen); + int HID_API_EXPORT_CALL hid_get_serial_number_string(hid_device *dev, wchar_t *string, size_t maxlen); + + /** @brief Get The struct #hid_device_info from a HID device. + + Since version 0.13.0, @ref HID_API_VERSION >= HID_API_MAKE_VERSION(0, 13, 0) + + @ingroup API + @param dev A device handle returned from hid_open(). + + @returns + This function returns a pointer to the struct #hid_device_info + for this hid_device, or NULL in the case of failure. + Call hid_error(dev) to get the failure reason. + This struct is valid until the device is closed with hid_close(). + + @note The returned object is owned by the @p dev, and SHOULD NOT be freed by the user. + */ + struct hid_device_info HID_API_EXPORT * HID_API_CALL hid_get_device_info(hid_device *dev); /** @brief Get a string from a HID device, based on its string index. @ingroup API - @param device A device handle returned from hid_open(). + @param dev A device handle returned from hid_open(). @param string_index The index of the string to get. @param string A wide string buffer to put the data into. @param maxlen The length of the buffer in multiples of wchar_t. @returns This function returns 0 on success and -1 on error. + Call hid_error(dev) to get the failure reason. */ - int HID_API_EXPORT_CALL hid_get_indexed_string(hid_device *device, int string_index, wchar_t *string, size_t maxlen); + int HID_API_EXPORT_CALL hid_get_indexed_string(hid_device *dev, int string_index, wchar_t *string, size_t maxlen); /** @brief Get a string describing the last error which occurred. + This function is intended for logging/debugging purposes. + + This function guarantees to never return NULL. + If there was no error in the last function call - + the returned string clearly indicates that. + + Any HIDAPI function that can explicitly indicate an execution failure + (e.g. by an error code, or by returning NULL) - may set the error string, + to be returned by this function. + + Strings returned from hid_error() must not be freed by the user, + i.e. owned by HIDAPI library. + Device-specific error string may remain allocated at most until hid_close() is called. + Global error string may remain allocated at most until hid_exit() is called. + @ingroup API - @param device A device handle returned from hid_open(). + @param dev A device handle returned from hid_open(), + or NULL to get the last non-device-specific error + (e.g. for errors in hid_open() or hid_enumerate()). @returns - This function returns a string containing the last error - which occurred or NULL if none has occurred. + A string describing the last error (if any). */ - HID_API_EXPORT const wchar_t* HID_API_CALL hid_error(hid_device *device); + HID_API_EXPORT const wchar_t* HID_API_CALL hid_error(hid_device *dev); + + /** @brief Get a runtime version of the library. + + This function is thread-safe. + + @ingroup API + + @returns + Pointer to statically allocated struct, that contains version. + */ + HID_API_EXPORT const struct hid_api_version* HID_API_CALL hid_version(void); + + + /** @brief Get a runtime version string of the library. + + This function is thread-safe. + + @ingroup API + + @returns + Pointer to statically allocated string, that contains version string. + */ + HID_API_EXPORT const char* HID_API_CALL hid_version_str(void); #ifdef __cplusplus }