Get MSI 3-zone keyboard working by pulling in libusb version of hidapi

This commit is contained in:
Adam Honse
2019-12-25 03:47:08 -06:00
parent eef95f50dd
commit 13e1da7fcd
8 changed files with 1947 additions and 22 deletions

View File

@@ -2,7 +2,7 @@
#include "RGBController.h"
#include "RGBController_MSI3Zone.h"
#include <vector>
#include <libusb-1.0/libusb.h>
#include "hidapi.h"
#define MSI_3_ZONE_KEYBOARD_VID 0x1770
#define MSI_3_ZONE_KEYBOARD_PID 0xFF00
@@ -18,17 +18,15 @@
void DetectMSI3ZoneControllers(std::vector<RGBController*>& rgb_controllers)
{
libusb_context * ctx;
libusb_init(&ctx);
hid_device* dev;
//Look for MSI/Steelseries 3-zone Keyboard
libusb_device_handle * dev = libusb_open_device_with_vid_pid(ctx, MSI_3_ZONE_KEYBOARD_VID, MSI_3_ZONE_KEYBOARD_PID);
hid_init();
dev = hid_open(MSI_3_ZONE_KEYBOARD_VID, MSI_3_ZONE_KEYBOARD_PID, 0);
if( dev )
{
libusb_detach_kernel_driver(dev, 1);
libusb_claim_interface(dev, 1);
MSI3ZoneController* controller = new MSI3ZoneController(dev);
RGBController_MSI3Zone* rgb_controller = new RGBController_MSI3Zone(controller);