Move HID detector calls to RunHIDDetector/RunHIDWrappedDetector functions and return controller list from detector functions

This commit is contained in:
Adam Honse
2026-01-12 19:05:21 -06:00
parent c46540339a
commit 8f29ad126e
191 changed files with 4362 additions and 4242 deletions

View File

@@ -3,48 +3,48 @@
| |
| Driver for the MNT Reform keyboards |
| |
| Christian Heller <c.heller@plomlompom.de> 7 Aug 2024 |
| Christian Heller <c.heller@plomlompom.de> 07 Aug 2024 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "DetectionManager.h"
#include "LogManager.h"
#include <hidapi.h>
#include "MNTReformKeyboardController.h"
#include "MNTPocketReformKeyboardController.h"
#include "RGBController_MNTReformKeyboard.h"
#include "RGBController_MNTPocketReformKeyboard.h"
#define PID_KBD_REFORM 0x6D02
#define PID_KBD_POCKET_REFORM 0x6D06
#define PID_KBD_REFORM 0x6D02
#define PID_KBD_POCKET_REFORM 0x6D06
void DetectMNTKeyboardControllers(hid_device_info *info, const std::string &name)
DetectedControllers DetectMNTKeyboardControllers(hid_device_info *info, const std::string &name)
{
LOG_DEBUG("[%s] trying to detect … ", name.c_str());
hid_device *dev = hid_open_path(info->path);
DetectedControllers detected_controllers;
hid_device* dev;
dev = hid_open_path(info->path);
if(dev)
{
LOG_DEBUG("[%s] found at %s", name.c_str(), info->path);
if(info->product_id == PID_KBD_REFORM)
{
MNTReformKeyboardController *controller = new MNTReformKeyboardController(dev, info->path);
RGBController_MNTReformKeyboard *rgb_controller = new RGBController_MNTReformKeyboard(controller);
DetectionManager::get()->RegisterRGBController(rgb_controller);
MNTReformKeyboardController * controller = new MNTReformKeyboardController(dev, info->path);
RGBController_MNTReformKeyboard * rgb_controller = new RGBController_MNTReformKeyboard(controller);
detected_controllers.push_back(rgb_controller);
}
else if(info->product_id == PID_KBD_POCKET_REFORM)
{
MNTPocketReformKeyboardController *controller = new MNTPocketReformKeyboardController(dev, info->path);
RGBController_MNTPocketReformKeyboard *rgb_controller = new RGBController_MNTPocketReformKeyboard(controller);
DetectionManager::get()->RegisterRGBController(rgb_controller);
MNTPocketReformKeyboardController * controller = new MNTPocketReformKeyboardController(dev, info->path);
RGBController_MNTPocketReformKeyboard * rgb_controller = new RGBController_MNTPocketReformKeyboard(controller);
detected_controllers.push_back(rgb_controller);
}
else
{
return;
}
LOG_DEBUG("[%s] successfully registered", name.c_str());
}
return(detected_controllers);
}
REGISTER_HID_DETECTOR_IPU("MNT Reform Keyboard", DetectMNTKeyboardControllers, KBD_VID, PID_KBD_REFORM, KBD_INTERFACE, HID_USAGE_PAGE_DESKTOP, HID_USAGE_DESKTOP_KEYBOARD);