Files
noolitelib/include/noolite.h

52 lines
830 B
C++

#ifndef NOOLITE_H
#define NOOLITE_H
#include <vector>
#include <optional>
#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<int>;
class Noolite
{
public:
Noolite(IUsbDevice *device = nullptr);
~Noolite();
bool sendCommand(unsigned char channel, Command command, const Params &params = Params());
private:
IUsbDevice *m_device;
std::optional<Data> composeCommand(unsigned char channel, Command command, const Params &params) const;
};
}
#endif // NOOLITE_H