diff --git a/Controllers/HyperXMousematController/HyperXMousematController.cpp b/Controllers/HyperXMousematController/HyperXMousematController.cpp index 78f33663..f1dba85a 100644 --- a/Controllers/HyperXMousematController/HyperXMousematController.cpp +++ b/Controllers/HyperXMousematController/HyperXMousematController.cpp @@ -11,15 +11,16 @@ #include -HyperXMousematController::HyperXMousematController(hid_device* dev_handle, const char* path) +HyperXMousematController::HyperXMousematController(hidapi_wrapper hid_wrapper, hid_device* dev_handle, const char* path) { + wrapper = hid_wrapper; dev = dev_handle; location = path; } HyperXMousematController::~HyperXMousematController() { - hid_close(dev); + wrapper.hid_close(dev); } std::string HyperXMousematController::GetDeviceLocation() @@ -30,7 +31,7 @@ std::string HyperXMousematController::GetDeviceLocation() std::string HyperXMousematController::GetSerialString() { wchar_t serial_string[128]; - int ret = hid_get_serial_number_string(dev, serial_string, 128); + int ret = wrapper.hid_get_serial_number_string(dev, serial_string, 128); if(ret != 0) { @@ -71,7 +72,7 @@ void HyperXMousematController::SendDirect /*-----------------------------------------------------*\ | Send packet | \*-----------------------------------------------------*/ - hid_send_feature_report(dev, buf, 65); + wrapper.hid_send_feature_report(dev, buf, 65); /*-----------------------------------------------------*\ | Zero out buffer | @@ -94,7 +95,7 @@ void HyperXMousematController::SendDirect /*-----------------------------------------------------*\ | Send packet | \*-----------------------------------------------------*/ - hid_send_feature_report(dev, buf, 65); + wrapper.hid_send_feature_report(dev, buf, 65); /*-----------------------------------------------------*\ | Zero out buffer | @@ -114,5 +115,5 @@ void HyperXMousematController::SendDirect buf[(i * 4) + 4] = RGBGetBValue(color_data[16 + i]); } - hid_send_feature_report(dev, buf, 65); + wrapper.hid_send_feature_report(dev, buf, 65); } diff --git a/Controllers/HyperXMousematController/HyperXMousematController.h b/Controllers/HyperXMousematController/HyperXMousematController.h index ba075840..df350900 100644 --- a/Controllers/HyperXMousematController/HyperXMousematController.h +++ b/Controllers/HyperXMousematController/HyperXMousematController.h @@ -10,14 +10,15 @@ #include "RGBController.h" #include -#include + +#include "hidapi_wrapper.h" #pragma once class HyperXMousematController { public: - HyperXMousematController(hid_device* dev_handle, const char* path); + HyperXMousematController(hidapi_wrapper hid_wrapper, hid_device* dev_handle, const char* path); ~HyperXMousematController(); std::string GetDeviceLocation(); @@ -29,6 +30,7 @@ public: ); private: + hidapi_wrapper wrapper; hid_device* dev; std::string location; }; diff --git a/Controllers/HyperXMousematController/HyperXMousematControllerDetect.cpp b/Controllers/HyperXMousematController/HyperXMousematControllerDetect.cpp index d31d27fc..1fc75299 100644 --- a/Controllers/HyperXMousematController/HyperXMousematControllerDetect.cpp +++ b/Controllers/HyperXMousematController/HyperXMousematControllerDetect.cpp @@ -3,7 +3,8 @@ #include "RGBController.h" #include "RGBController_HyperXMousemat.h" #include -#include + +#include "hidapi_wrapper.h" /*-----------------------------------------------------*\ | HyperX mousemat vendor IDs | @@ -22,13 +23,13 @@ * * \******************************************************************************************/ -void DetectHyperXMousematControllers(hid_device_info* info, const std::string& name) +void DetectHyperXMousematControllers(hidapi_wrapper wrapper, hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + hid_device* dev = wrapper.hid_open_path(info->path); if(dev) { - HyperXMousematController* controller = new HyperXMousematController(dev, info->path); + HyperXMousematController* controller = new HyperXMousematController(wrapper, dev, info->path); RGBController_HyperXMousemat* rgb_controller = new RGBController_HyperXMousemat(controller); rgb_controller->name = name; @@ -36,5 +37,5 @@ void DetectHyperXMousematControllers(hid_device_info* info, const std::string& n } } /* DetectHyperXMousematControllers() */ -REGISTER_HID_DETECTOR_I("HyperX Fury Ultra", DetectHyperXMousematControllers, HYPERX_VID, HYPERX_FURY_ULTRA_PID, 0); -REGISTER_HID_DETECTOR_IPU("HyperX Pulsefire Mat", DetectHyperXMousematControllers, HYPERX_VID_2, HYPERX_PULSEFIRE_PID, 1, 0xFF90, 0xFF00); +REGISTER_HID_WRAPPED_DETECTOR_I("HyperX Fury Ultra", DetectHyperXMousematControllers, HYPERX_VID, HYPERX_FURY_ULTRA_PID, 0); +REGISTER_HID_WRAPPED_DETECTOR_IPU("HyperX Pulsefire Mat", DetectHyperXMousematControllers, HYPERX_VID_2, HYPERX_PULSEFIRE_PID, 1, 0xFF90, 0xFF00);