diff --git a/libsrc/leddevice/LedDeviceAPA102.h b/libsrc/leddevice/LedDeviceAPA102.h new file mode 100644 index 00000000..d707ebdb --- /dev/null +++ b/libsrc/leddevice/LedDeviceAPA102.h @@ -0,0 +1,41 @@ +#pragma once + +// STL includes +#include + +// hyperion incluse +#include "LedSpiDevice.h" + +/// +/// Implementation of the LedDevice interface for writing to APA102 led device. +/// +/// APA102 is +/// +class LedDeviceAPA102 : public LedSpiDevice +{ +public: + /// + /// Constructs the LedDevice for a string containing leds of the type APA102 + /// + /// @param outputDevice The name of the output device (eg '/etc/SpiDev.0.0') + /// @param baudrate The used baudrate for writing to the output device + /// + LedDeviceAPA102(const std::string& outputDevice, + const unsigned baudrate); + + /// + /// Writes the led color values to the led-device + /// + /// @param ledValues The color-value per led + /// @return Zero on succes else negative + /// + virtual int write(const std::vector &ledValues); + + /// Switch the leds off + virtual int switchOff(); + +private: + + /// the number of leds (needed when switching off) + size_t mLedCount; +};