FireSync API
 All Classes Files Functions Variables Typedefs Friends Macros Modules Pages
kHxLight.h
Go to the documentation of this file.
1 
8 #ifndef K_FIRESYNC_HX_LIGHT_H
9 #define K_FIRESYNC_HX_LIGHT_H
10 
11 #include <kFireSync/kNodeDef.h>
12 #include <kFireSync/Utils/kLdModel.h>
13 #include <kFireSync/Hardware/kHxLight.x.h>
14 
22 //typedef kObject kHxLight; --forward-declared in kFsDef.x.h
23 
24 kInlineFx(kHxNode) kHxLight_Node(kHxLight light)
25 {
26  kObj(kHxLight, light);
27 
28  return obj->node;
29 }
30 
31 kInlineFx(kSize) kHxLight_Index(kHxLight light)
32 {
33  kObj(kHxLight, light);
34 
35  return obj->index;
36 }
37 
38 kInlineFx(kLightModel) kHxLight_Model(kHxLight light)
39 {
40  kObj(kHxLight, light);
41 
42  return kLdModel_LightModel(obj->info);
43 }
44 
45 kInlineFx(kLightDiodeModel) kHxLight_DiodeModel(kHxLight light)
46 {
47  kObj(kHxLight, light);
48 
49  return kLdModel_DiodeModel(obj->info);
50 }
51 
52 kInlineFx(kLightCapability) kHxLight_Capabilities(kHxLight light)
53 {
54  kObj(kHxLight, light);
55 
56  return obj->capabilities;
57 }
58 
59 kInlineFx(kStatus) kHxLight_Enable(kHxLight light, kBool enabled)
60 {
61  kObj(kHxLight, light);
62 
63  obj->enabled = enabled;
64 
65  return kOK;
66 }
67 
68 kInlineFx(kBool) kHxLight_IsEnabled(kHxLight light)
69 {
70  kObj(kHxLight, light);
71 
72  return obj->enabled;
73 }
74 
75 kInlineFx(kStatus) kHxLight_SetControl(kHxLight light, kLightControl type)
76 {
77  kObj(kHxLight, light);
78 
79  obj->controlType = type;
80 
81  return kOK;
82 }
83 
84 kInlineFx(kLightControl) kHxLight_Control(kHxLight light)
85 {
86  kObj(kHxLight, light);
87 
88  return obj->controlType;
89 }
90 
91 kInlineFx(kStatus) kHxLight_SetControlId(kHxLight light, kSize id)
92 {
93  kObj(kHxLight, light);
94 
95  obj->controlId = id;
96 
97  return kOK;
98 }
99 
100 kInlineFx(kSize) kHxLight_ControlId(kHxLight light)
101 {
102  kObj(kHxLight, light);
103 
104  return obj->controlId;
105 }
106 
107 kInlineFx(kStatus) kHxLight_SetIntensity(kHxLight light, k64f intensity)
108 {
109  return xkHxLight_VTable(light)->VSetIntensity(light, intensity);
110 }
111 
112 kInlineFx(k64f) kHxLight_Intensity(kHxLight light)
113 {
114  kObj(kHxLight, light);
115 
116  return obj->intensity;
117 }
118 
119 kInlineFx(k64f) kHxLight_MinIntensity(kHxLight light)
120 {
121  kObj(kHxLight, light);
122 
123  return obj->minIntensity;
124 }
125 
126 kInlineFx(kStatus) kHxLight_SetMask(kHxLight light, kLightMask mask)
127 {
128  kObj(kHxLight, light);
129 
130  obj->mask = mask;
131 
132  return kOK;
133 }
134 
135 kInlineFx(kLightMask) kHxLight_Mask(kHxLight light)
136 {
137  kObj(kHxLight, light);
138 
139  return obj->mask;
140 }
141 
142 kInlineFx(kStatus) kHxLight_SetMaskId(kHxLight light, k32u id)
143 {
144  kObj(kHxLight, light);
145 
146  obj->maskId = id;
147 
148  return kOK;
149 }
150 
151 kInlineFx(k32u) kHxLight_MaskId(kHxLight light)
152 {
153  kObj(kHxLight, light);
154 
155  return obj->maskId;
156 }
157 
158 kInlineFx(kStatus) kHxLight_SetMaskPolarity(kHxLight light, kBool isActiveHigh)
159 {
160  kObj(kHxLight, light);
161 
162  obj->maskPolarity = isActiveHigh;
163 
164  return kOK;
165 }
166 
167 kInlineFx(kBool) kHxLight_MaskPolarity(kHxLight light)
168 {
169  kObj(kHxLight, light);
170 
171  return obj->maskPolarity;
172 }
173 
174 kInlineFx(kStatus) kHxLight_EnablePowerSaver(kHxLight light, kBool enabled)
175 {
176  kObj(kHxLight, light);
177 
178  obj->powerSaverEnabled = enabled;
179 
180  return kOK;
181 }
182 
183 kInlineFx(kBool) kHxLight_PowerSaverEnabled(kHxLight light)
184 {
185  kObj(kHxLight, light);
186 
187  return obj->powerSaverEnabled;
188 }
189 
190 kFsFx(k32u) kHxLight_PrimeCount(kHxLight light);
191 
192 kFsFx(kStatus) kHxLight_PrimePeriod(kHxLight light, k64u* delay, k64u* exposure, k64u* gap);
193 
194 kInlineFx(kStatus) kHxLight_SetStateCount(kHxLight light, kSize count)
195 {
196  return xkHxLight_VTable(light)->VSetStateCount(light, count);
197 }
198 
199 kInlineFx(kSize) kHxLight_StateCount(kHxLight light)
200 {
201  kObj(kHxLight, light);
202 
203  return kArrayList_Count(obj->states);
204 }
205 
206 kInlineFx(kHxLightState) kHxLight_StateAt(kHxLight light, kSize index)
207 {
208  kObj(kHxLight, light);
209 
210  return kArrayList_AsT(obj->states, index, kHxLightState);
211 }
212 
213 kInlineFx(kStatus) kHxLight_ClearExtensions(kHxLight light)
214 {
215  kObj(kHxLight, light);
216 
217  return kArrayList_Purge(obj->extensions);
218 }
219 
220  //ownership of 'extension' configuration argument not transferred;
221 kInlineFx(kStatus) kHxLight_AddExtension(kHxLight light, kLightExt extension)
222 {
223  return xkHxLight_VTable(light)->VAddExtension(light, extension);
224 }
225 
226 kInlineFx(kSize) kHxLight_ExtensionCount(kHxLight light)
227 {
228  kObj(kHxLight, light);
229 
230  return kArrayList_Count(obj->extensions);
231 }
232 
233 //produces object that must be destroyed by caller
234 kFsFx(kStatus) kHxLight_ExtensionAt(kHxLight light, kSize index, kLightExt* extension, kAlloc allocator);
235 
236 kFsFx(kBool) kHxLight_HasOverrideExt(kHxLight light);
237 
238 kInlineFx(kStatus) kHxLight_Override(kHxLight light, const kLightOverrideItem* overrides, kSize count)
239 {
240  return xkHxLight_VTable(light)->VOverride(light, overrides, count);
241 }
242 
243 kInlineFx(kStatus) kHxLight_SetOutputState(kHxLight light, kBool state)
244 {
245  return xkHxLight_VTable(light)->VSetOutputState(light, state);
246 }
247 
248 kInlineFx(kStatus) kHxLight_Stats(kHxLight light, kLightStats* stats)
249 {
250  return xkHxLight_VTable(light)->VStats(light, stats);
251 }
252 
253 kInlineFx(kStatus) kHxLight_Trigger(kHxLight light)
254 {
255  return xkHxLight_VTable(light)->VTrigger(light);
256 }
257 
258 kInlineFx(kStatus) kHxLight_LockOut(kHxLight light, kBool shouldLock)
259 {
260  return xkHxLight_VTable(light)->VLockOut(light, shouldLock);
261 }
262 
263 kInlineFx(kStatus) kHxLight_Clear(kHxLight light)
264 {
265  return xkHxLight_VTable(light)->VClear(light);
266 }
267 
268 #endif
kLightModel kLdModel_LightModel(kLdModel model)
Returns the light model enumerator corresponding to this object.
Represents light override item.
Definition: kNodeDef.h:979
#define kInlineFx(TYPE)
Represents light run-time statistics.
Definition: kNodeDef.h:1052
Essential declarations related to FireSync nodes.
Abstract base class for hardware node classes.
#define kObj(TypeName_T, T_object)
Represents light control modes.
#define kArrayList_AsT(kArrayList_list, kSize_index, T)
#define kOK
Represents light mask sources.
Represents supported light device types.
Abstract base class for light control extension parameters.
Represents supported light diode types.
kLightDiodeModel kLdModel_DiodeModel(kLdModel model)
Returns the diode model enumerator corresponding to this object.