[[PREPROC_HEADER_GUARD_BEGIN]]
#include <HC_API.h>
#include "controllers_utils.h"
namespace ControlAPI {
class HC_API DMXDeviceInfo : public DeviceInfo {
public:
HC_CLASS_META(DMXDeviceInfo)
HC_SWIG_SHAREDPTR(DMXDeviceInfo)
friend class dmxController;
virtual ~DMXDeviceInfo() = default;
int DMXBaseAddress = 0;
int numChannels = 1;
private:
};
class HC_API DMXDeviceCommandPackage : public DeviceCommandPackage {
public:
HC_CLASS_DEVICECOMMANDPACKAGE_META(DMXDeviceCommandPackage)
virtual ~DMXDeviceCommandPackage() = default;
};
class HC_API DMXDeviceCommandLightingPackage : public DMXDeviceCommandPackage {
public:
HC_CLASS_DEVICECOMMANDPACKAGE_META(DMXDeviceCommandLightingPackage)
virtual ~DMXDeviceCommandLightingPackage() = default;
};
class HC_API DMXDeviceCommand_HSLColor8Bit : public DMXDeviceCommandLightingPackage {
public:
HC_CLASS_DEVICECOMMANDPACKAGE_META(DMXDeviceCommand_HSLColor8Bit)
virtual ~DMXDeviceCommand_HSLColor8Bit() = default;
#ifdef HC_API_FEATURE_NETWORKING
virtual void syncFromNetwork(CommandStatus* command) override;
#endif
float h = 0.0f;
float s = 0.5f;
float l = 1.0f;
};
class HC_API DMXDeviceCommand_RGBColor8Bit : public DMXDeviceCommandLightingPackage {
public:
HC_CLASS_DEVICECOMMANDPACKAGE_META(DMXDeviceCommand_RGBColor8Bit)
virtual ~DMXDeviceCommand_RGBColor8Bit() = default;
virtual void cloneFrom(DeviceCommandPackage* other) override;
#ifdef HC_API_FEATURE_NETWORKING
virtual void syncFromNetwork(CommandStatus* command) override;
#endif
float red = 0.0f;
float green = 0.0f;
float blue = 0.0f;
};
class HC_API DMXDeviceCommand_SetPersonality : public DMXDeviceCommandPackage {
public:
HC_CLASS_DEVICECOMMANDPACKAGE_META(DMXDeviceCommand_SetPersonality)
virtual ~DMXDeviceCommand_SetPersonality() = default;
int personalityIndex = 0;
};
class dmxController_Internals;
class HC_API dmxController : public HardwareDeviceController {
public:
HC_CLASS_META(dmxController)
HC_SWIG_SHAREDPTR(dmxController)
virtual ~dmxController() = default;
#ifdef HC_API_MACRO_EXCLUDE_DOCS
virtual bool init() override;
virtual bool issueCommand(CommandStatus* command) override;
uint8_t DMX512Buffer[512];
#endif
protected:
#ifdef HC_API_MACRO_EXCLUDE_DOCS
virtual bool SetLighting(int apiDeviceId, DMXDeviceCommandPackage* package);
virtual bool SetColorHSL(int apiDeviceId, float hue, float sat, float lightness) ;
virtual bool SetColorRGB(int apiDeviceId, float red, float green, float blue) ;
virtual bool SetDMXPersonality(int apiDeviceId, int personalityIndex) ;
std::shared_ptr<dmxController_Internals> internals_dmx;
#endif
};
}
[[PREPROC_HEADER_GUARD_END]]