FireSync API
 All Classes Files Functions Variables Typedefs Friends Macros Modules Pages
kHxProjector.h
Go to the documentation of this file.
1 
8 #ifndef K_FIRESYNC_HX_PROJECTOR_H
9 #define K_FIRESYNC_HX_PROJECTOR_H
10 
11 #include <kFireSync/kNodeDef.h>
13 #include <kFireSync/Hardware/kHxProjector.x.h>
14 
22 //typedef kObject kHxProjector; --forward-declared in kFsDef.x.h
23 
24 kInlineFx(kHxNode) kHxProjector_Node(kHxProjector projector)
25 {
26  kObj(kHxProjector, projector);
27 
28  return obj->node;
29 }
30 
31 kInlineFx(kSize) kHxProjector_Index(kHxProjector projector)
32 {
33  kObj(kHxProjector, projector);
34 
35  return obj->index;
36 }
37 
38 kInlineFx(kProjectorInfo) kHxProjector_Info(kHxProjector projector)
39 {
40  kObj(kHxProjector, projector);
41 
42  return obj->info;
43 }
44 
45 kInlineFx(kProjectorModel) kHxProjector_Model(kHxProjector projector)
46 {
47  kObj(kHxProjector, projector);
48 
49  return kProjectorInfo_Model(obj->info);
50 }
51 
52 kInlineFx(k64f) kHxProjector_PixelClockFrequency(kHxProjector projector)
53 {
54  kObj(kHxProjector, projector);
55 
56  return obj->pixelClockFrequency;
57 }
58 
59 kInlineFx(kBool) kHxProjector_IsConnected(kHxProjector projector)
60 {
61  return xkHxProjector_VTable(projector)->VIsConnected(projector);
62 }
63 
64 kInlineFx(kStatus) kHxProjector_Enable(kHxProjector projector, kBool enabled)
65 {
66  kObj(kHxProjector, projector);
67 
68  obj->enabled = enabled;
69 
70  return kOK;
71 }
72 
73 kInlineFx(kBool) kHxProjector_IsEnabled(kHxProjector projector)
74 {
75  kObj(kHxProjector, projector);
76 
77  return obj->enabled;
78 }
79 
80 kInlineFx(kStatus) kHxProjector_SetControl(kHxProjector projector, kProjectorControl type)
81 {
82  kObj(kHxProjector, projector);
83 
84  obj->controlType = type;
85 
86  return kOK;
87 }
88 
89 kInlineFx(kProjectorControl) kHxProjector_Control(kHxProjector projector)
90 {
91  kObj(kHxProjector, projector);
92 
93  return obj->controlType;
94 }
95 
96 kInlineFx(kStatus) kHxProjector_SetControlId(kHxProjector projector, kSize id)
97 {
98  kObj(kHxProjector, projector);
99 
100  obj->controlId = id;
101 
102  return kOK;
103 }
104 
105 kInlineFx(kSize) kHxProjector_ControlId(kHxProjector projector)
106 {
107  kObj(kHxProjector, projector);
108 
109  return obj->controlId;
110 }
111 
112 kInlineFx(kStatus) kHxProjector_EnableDynamicFrameRate(kHxProjector projector, kBool enable)
113 {
114  kObj(kHxProjector, projector);
115 
116  obj->dynamicFrameRate = enable;
117 
118  return kOK;
119 }
120 
121 kInlineFx(kBool) kHxProjector_IsDynamicFrameRateEnabled(kHxProjector projector)
122 {
123  kObj(kHxProjector, projector);
124 
125  return obj->dynamicFrameRate;
126 }
127 
128 kInlineFx(kStatus) kHxProjector_EnableLightOutput(kHxProjector projector, kBool enable)
129 {
130  kObj(kHxProjector, projector);
131 
132  obj->lightOutput = enable;
133 
134  return kOK;
135 }
136 
137 kInlineFx(kBool) kHxProjector_LightOutputEnabled(kHxProjector projector)
138 {
139  kObj(kHxProjector, projector);
140 
141  return obj->lightOutput;
142 }
143 
144 kInlineFx(kStatus) kHxProjector_EnableAutoShutdown(kHxProjector projector, kBool enable)
145 {
146  kObj(kHxProjector, projector);
147 
148  obj->autoShutdown = enable;
149 
150  return kOK;
151 }
152 
153 kInlineFx(kBool) kHxProjector_AutoShutdownEnabled(kHxProjector projector)
154 {
155  kObj(kHxProjector, projector);
156 
157  return obj->autoShutdown;
158 }
159 
160 kInlineFx(kStatus) kHxProjector_SetPatternCount(kHxProjector projector, kSize patternCount)
161 {
162  kObj(kHxProjector, projector);
163 
164  obj->patternCount = patternCount;
165 
166  return kOK;
167 }
168 
169 kInlineFx(kSize) kHxProjector_PatternCount(kHxProjector projector)
170 {
171  kObj(kHxProjector, projector);
172 
173  return obj->patternCount;
174 }
175 
176 kInlineFx(kStatus) kHxProjector_SetBitDepth(kHxProjector projector, kSize bitDepth)
177 {
178  kObj(kHxProjector, projector);
179 
180  obj->bitDepth = bitDepth;
181 
182  return kOK;
183 }
184 
185 kInlineFx(kSize) kHxProjector_BitDepth(kHxProjector projector)
186 {
187  kObj(kHxProjector, projector);
188 
189  return obj->bitDepth;
190 }
191 
192 kInlineFx(kStatus) kHxProjector_SetPatternMode(kHxProjector projector, kProjectorPatternMode mode)
193 {
194  kObj(kHxProjector, projector);
195 
196  obj->patternMode = mode;
197 
198  return kOK;
199 }
200 
201 kInlineFx(kProjectorPatternMode) kHxProjector_PatternMode(kHxProjector projector)
202 {
203  kObj(kHxProjector, projector);
204 
205  return obj->patternMode;
206 }
207 
208 kInlineFx(kStatus) kHxProjector_SetPalette(kHxProjector projector, kSize index, k32u color)
209 {
210  kObj(kHxProjector, projector);
211 
213 
214  obj->palette[index] = color;
215 
216  return kOK;
217 }
218 
219 kInlineFx(k32u) kHxProjector_Palette(kHxProjector projector, kSize index)
220 {
221  kObj(kHxProjector, projector);
222 
223  if (index >= kPROJECTOR_PALETTE_CAPACITY)
224  {
225  return 0;
226  }
227 
228  return obj->palette[index];
229 }
230 
231 kInlineFx(k32u) kHxProjector_MinIntensity(kHxProjector projector)
232 {
233  return xkHxProjector_VTable(projector)->VMinIntensity(projector);
234 }
235 
236 kInlineFx(k32u) kHxProjector_MaxIntensity(kHxProjector projector)
237 {
238  return xkHxProjector_VTable(projector)->VMaxIntensity(projector);
239 }
240 
241 kInlineFx(kStatus) kHxProjector_LoadPatterns(kHxProjector projector, kArray2 patterns)
242 {
243  return xkHxProjector_VTable(projector)->VLoadPatterns(projector, patterns);
244 }
245 
246 kInlineFx(kStatus) kHxProjector_LoadRowGains(kHxProjector projector, kArray1 gains)
247 {
248  return xkHxProjector_VTable(projector)->VLoadRowGains(projector, gains);
249 }
250 
251 kInlineFx(kStatus) kHxProjector_LoadColGains(kHxProjector projector, kArray1 gains)
252 {
253  return xkHxProjector_VTable(projector)->VLoadColGains(projector, gains);
254 }
255 
256 kInlineFx(kStatus) kHxProjector_SetStateCount(kHxProjector projector, kSize count)
257 {
258  return xkHxProjector_VTable(projector)->VSetStateCount(projector, count);
259 }
260 
261 kInlineFx(kSize) kHxProjector_StateCount(kHxProjector projector)
262 {
263  kObj(kHxProjector, projector);
264 
265  return kArrayList_Count(obj->states);
266 }
267 
268 kInlineFx(kHxProjectorState) kHxProjector_StateAt(kHxProjector projector, kSize index)
269 {
270  kObj(kHxProjector, projector);
271 
272  return kArrayList_AsT(obj->states, index, kHxProjectorState);
273 }
274 
275 kInlineFx(kStatus) kHxProjector_ClearExtensions(kHxProjector projector)
276 {
277  kObj(kHxProjector, projector);
278 
279  return kArrayList_Purge(obj->extensions);
280 }
281 
282  //ownership of 'extension' configuration argument not transferred;
283 kInlineFx(kStatus) kHxProjector_AddExtension(kHxProjector projector, kProjectorExt extension)
284 {
285  return xkHxProjector_VTable(projector)->VAddExtension(projector, extension);
286 }
287 
288 kInlineFx(kSize) kHxProjector_ExtensionCount(kHxProjector projector)
289 {
290  kObj(kHxProjector, projector);
291 
292  return kArrayList_Count(obj->extensions);
293 }
294 
295 //produces object that must be destroyed by caller
296 kFsFx(kStatus) kHxProjector_ExtensionAt(kHxProjector projector, kSize index, kProjectorExt* extension, kAlloc allocator);
297 
298 kInlineFx(kStatus) kHxProjector_Stats(kHxProjector projector, kProjectorStats* stats)
299 {
300  return xkHxProjector_VTable(projector)->VStats(projector, stats);
301 }
302 
303 kInlineFx(kStatus) kHxProjector_Clear(kHxProjector projector)
304 {
305  return xkHxProjector_VTable(projector)->VClear(projector);
306 }
307 
308 #endif
Represents projector control modes.
Declares the kProjectorInfo class and related types.
#define kInlineFx(TYPE)
Essential declarations related to FireSync nodes.
Abstract base class for hardware node classes.
#define kPROJECTOR_PALETTE_CAPACITY
Count of defined projector palette pixels.
Definition: kNodeDef.h:1203
Represents supported projector device types.
#define kObj(TypeName_T, T_object)
Represents projector pattern modes.
Represents projector run-time statistics.
Definition: kNodeDef.h:1211
#define kCheckArgs(EXPRESSION)
#define kArrayList_AsT(kArrayList_list, kSize_index, T)
Abstract base class for projector control extension parameters.
#define kOK