52 lines
830 B
C++
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 ¶ms = Params());
|
|
|
|
private:
|
|
IUsbDevice *m_device;
|
|
|
|
std::optional<Data> composeCommand(unsigned char channel, Command command, const Params ¶ms) const;
|
|
};
|
|
|
|
}
|
|
|
|
#endif // NOOLITE_H
|