#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 the LedDeviceMultiLightpack /// LedDeviceMultiLightpack(); /// /// Destructor of the LedDevice; closes the output device if it is open /// virtual ~LedDeviceMultiLightpack(); /// /// Opens and configures the output device7 /// /// @return Zero on succes else negative /// int open(); /// /// 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); /// /// Switch the leds off /// /// @return Zero on success else negative /// virtual int switchOff(); private: static std::list getLightpackSerials(); static std::string getString(libusb_device * device, int stringDescriptorIndex); private: /// buffer for led data std::vector _lightpacks; };