FireSync API
 All Classes Files Functions Variables Typedefs Friends Macros Modules Pages
kHxCamera.h
Go to the documentation of this file.
1 
8 #ifndef K_FIRESYNC_HX_CAMERA_H
9 #define K_FIRESYNC_HX_CAMERA_H
10 
11 #include <kFireSync/kNodeDef.h>
13 
15 
16 #define kHX_CAMERA_STREAM_TYPE_NULL (0)
17 #define kHX_CAMERA_STREAM_TYPE_VIDEO (1)
18 #define kHX_CAMERA_STREAM_TYPE_ALGORITHM (2)
19 
20 typedef struct kHxCameraDataArgs
21 {
22  kObject data;
23  kObject camera;
24  k32u stateId;
25  kCameraPortMode portMode;
27  kCameraFrameAlgType algType;
28 } kHxCameraDataArgs;
29 
30 #include <kFireSync/Hardware/kHxCamera.x.h>
31 
39 //typedef kObject kHxCamera; --forward-declared in kFsDef.x.h
40 
41 kInlineFx(kHxNode) kHxCamera_Node(kHxCamera camera)
42 {
43  kObj(kHxCamera, camera);
44 
45  return obj->node;
46 }
47 
48 kInlineFx(kSize) kHxCamera_Index(kHxCamera camera)
49 {
50  kObj(kHxCamera, camera);
51 
52  return obj->index;
53 }
54 
55 kInlineFx(kCameraCapability) kHxCamera_Capabilities(kHxCamera camera)
56 {
57  kObj(kHxCamera, camera);
58 
59  return obj->capabilities;
60 }
61 
62 kInlineFx(kBool) kHxCamera_TrailingRequired(kHxCamera camera)
63 {
64  kObj(kHxCamera, camera);
65 
66  return obj->isTrailingRequired;
67 }
68 
69 kInlineFx(kSize) kHxCamera_FrameSizeGranularity(kHxCamera camera)
70 {
71  kObj(kHxCamera, camera);
72 
73  return obj->frameSizeGranularity;
74 }
75 
76 kInlineFx(kCameraAlgorithm) kHxCamera_Algorithm(kHxCamera camera)
77 {
78  kObj(kHxCamera, camera);
79 
80  return obj->algorithm;
81 }
82 
83 kInlineFx(kCameraInfo) kHxCamera_Info(kHxCamera camera)
84 {
85  kObj(kHxCamera, camera);
86 
87  return obj->info;
88 }
89 
90 kInlineFx(kCameraModel) kHxCamera_Model(kHxCamera camera)
91 {
92  kObj(kHxCamera, camera);
93 
94  return kCameraInfo_Model(obj->info);
95 }
96 
97 kInlineFx(k64f) kHxCamera_PixelClockFrequency(kHxCamera camera)
98 {
99  kObj(kHxCamera, camera);
100 
101  return obj->pixelClockFrequency;
102 }
103 
104 kInlineFx(k32u) kHxCamera_ChannelCount(kHxCamera camera)
105 {
106  kObj(kHxCamera, camera);
107 
108  return obj->channelCount;
109 }
110 
111 kInlineFx(k64f) kHxCamera_PixelPeriod(kHxCamera camera)
112 {
113  kObj(kHxCamera, camera);
114 
115  return (obj->pixelClockFrequency == 0) ? 0 : (1000000000.0/obj->pixelClockFrequency);
116 }
117 
118 kInlineFx(k32u) kHxCamera_PlPipeCount(kHxCamera camera)
119 {
120  kObj(kHxCamera, camera);
121 
122  return obj->plPipeCount;
123 }
124 
125 kInlineFx(kStatus) kHxCamera_SetDataHandler(kHxCamera camera, kCallbackFx function, kPointer receiver)
126 {
127  kObj(kHxCamera, camera);
128 
129  obj->dataCallback.function = function;
130  obj->dataCallback.receiver = receiver;
131 
132  return kOK;
133 }
134 
135 kInlineFx(kStatus) kHxCamera_SetVideoBufferSize(kHxCamera camera, kSize requestedSize)
136 {
137  return xkHxCamera_VTable(camera)->VSetVideoBufferSize(camera, requestedSize);
138 }
139 
140 kInlineFx(kSize) kHxCamera_VideoBufferSize(kHxCamera camera)
141 {
142  return xkHxCamera_VTable(camera)->VVideoBufferSize(camera);
143 }
144 
145 kInlineFx(kStatus) kHxCamera_SetAlgorithmBufferSize(kHxCamera camera, kSize requestedSize)
146 {
147  return xkHxCamera_VTable(camera)->VSetAlgorithmBufferSize(camera, requestedSize);
148 }
149 
150 kInlineFx(kSize) kHxCamera_AlgorithmBufferSize(kHxCamera camera)
151 {
152  return xkHxCamera_VTable(camera)->VAlgorithmBufferSize(camera);
153 }
154 
155 kInlineFx(kStatus) kHxCamera_AllocateBuffer(kHxCamera camera)
156 {
157  return xkHxCamera_VTable(camera)->VAllocateBuffer(camera);
158 }
159 
160 kInlineFx(kBool) kHxCamera_IsConnected(kHxCamera camera)
161 {
162  return xkHxCamera_VTable(camera)->VIsConnected(camera);
163 }
164 
165 kInlineFx(kStatus) kHxCamera_Enable(kHxCamera camera, kBool enabled)
166 {
167  kObj(kHxCamera, camera);
168 
169  obj->enabled = enabled;
170 
171  return kOK;
172 }
173 
174 kInlineFx(kBool) kHxCamera_IsEnabled(kHxCamera camera)
175 {
176  kObj(kHxCamera, camera);
177 
178  return obj->enabled;
179 }
180 
181 kInlineFx(kStatus) kHxCamera_SetControl(kHxCamera camera, kCameraControl type)
182 {
183  kObj(kHxCamera, camera);
184 
185  obj->controlType = type;
186 
187  return kOK;
188 }
189 
190 kInlineFx(kCameraControl) kHxCamera_Control(kHxCamera camera)
191 {
192  kObj(kHxCamera, camera);
193 
194  return obj->controlType;
195 }
196 
197 kInlineFx(kStatus) kHxCamera_SetControlId(kHxCamera camera, kSize id)
198 {
199  kObj(kHxCamera, camera);
200 
201  obj->controlId = id;
202 
203  return kOK;
204 }
205 
206 kInlineFx(kSize) kHxCamera_ControlId(kHxCamera camera)
207 {
208  kObj(kHxCamera, camera);
209 
210  return obj->controlId;
211 }
212 
213 kInlineFx(kCameraOutputMode) kHxCamera_OutputCapabilities(kHxCamera camera)
214 {
215  kObj(kHxCamera, camera);
216 
217  return obj->outputCapabilities;
218 }
219 
220 kInlineFx(kStatus) kHxCamera_SetOutputMode(kHxCamera camera, kCameraOutputMode outputMode)
221 {
222  kObj(kHxCamera, camera);
223 
224  obj->outputMode = outputMode;
225 
226  return kOK;
227 }
228 
229 kInlineFx(kCameraOutputMode) kHxCamera_OutputMode(kHxCamera camera)
230 {
231  kObj(kHxCamera, camera);
232 
233  return obj->outputMode;
234 }
235 
236 kInlineFx(kStatus) kHxCamera_SetPortMode(kHxCamera camera, kCameraPortMode portMode)
237 {
238  kObj(kHxCamera, camera);
239 
240  obj->portMode = portMode;
241 
242  return kOK;
243 }
244 
245 kInlineFx(kCameraPortMode) kHxCamera_PortMode(kHxCamera camera)
246 {
247  kObj(kHxCamera, camera);
248 
249  return obj->portMode;
250 }
251 
252 kInlineFx(kStatus) kHxCamera_SetReadout(kHxCamera camera, kCameraReadout readoutMode)
253 {
254  kObj(kHxCamera, camera);
255 
256  obj->readoutMode = readoutMode;
257 
258  return kOK;
259 }
260 
261 kInlineFx(kCameraReadout) kHxCamera_Readout(kHxCamera camera)
262 {
263  kObj(kHxCamera, camera);
264 
265  return obj->readoutMode;
266 }
267 
268 kInlineFx(kStatus) kHxCamera_SetInputCounterSource(kHxCamera camera, kCameraInputCounterSource source)
269 {
270  kObj(kHxCamera, camera);
271 
272  obj->inputCounterSource = source;
273 
274  return kOK;
275 }
276 
277 kInlineFx(kCameraInputCounterSource) kHxCamera_InputCounterSource(kHxCamera camera)
278 {
279  kObj(kHxCamera, camera);
280 
281  return obj->inputCounterSource;
282 }
283 
284 kInlineFx(kStatus) kHxCamera_SetInputCounterSourceId(kHxCamera camera, k32u id)
285 {
286  kObj(kHxCamera, camera);
287 
288  obj->inputCounterSourceId = id;
289 
290  return kOK;
291 }
292 
293 kInlineFx(k32u) kHxCamera_InputCounterSourceId(kHxCamera camera)
294 {
295  kObj(kHxCamera, camera);
296 
297  return obj->inputCounterSourceId;
298 }
299 
300 kInlineFx(kStatus) kHxCamera_SetReductionFactor(kHxCamera camera, k32u factor)
301 {
302  kObj(kHxCamera, camera);
303 
304  obj->reductionFactor = factor;
305 
306  return kOK;
307 }
308 
309 kInlineFx(k32u) kHxCamera_ReductionFactor(kHxCamera camera)
310 {
311  kObj(kHxCamera, camera);
312 
313  return obj->reductionFactor;
314 }
315 
316 kInlineFx(kStatus) kHxCamera_SetReductionWindow(kHxCamera camera, k32u window)
317 {
318  kObj(kHxCamera, camera);
319 
320  obj->reductionWindow = window;
321 
322  return kOK;
323 }
324 
325 kInlineFx(k32u) kHxCamera_ReductionWindow(kHxCamera camera)
326 {
327  kObj(kHxCamera, camera);
328 
329  return obj->reductionWindow;
330 }
331 
332 kInlineFx(kStatus) kHxCamera_SetDuration(kHxCamera camera, k64u duration)
333 {
334  kObj(kHxCamera, camera);
335 
336  obj->duration = duration;
337 
338  return kOK;
339 }
340 
341 kInlineFx(k64u) kHxCamera_Duration(kHxCamera camera)
342 {
343  kObj(kHxCamera, camera);
344 
345  return obj->duration;
346 }
347 
348 //returns a period suitable for use in camera priming
349 kInlineFx(kStatus) kHxCamera_PrimePeriod(kHxCamera camera, k64u* delay, k64u* exposure, k64u* gap)
350 {
351  kObj(kHxCamera, camera);
352 
353  return kCameraInfo_PrimePeriod(obj->info, delay, exposure, gap);
354 }
355 
356 //returns a period suitable for use in camera priming
357 kInlineFx(k64u) kHxCamera_PrimePeriod(kHxCamera camera)
358 {
359  k64u delay, exposure, gap;
360 
361  kHxCamera_PrimePeriod(camera, &delay, &exposure, &gap);
362 
363  return delay + exposure + gap;
364 }
365 
366 kInlineFx(k32u) kHxCamera_PrimeCount(kHxCamera camera)
367 {
368  return xkHxCamera_VTable(camera)->VPrimeCount(camera);
369 }
370 
371 kInlineFx(kStatus) kHxCamera_EnableRamImage(kHxCamera camera, kBool enabled)
372 {
373  kObj(kHxCamera, camera);
374 
375  obj->ramImageEnabled = enabled;
376 
377  return kOK;
378 }
379 
380 kInlineFx(kBool) kHxCamera_RamImageEnabled(kHxCamera camera)
381 {
382  kObj(kHxCamera, camera);
383 
384  return obj->ramImageEnabled;
385 }
386 
387 kInlineFx(kStatus) kHxCamera_EnablePrnu(kHxCamera camera, kBool enabled)
388 {
389  kObj(kHxCamera, camera);
390 
391  obj->prnuEnabled = enabled;
392 
393  return kOK;
394 }
395 
396 kInlineFx(kBool) kHxCamera_PrnuEnabled(kHxCamera camera)
397 {
398  kObj(kHxCamera, camera);
399 
400  return obj->prnuEnabled;
401 }
402 
403 kInlineFx(kStatus) kHxCamera_WritePrnu(kHxCamera camera, kImage white, kImage black)
404 {
405  return xkHxCamera_VTable(camera)->VWritePrnu(camera, white, black);
406 }
407 
408 kInlineFx(kStatus) kHxCamera_EnableFpn(kHxCamera camera, kBool enabled)
409 {
410  kObj(kHxCamera, camera);
411 
412  obj->fpnEnabled = enabled;
413 
414  return kOK;
415 }
416 
417 kInlineFx(kBool) kHxCamera_FpnEnabled(kHxCamera camera)
418 {
419  kObj(kHxCamera, camera);
420 
421  return obj->fpnEnabled;
422 }
423 
424 kInlineFx(kStatus) kHxCamera_WriteFpn(kHxCamera camera, kImage offsets)
425 {
426  return xkHxCamera_VTable(camera)->VWriteFpn(camera, offsets);
427 }
428 
429 kInlineFx(kStatus) kHxCamera_EnableCalibration(kHxCamera camera, kBool enabled)
430 {
431  kObj(kHxCamera, camera);
432 
433  obj->calibrationEnabled = enabled;
434 
435  return kOK;
436 }
437 
438 kInlineFx(kBool) kHxCamera_CalibrationEnabled(kHxCamera camera)
439 {
440  kObj(kHxCamera, camera);
441 
442  return obj->calibrationEnabled;
443 }
444 
445 kInlineFx(kStatus) kHxCamera_EnableTestPattern(kHxCamera camera, kBool enabled)
446 {
447  kObj(kHxCamera, camera);
448 
449  obj->testPatternEnabled = enabled;
450 
451  return kOK;
452 }
453 
454 kInlineFx(kBool) kHxCamera_TestPatternEnabled(kHxCamera camera)
455 {
456  kObj(kHxCamera, camera);
457 
458  return obj->testPatternEnabled;
459 }
460 
461 kInlineFx(kStatus) kHxCamera_CalibrateFpn(kHxCamera camera, kImage image)
462 {
463  return xkHxCamera_VTable(camera)->VCalibrateFpn(camera, image);
464 }
465 
466 kInlineFx(kStatus) kHxCamera_WriteRangeLut(kHxCamera camera, const kRangeLutParams* params, const kRangeLutArray* xArray,
467  const kRangeLutArray* zArray, const kRangeLutArray* validArray)
468 {
469  return xkHxCamera_VTable(camera)->VWriteRangeLut(camera, params, xArray, zArray, validArray);
470 }
471 
472 kInlineFx(kStatus) kHxCamera_WritePhaseDecoderLut(kHxCamera camera, kCameraPhaseDecoderLutType type, kArray1 lut)
473 {
474  return xkHxCamera_VTable(camera)->VWritePhaseDecoderLut(camera, type, lut);
475 }
476 
477 
478 kInlineFx(kStatus) kHxCamera_SetAccelerationTestMode(kHxCamera camera, kCameraAccelerationTestMode mode)
479 {
480  kObj(kHxCamera, camera);
481 
482  obj->accelerationTestMode = mode;
483 
484  return kOK;
485 }
486 
487 kInlineFx(kCameraAccelerationTestMode) kHxCamera_AccelerationTestMode(kHxCamera camera)
488 {
489  kObj(kHxCamera, camera);
490 
491  return obj->accelerationTestMode;
492 }
493 
494 kInlineFx(kStatus) kHxCamera_WriteAccelerationTestData(kHxCamera camera, kObject data)
495 {
496  return xkHxCamera_VTable(camera)->VWriteAccelerationTestData(camera, data);
497 }
498 
499 kInlineFx(kStatus) kHxCamera_ReadAccelerationTestResult(kHxCamera camera, kObject* data, kAlloc allocator)
500 {
501  return xkHxCamera_VTable(camera)->VReadAccelerationTestResult(camera, data, allocator);
502 }
503 
504 kInlineFx(kStatus) kHxCamera_SetStateCount(kHxCamera camera, kSize count)
505 {
506  return xkHxCamera_VTable(camera)->VSetStateCount(camera, count);
507 }
508 
509 kInlineFx(kSize) kHxCamera_StateCount(kHxCamera camera)
510 {
511  kObj(kHxCamera, camera);
512 
513  return kArrayList_Count(obj->states);
514 }
515 
516 kInlineFx(kHxCameraState) kHxCamera_StateAt(kHxCamera camera, kSize index)
517 {
518  kObj(kHxCamera, camera);
519 
520  return kArrayList_AsT(obj->states, index, kHxCameraState);
521 }
522 
523 kInlineFx(kStatus) kHxCamera_ClearExtensions(kHxCamera camera)
524 {
525  kObj(kHxCamera, camera);
526 
527  return kArrayList_Purge(obj->extensions);
528 }
529 
530  //ownership of 'extension' configuration argument not transferred
531 kInlineFx(kStatus) kHxCamera_AddExtension(kHxCamera camera, kCameraExt extension)
532 {
533  return xkHxCamera_VTable(camera)->VAddExtension(camera, extension);
534 }
535 
536 kInlineFx(kSize) kHxCamera_ExtensionCount(kHxCamera camera)
537 {
538  kObj(kHxCamera, camera);
539 
540  return kArrayList_Count(obj->extensions);
541 }
542 
543 //produces object that must be destroyed by caller
544 kFsFx(kStatus) kHxCamera_ExtensionAt(kHxCamera camera, kSize index, kCameraExt* extension, kAlloc allocator);
545 
546 kFsFx(kBool) kHxCamera_IsExtensionEnabled(kHxCamera camera, kCameraExtension id);
547 
548 kInlineFx(kStatus) kHxCamera_Override(kHxCamera camera, const kCameraOverrideItem* overrides, kSize count)
549 {
550  return xkHxCamera_VTable(camera)->VOverride(camera, overrides, count);
551 }
552 
553 //callee should add ref to retain image, if desired
554 kInlineFx(kStatus) kHxCamera_SendDynamicFpnImage(kHxCamera camera, kImage image)
555 {
556  return xkHxCamera_VTable(camera)->VSendDynamicFpnImage(camera, image);
557 }
558 
559 kInlineFx(kSize) kHxCamera_ImagerRegisterCapacity(kHxCamera camera)
560 {
561  return xkHxCamera_VTable(camera)->VImagerRegisterCapacity(camera);
562 }
563 
564 kInlineFx(k32u) kHxCamera_ReadImagerRegister(kHxCamera camera, kSize registerIndex)
565 {
566  return xkHxCamera_VTable(camera)->VReadImagerRegister(camera, registerIndex);
567 }
568 
569 kInlineFx(kStatus) kHxCamera_WriteImagerRegister(kHxCamera camera, kSize registerIndex, k32u value)
570 {
571  return xkHxCamera_VTable(camera)->VWriteImagerRegister(camera, registerIndex, value);
572 }
573 
574 kInlineFx(k32u) kHxCamera_LvdsPower(kHxCamera camera)
575 {
576  kObj(kHxCamera, camera);
577 
578  return obj->lvdsPower;
579 }
580 
581 kInlineFx(kStatus) kHxCamera_SetLvdsPower(kHxCamera camera, k32u power, kBool commit)
582 {
583  kObj(kHxCamera, camera);
584 
585  obj->lvdsPower = power;
586 
587  return xkHxCamera_VTable(camera)->VSetLvdsPower(camera, power, commit);
588 }
589 
590 kInlineFx(kStatus) kHxCamera_Calibrate(kHxCamera camera)
591 {
592  return xkHxCamera_VTable(camera)->VCalibrate(camera);
593 }
594 
595 kInlineFx(kStatus) kHxCamera_Stats(kHxCamera camera, kCameraStats* stats)
596 {
597  return xkHxCamera_VTable(camera)->VStats(camera, stats);
598 }
599 
600 kInlineFx(kStatus) kHxCamera_Trigger(kHxCamera camera)
601 {
602  return xkHxCamera_VTable(camera)->VTrigger(camera);
603 }
604 
605 kInlineFx(kStatus) kHxCamera_Clear(kHxCamera camera)
606 {
607  return xkHxCamera_VTable(camera)->VClear(camera);
608 }
609 
610 #endif
Represents camera run-time statistics.
Definition: kNodeDef.h:695
Represents camera port modes.
Represents camera phase decoder LUT type.
Represents camera control modes.
Represents the acceleration test mode.
#define kInlineFx(TYPE)
Essential declarations related to FireSync nodes.
Represents the input counter source.
Abstract base class for hardware node classes.
Represents camera override item.
Definition: kNodeDef.h:351
Abstract base class for camera control extension parameters.
#define kObj(TypeName_T, T_object)
Represents camera control extension numeric type identifiers.
Represents camera readout mode.
#define kArrayList_AsT(kArrayList_list, kSize_index, T)
Represents camera hardware-accelerated algorithm types.
#define kOK
Represents supported camera device types.
Declares the kCameraInfo class and related types.
Represents camera output modes.