Add support for SteelSeries Call of Duty

This commit is contained in:
Přemysl Eric Janouch 2013-06-22 00:38:02 +02:00
parent 22680c4c9d
commit 47a80ce71e
2 changed files with 37 additions and 3 deletions

5
README
View File

@ -10,6 +10,11 @@ If you don't fancy command line tools, there's also a basic GTK+ frontend
available. On Ubuntu and its derivates, you should be able to find it in your
System Settings.
Supported devices
=================
- SteelSeries Sensei Raw
- SteelSeries Call of Duty: Black Ops II
Installation
============
Build dependencies: cmake >= 2.8.5, help2man, libusb >= 1.0,

View File

@ -81,10 +81,33 @@ out:
return handle;
}
/** Search for a device under various product ID's. */
static libusb_device_handle *
find_device_list (int vendor,
const int *products, size_t n_products, int *error)
{
int err = 0;
libusb_device_handle *handle;
while (n_products--)
{
handle = find_device (vendor, *products++, &err);
if (handle)
return handle;
if (err)
break;
}
if (error != NULL && err != 0)
*error = err;
return NULL;
}
// --- Device configuration ----------------------------------------------------
#define USB_VENDOR_STEELSERIES 0x1038
#define USB_PRODUCT_STEELSERIES_SENSEI 0x1369
#define USB_PRODUCT_STEELSERIES_SENSEI_RAW 0x1369
#define USB_PRODUCT_STEELSERIES_COD_BO2 0x136f
#define USB_GET_REPORT 0x01
#define USB_SET_REPORT 0x09
@ -511,9 +534,15 @@ main (int argc, char *argv[])
ERROR (error_0, "libusb initialisation failed: %s\n",
libusb_error_name (result));
static const int products[] =
{
USB_PRODUCT_STEELSERIES_SENSEI_RAW,
USB_PRODUCT_STEELSERIES_COD_BO2
};
result = 0;
libusb_device_handle *device = find_device
(USB_VENDOR_STEELSERIES, USB_PRODUCT_STEELSERIES_SENSEI, &result);
libusb_device_handle *device = find_device_list (USB_VENDOR_STEELSERIES,
products, sizeof products / sizeof products[0], &result);
if (!device)
{
if (result)