// STL includes #include #include #include // Linux includes #include #include // hyperion local includes #include "LedDeviceWs2801.h" LedDeviceWs2801::LedDeviceWs2801(const Json::Value &deviceConfig) : ProviderSpi(deviceConfig) { } LedDevice* LedDeviceWs2801::construct(const Json::Value &deviceConfig) { return new LedDeviceWs2801(deviceConfig); } int LedDeviceWs2801::write(const std::vector &ledValues) { _ledCount = ledValues.size(); const unsigned dataLen = ledValues.size() * sizeof(ColorRgb); const uint8_t * dataPtr = reinterpret_cast(ledValues.data()); return writeBytes(dataLen, dataPtr); } int LedDeviceWs2801::switchOff() { return write(std::vector(_ledCount, ColorRgb{0,0,0})); }