#include "Detector.h" #include "SRGBmodsPicoController.h" #include "RGBController.h" #include "RGBController_SRGBmodsPico.h" #include #include #define SRGBMODS_PICO_VID 0x16D0 #define SRGBMODS_PICO_PID 0x1123 /******************************************************************************************\ * * * DetectSRGBmodsControllers * * * * Detect devices supported by the SRGBmods driver * * * \******************************************************************************************/ void DetectSRGBmodsControllers(hid_device_info* info, const std::string& name) { hid_device* dev = hid_open_path(info->path); if(dev) { wchar_t product[128]; hid_get_product_string(dev, product, 128); std::wstring product_str(product); /*-------------------------------------------------------------------------*\ | Test the product string in case this USB ID is reused for other Pi Pico | | projects | \*-------------------------------------------------------------------------*/ if(product_str == L"SRGBmods Pico LED Controller" || product_str == L"Pico LED Controller") { SRGBmodsPicoController* controller = new SRGBmodsPicoController(dev, info->path); RGBController_SRGBmodsPico* rgb_controller = new RGBController_SRGBmodsPico(controller); rgb_controller->name = name; ResourceManager::get()->RegisterRGBController(rgb_controller); } } } /* DetectSRGBmodsControllers() */ REGISTER_HID_DETECTOR("SRGBmods Pico LED Controller", DetectSRGBmodsControllers, SRGBMODS_PICO_VID, SRGBMODS_PICO_PID);