mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2026-02-02 11:21:05 -05:00
Rework to use only a single hid_device and DetectionManager API
This commit is contained in:
@@ -9,71 +9,29 @@
|
||||
| SPDX-License-Identifier: GPL-2.0-only |
|
||||
\*---------------------------------------------------------*/
|
||||
|
||||
#include "Detector.h"
|
||||
#include "DetectionManager.h"
|
||||
#include "HIDLampArrayController.h"
|
||||
#include "RGBController.h"
|
||||
#include "RGBController_HIDLampArray.h"
|
||||
#include <vector>
|
||||
#include <hidapi/hidapi.h>
|
||||
#include <hidapi.h>
|
||||
|
||||
static lamparray_hid_devs devs;
|
||||
|
||||
void DetectHIDLampArrayControllers(hid_device_info* info, const std::string& name)
|
||||
DetectedControllers DetectHIDLampArrayControllers(hid_device_info* info, const std::string& name)
|
||||
{
|
||||
hid_device* dev = hid_open_path(info->path);
|
||||
DetectedControllers detected_controllers;
|
||||
hid_device* dev;
|
||||
|
||||
dev = hid_open_path(info->path);
|
||||
|
||||
if(dev)
|
||||
{
|
||||
if(info->usage_page == 0x59 && info->usage == 0x01)
|
||||
{
|
||||
devs.hid_dev_LampArray = dev;
|
||||
}
|
||||
|
||||
if(info->usage_page == 0x59 && info->usage == 0x02)
|
||||
{
|
||||
devs.hid_dev_LampArrayAttributesReport = dev;
|
||||
}
|
||||
|
||||
if(info->usage_page == 0x59 && info->usage == 0x20)
|
||||
{
|
||||
devs.hid_dev_LampAttributesRequestReport = dev;
|
||||
}
|
||||
|
||||
if(info->usage_page == 0x59 && info->usage == 0x22)
|
||||
{
|
||||
devs.hid_dev_LampAttributesResponseReport = dev;
|
||||
}
|
||||
|
||||
if(info->usage_page == 0x59 && info->usage == 0x50)
|
||||
{
|
||||
devs.hid_dev_LampMultiUpdateReport = dev;
|
||||
}
|
||||
|
||||
if(info->usage_page == 0x59 && info->usage == 0x60)
|
||||
{
|
||||
devs.hid_dev_LampRangeUpdateReport = dev;
|
||||
}
|
||||
|
||||
if(info->usage_page == 0x59 && info->usage == 0x70)
|
||||
{
|
||||
devs.hid_dev_LampArrayControlReport = dev;
|
||||
}
|
||||
}
|
||||
|
||||
if(devs.hid_dev_LampArray
|
||||
&& devs.hid_dev_LampArrayAttributesReport
|
||||
&& devs.hid_dev_LampAttributesRequestReport
|
||||
&& devs.hid_dev_LampAttributesResponseReport
|
||||
&& devs.hid_dev_LampMultiUpdateReport
|
||||
&& devs.hid_dev_LampRangeUpdateReport
|
||||
&& devs.hid_dev_LampArrayControlReport)
|
||||
{
|
||||
HIDLampArrayController* controller = new HIDLampArrayController(&devs);
|
||||
HIDLampArrayController* controller = new HIDLampArrayController(dev, info->path, name);
|
||||
RGBController_HIDLampArray* rgb_controller = new RGBController_HIDLampArray(controller);
|
||||
rgb_controller->name = name;
|
||||
|
||||
ResourceManager::get()->RegisterRGBController(rgb_controller);
|
||||
detected_controllers.push_back(rgb_controller);
|
||||
}
|
||||
} /* DetectHIDLampArrayControllers() */
|
||||
|
||||
REGISTER_HID_DETECTOR("Arduino Zero HID Lamp Array Demo", DetectHIDLampArrayControllers, 0x2341, 0x804D);
|
||||
return(detected_controllers);
|
||||
}
|
||||
|
||||
REGISTER_HID_DETECTOR_PU("Arduino Zero HID Lamp Array Demo", DetectHIDLampArrayControllers, 0x2341, 0x804D, 0x59, 0x01);
|
||||
|
||||
Reference in New Issue
Block a user