mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2025-12-24 07:47:49 -05:00
59 lines
3.2 KiB
C++
59 lines
3.2 KiB
C++
/*---------------------------------------------------------*\
|
|
| HyperXMousematControllerDetect.cpp |
|
|
| |
|
|
| Detector for HyperX mousemat |
|
|
| |
|
|
| Adam Honse (CalcProgrammer1) 25 Oct 2020 |
|
|
| |
|
|
| This file is part of the OpenRGB project |
|
|
| SPDX-License-Identifier: GPL-2.0-or-later |
|
|
\*---------------------------------------------------------*/
|
|
|
|
#include "Detector.h"
|
|
#include "HyperXMousematController.h"
|
|
#include "RGBController_HyperXMousemat.h"
|
|
#include "hidapi_wrapper.h"
|
|
|
|
/*-----------------------------------------------------*\
|
|
| HyperX mousemat vendor IDs |
|
|
\*-----------------------------------------------------*/
|
|
#define HYPERX_VID 0x0951
|
|
#define HYPERX_FURY_ULTRA_PID 0x1705
|
|
#define HYPERX_FURY_A_XL_PID 0x1741
|
|
|
|
#define HYPERX_VID_2 0x03F0
|
|
#define HYPERX_PULSEFIRE_PID 0x0F8D
|
|
|
|
/******************************************************************************************\
|
|
* *
|
|
* DetectHyperXMousematControllers *
|
|
* *
|
|
* Tests the USB address to see if a HyperX Mousemat controller exists there. *
|
|
* *
|
|
\******************************************************************************************/
|
|
|
|
void DetectHyperXMousematControllers(hidapi_wrapper wrapper, hid_device_info* info, const std::string& name)
|
|
{
|
|
hid_device* dev = wrapper.hid_open_path(info->path);
|
|
|
|
if(dev)
|
|
{
|
|
int first_zone_leds_count = info->product_id == HYPERX_FURY_A_XL_PID ? 2 : 15;
|
|
int second_zone_leds_count = info->product_id == HYPERX_FURY_A_XL_PID ? 0 : 5;
|
|
|
|
HyperXMousematController* controller = new HyperXMousematController(wrapper, dev, info->path, name);
|
|
RGBController_HyperXMousemat* rgb_controller = new RGBController_HyperXMousemat(controller, first_zone_leds_count, second_zone_leds_count);
|
|
|
|
ResourceManager::get()->RegisterRGBController(rgb_controller);
|
|
}
|
|
} /* DetectHyperXMousematControllers() */
|
|
|
|
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);
|
|
|
|
#ifdef _WIN32
|
|
REGISTER_HID_WRAPPED_DETECTOR_IPU("HyperX Pulsefire Mat RGB Mouse Pad XL", DetectHyperXMousematControllers, HYPERX_VID, HYPERX_FURY_A_XL_PID, 1, 0xFF90, 0xFF00);
|
|
#else
|
|
REGISTER_HID_WRAPPED_DETECTOR_IPU("HyperX Pulsefire Mat RGB Mouse Pad XL", DetectHyperXMousematControllers, HYPERX_VID, HYPERX_FURY_A_XL_PID, 0, 0x0C, 0x01);
|
|
#endif
|