#pragma once // stl includes #include #include #include #include // libusb include #include // Hyperion includes #include #include "LedDeviceLightpack.h" /// /// LedDevice implementation for multiple lightpack devices /// class LedDeviceMultiLightpack : public LedDevice { public: /// /// Constructs specific LedDevice /// /// @param deviceConfig json device config /// LedDeviceMultiLightpack(const Json::Value &); /// /// Destructor of the LedDevice; closes the output device if it is open /// virtual ~LedDeviceMultiLightpack(); /// constructs leddevice static LedDevice* construct(const Json::Value &deviceConfig); /// /// Opens and configures the output device7 /// /// @return Zero on succes else negative /// int open(); /// /// Switch the leds off /// /// @return Zero on success else negative /// virtual int switchOff(); private: /// /// Writes the RGB-Color values to the leds. /// /// @param[in] ledValues The RGB-color per led /// /// @return Zero on success else negative /// virtual int write(const std::vector& ledValues); static std::list getLightpackSerials(); static std::string getString(libusb_device * device, int stringDescriptorIndex); /// buffer for led data std::vector _lightpacks; };