dmx_controller/dmx_controller.h Source File

1 [[PREPROC_HEADER_GUARD_BEGIN]]
2 
3 
4 #include <HC_API.h>
5 #include "controllers_utils.h"
6 
7 namespace ControlAPI {
8 
9 
10 
11  class HC_API DMXDeviceInfo : public DeviceInfo {
12  public:
13  HC_CLASS_META(DMXDeviceInfo)
14  HC_SWIG_SHAREDPTR(DMXDeviceInfo)
15 
16  friend class dmxController;
17 
18  virtual ~DMXDeviceInfo() = default;
19 
20  int DMXBaseAddress = 0;
21  int numChannels = 1;
22 
23  private:
24  };
25 
30  public:
31  HC_CLASS_DEVICECOMMANDPACKAGE_META(DMXDeviceCommandPackage)
32  virtual ~DMXDeviceCommandPackage() = default;
33  };
34 
39  public:
40  HC_CLASS_DEVICECOMMANDPACKAGE_META(DMXDeviceCommandLightingPackage)
41  virtual ~DMXDeviceCommandLightingPackage() = default;
42  };
43 
48  public:
49  HC_CLASS_DEVICECOMMANDPACKAGE_META(DMXDeviceCommand_HSLColor8Bit)
50  virtual ~DMXDeviceCommand_HSLColor8Bit() = default;
51 #ifdef HC_API_FEATURE_NETWORKING
52  virtual void syncFromNetwork(CommandStatus* command) override;
53 #endif
54  float h = 0.0f;
58 
62  float s = 0.5f;
63 
67  float l = 1.0f;
68  };
69 
74  public:
75  HC_CLASS_DEVICECOMMANDPACKAGE_META(DMXDeviceCommand_RGBColor8Bit)
76  virtual ~DMXDeviceCommand_RGBColor8Bit() = default;
77 
78  virtual void cloneFrom(DeviceCommandPackage* other) override;
79 #ifdef HC_API_FEATURE_NETWORKING
80  virtual void syncFromNetwork(CommandStatus* command) override;
81 #endif
82  float red = 0.0f;
83  float green = 0.0f;
84  float blue = 0.0f;
85  };
86 
91  public:
92  HC_CLASS_DEVICECOMMANDPACKAGE_META(DMXDeviceCommand_SetPersonality)
93  virtual ~DMXDeviceCommand_SetPersonality() = default;
94  int personalityIndex = 0;
95  };
96 
97  class dmxController_Internals;
101  class HC_API dmxController : public HardwareDeviceController {
102  public:
103  HC_CLASS_META(dmxController)
104  HC_SWIG_SHAREDPTR(dmxController)
105 
106 
107  virtual ~dmxController() = default;
108 
109 #ifdef HC_API_MACRO_EXCLUDE_DOCS
110  virtual bool init() override;
111 
112  virtual bool issueCommand(CommandStatus* command) override;
113 
114  uint8_t DMX512Buffer[512];
115 #endif
116 
117 
118 protected:
119 
120 
121 #ifdef HC_API_MACRO_EXCLUDE_DOCS
122  virtual bool SetLighting(int apiDeviceId, DMXDeviceCommandPackage* package);
123 
124  virtual bool SetColorHSL(int apiDeviceId, float hue, float sat, float lightness) ;
125  virtual bool SetColorRGB(int apiDeviceId, float red, float green, float blue) ;
126 
127  virtual bool SetDMXPersonality(int apiDeviceId, int personalityIndex) ;
128 
129 
130  std::shared_ptr<dmxController_Internals> internals_dmx;
131 #endif
132  };
133 
134 
135 }
136 
137 
138 [[PREPROC_HEADER_GUARD_END]]