diff --git a/Controllers/DasKeyboardController/DasKeyboardControllerDetect.cpp b/Controllers/DasKeyboardController/DasKeyboardControllerDetect.cpp index 7e4821d47..d73ad9b07 100644 --- a/Controllers/DasKeyboardController/DasKeyboardControllerDetect.cpp +++ b/Controllers/DasKeyboardController/DasKeyboardControllerDetect.cpp @@ -66,5 +66,28 @@ void DetectDasKeyboardControllers(hid_device_info *info_in, const std::string &n } } /* DetectDasKeyboardControllers() */ -REGISTER_HID_DETECTOR_I("Das Keyboard Q4 RGB", DetectDasKeyboardControllers, DAS_KEYBOARD_VID, DAS_KEYBOARD_Q4_PID, 0); -REGISTER_HID_DETECTOR_I("Das Keyboard Q5 RGB", DetectDasKeyboardControllers, DAS_KEYBOARD_VID, DAS_KEYBOARD_Q5_PID, 0); +void DetectDas4QKeyboard(hid_device_info *info, const std::string &name) +{ + hid_device *dev = hid_open_path(info->path); + + if(dev) + { + DasKeyboardController *controller = new DasKeyboardController(dev, info->path); + + if(controller->GetLayoutString() == "NONE") + { + delete controller; + } + else + { + RGBController_DasKeyboard *rgb_controller = new RGBController_DasKeyboard(controller); + rgb_controller->SetupZones(); + rgb_controller->name = name; + + ResourceManager::get()->RegisterRGBController(rgb_controller); + } + } +} /* DetectDas4QKeyboard() */ + +REGISTER_HID_DETECTOR_IPU("Das Keyboard Q4 RGB", DetectDas4QKeyboard, DAS_KEYBOARD_VID, DAS_KEYBOARD_Q4_PID, 1, 0x01, 0x80); +REGISTER_HID_DETECTOR_I ("Das Keyboard Q5 RGB", DetectDasKeyboardControllers, DAS_KEYBOARD_VID, DAS_KEYBOARD_Q5_PID, 1);