#ifndef __INC_DMX_H #define __INC_DMX_H #include "FastLED.h" #ifdef DmxSimple_h #include #define HAS_DMX_SIMPLE ///@ingroup chipsets ///@{ FASTLED_NAMESPACE_BEGIN // note - dmx simple must be included before FastSPI for this code to be enabled template class DMXSimpleController : public CPixelLEDController { public: // initialize the LED controller virtual void init() { DmxSimple.usePin(DATA_PIN); } protected: virtual void showPixels(PixelController & pixels) { int iChannel = 1; while(pixels.has(1)) { DmxSimple.write(iChannel++, pixels.loadAndScale0()); DmxSimple.write(iChannel++, pixels.loadAndScale1()); DmxSimple.write(iChannel++, pixels.loadAndScale2()); pixels.advanceData(); pixels.stepDithering(); } } }; FASTLED_NAMESPACE_END #endif #ifdef DmxSerial_h #include FASTLED_NAMESPACE_BEGIN template class DMXSerialController : public CPixelLEDController { public: // initialize the LED controller virtual void init() { DMXSerial.init(DMXController); } virtual void showPixels(PixelController & pixels) { int iChannel = 1; while(pixels.has(1)) { DMXSerial.write(iChannel++, pixels.loadAndScale0()); DMXSerial.write(iChannel++, pixels.loadAndScale1()); DMXSerial.write(iChannel++, pixels.loadAndScale2()); pixels.advanceData(); pixels.stepDithering(); } } }; FASTLED_NAMESPACE_END ///@} #define HAS_DMX_SERIAL #endif #endif