#ifndef NOOLITE_H #define NOOLITE_H #include #include #include "iusbdevice.h" namespace noolitelib { enum Command { Off = 0, DecraseBrightnes, On, IncreaseBrightnes, Switch, InvertBrightnes, Set, CallScenario, SaveScenario, Unbind, StopColorSelection, Bind = 15, // Commands for SD111-180 only ColorSelection, ColorSwitch, ModeSwitch, EffectSpeed }; using Params = std::vector; class Noolite { public: Noolite(IUsbDevice *device = nullptr); ~Noolite(); bool sendCommand(unsigned char channel, Command command, const Params ¶ms = Params()); private: IUsbDevice *m_device; std::optional composeCommand(unsigned char channel, Command command, const Params ¶ms) const; }; } #endif // NOOLITE_H