#include "Detector.h" #include "LinuxLEDController.h" #include "RGBController.h" #include "RGBController_LinuxLED.h" #include "SettingsManager.h" #include #include #include #include /******************************************************************************************\ * * * DetectLinuxLEDControllers * * * * Detect devices supported by the LinuxLED driver * * * \******************************************************************************************/ void DetectLinuxLEDControllers(std::vector &rgb_controllers) { json linux_led_settings; /*-------------------------------------------------*\ | Get Linux LED settings from settings manager | \*-------------------------------------------------*/ linux_led_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("LinuxLEDDevices"); /*-------------------------------------------------*\ | If the LinuxLED settings contains devices, process| \*-------------------------------------------------*/ if(linux_led_settings.contains("devices")) { for(unsigned int device_idx = 0; device_idx < linux_led_settings["devices"].size(); device_idx++) { std::string name; std::string red_path; std::string green_path; std::string blue_path; if(linux_led_settings["devices"][device_idx].contains("name")) { name = linux_led_settings["devices"][device_idx]["name"]; } if(linux_led_settings["devices"][device_idx].contains("red_path")) { red_path = linux_led_settings["devices"][device_idx]["red_path"]; } if(linux_led_settings["devices"][device_idx].contains("green_path")) { green_path = linux_led_settings["devices"][device_idx]["green_path"]; } if(linux_led_settings["devices"][device_idx].contains("blue_path")) { blue_path = linux_led_settings["devices"][device_idx]["blue_path"]; } LinuxLEDController* controller = new LinuxLEDController(); controller->OpenRedPath(red_path); controller->OpenGreenPath(green_path); controller->OpenBluePath(blue_path); RGBController_LinuxLED* rgb_controller = new RGBController_LinuxLED(controller); rgb_controller->name = name; rgb_controllers.push_back(rgb_controller); } } } /* DetectLinuxLEDControllers() */ REGISTER_DETECTOR("Linux LED", DetectLinuxLEDControllers);