/*---------------------------------------------------------*\ | ValveSteamMachineController_Linux.h | | | | Driver for Valve Steam Machine LEDs | | | | Adam Honse (calcprogrammer1@gmail.com) 23 Jul 2026 | | | | This file is part of the OpenRGB project | | SPDX-License-Identifier: GPL-2.0-or-later | \*---------------------------------------------------------*/ #pragma once #include #include #include class ValveSteamMachineController { public: ValveSteamMachineController(std::string dev_name); ~ValveSteamMachineController(); std::string GetName(); void AddLED(std::string led_path); size_t GetLEDCount(); std::string GetLEDPath(unsigned int led_idx); std::vector GetAvailableEffects(); bool SupportsEffects(); void SetLEDColor(unsigned int led_idx, unsigned char red, unsigned char grn, unsigned char blu); void SetLEDEffect(unsigned int led_idx, std::string effect); void SetEffect(std::string effect); void SetBrightness(unsigned int brightness); void SetDelay(unsigned int delay); private: std::string name; std::vector led_paths; std::vector led_brightness; std::vector led_multi_intensity; std::vector led_effect; std::ofstream led_brightness_scale; std::ofstream led_delay; std::vector available_effects; void ReadAvailableEffects(std::string first_led_path); };