8 #ifndef K_FIRESYNC_HX_CAMERA_H
9 #define K_FIRESYNC_HX_CAMERA_H
16 #define kHX_CAMERA_STREAM_TYPE_NULL (0)
17 #define kHX_CAMERA_STREAM_TYPE_VIDEO (1)
18 #define kHX_CAMERA_STREAM_TYPE_ALGORITHM (2)
20 typedef struct kHxCameraDataArgs
27 kCameraFrameAlgType algType;
30 #include <kFireSync/Hardware/kHxCamera.x.h>
43 kObj(kHxCamera, camera);
50 kObj(kHxCamera, camera);
55 kInlineFx(kCameraCapability) kHxCamera_Capabilities(kHxCamera camera)
57 kObj(kHxCamera, camera);
59 return obj->capabilities;
64 kObj(kHxCamera, camera);
66 return obj->isTrailingRequired;
71 kObj(kHxCamera, camera);
73 return obj->frameSizeGranularity;
78 kObj(kHxCamera, camera);
80 return obj->algorithm;
83 kInlineFx(kCameraInfo) kHxCamera_Info(kHxCamera camera)
85 kObj(kHxCamera, camera);
92 kObj(kHxCamera, camera);
94 return kCameraInfo_Model(obj->info);
97 kInlineFx(
k64f) kHxCamera_PixelClockFrequency(kHxCamera camera)
99 kObj(kHxCamera, camera);
101 return obj->pixelClockFrequency;
106 kObj(kHxCamera, camera);
108 return obj->channelCount;
113 kObj(kHxCamera, camera);
115 return (obj->pixelClockFrequency == 0) ? 0 : (1000000000.0/obj->pixelClockFrequency);
120 kObj(kHxCamera, camera);
122 return obj->plPipeCount;
127 kObj(kHxCamera, camera);
129 obj->dataCallback.function =
function;
130 obj->dataCallback.receiver = receiver;
137 return xkHxCamera_VTable(camera)->VSetVideoBufferSize(camera, requestedSize);
142 return xkHxCamera_VTable(camera)->VVideoBufferSize(camera);
147 return xkHxCamera_VTable(camera)->VSetAlgorithmBufferSize(camera, requestedSize);
152 return xkHxCamera_VTable(camera)->VAlgorithmBufferSize(camera);
157 return xkHxCamera_VTable(camera)->VAllocateBuffer(camera);
162 return xkHxCamera_VTable(camera)->VIsConnected(camera);
167 kObj(kHxCamera, camera);
169 obj->enabled = enabled;
176 kObj(kHxCamera, camera);
183 kObj(kHxCamera, camera);
185 obj->controlType = type;
192 kObj(kHxCamera, camera);
194 return obj->controlType;
199 kObj(kHxCamera, camera);
208 kObj(kHxCamera, camera);
210 return obj->controlId;
215 kObj(kHxCamera, camera);
217 return obj->outputCapabilities;
222 kObj(kHxCamera, camera);
224 obj->outputMode = outputMode;
231 kObj(kHxCamera, camera);
233 return obj->outputMode;
238 kObj(kHxCamera, camera);
240 obj->portMode = portMode;
247 kObj(kHxCamera, camera);
249 return obj->portMode;
254 kObj(kHxCamera, camera);
256 obj->readoutMode = readoutMode;
263 kObj(kHxCamera, camera);
265 return obj->readoutMode;
270 kObj(kHxCamera, camera);
272 obj->inputCounterSource = source;
279 kObj(kHxCamera, camera);
281 return obj->inputCounterSource;
286 kObj(kHxCamera, camera);
288 obj->inputCounterSourceId = id;
293 kInlineFx(
k32u) kHxCamera_InputCounterSourceId(kHxCamera camera)
295 kObj(kHxCamera, camera);
297 return obj->inputCounterSourceId;
302 kObj(kHxCamera, camera);
304 obj->reductionFactor = factor;
311 kObj(kHxCamera, camera);
313 return obj->reductionFactor;
318 kObj(kHxCamera, camera);
320 obj->reductionWindow = window;
327 kObj(kHxCamera, camera);
329 return obj->reductionWindow;
334 kObj(kHxCamera, camera);
336 obj->duration = duration;
343 kObj(kHxCamera, camera);
345 return obj->duration;
351 kObj(kHxCamera, camera);
353 return kCameraInfo_PrimePeriod(obj->info, delay, exposure, gap);
359 k64u delay, exposure, gap;
361 kHxCamera_PrimePeriod(camera, &delay, &exposure, &gap);
363 return delay + exposure + gap;
368 return xkHxCamera_VTable(camera)->VPrimeCount(camera);
373 kObj(kHxCamera, camera);
375 obj->ramImageEnabled = enabled;
382 kObj(kHxCamera, camera);
384 return obj->ramImageEnabled;
389 kObj(kHxCamera, camera);
391 obj->prnuEnabled = enabled;
398 kObj(kHxCamera, camera);
400 return obj->prnuEnabled;
405 return xkHxCamera_VTable(camera)->VWritePrnu(camera, white, black);
410 kObj(kHxCamera, camera);
412 obj->fpnEnabled = enabled;
419 kObj(kHxCamera, camera);
421 return obj->fpnEnabled;
426 return xkHxCamera_VTable(camera)->VWriteFpn(camera, offsets);
431 kObj(kHxCamera, camera);
433 obj->calibrationEnabled = enabled;
440 kObj(kHxCamera, camera);
442 return obj->calibrationEnabled;
447 kObj(kHxCamera, camera);
449 obj->testPatternEnabled = enabled;
456 kObj(kHxCamera, camera);
458 return obj->testPatternEnabled;
463 return xkHxCamera_VTable(camera)->VCalibrateFpn(camera, image);
466 kInlineFx(
kStatus) kHxCamera_WriteRangeLut(kHxCamera camera, const kRangeLutParams* params, const kRangeLutArray* xArray,
467 const kRangeLutArray* zArray, const kRangeLutArray* validArray)
469 return xkHxCamera_VTable(camera)->VWriteRangeLut(camera, params, xArray, zArray, validArray);
474 return xkHxCamera_VTable(camera)->VWritePhaseDecoderLut(camera, type, lut);
480 kObj(kHxCamera, camera);
482 obj->accelerationTestMode = mode;
489 kObj(kHxCamera, camera);
491 return obj->accelerationTestMode;
496 return xkHxCamera_VTable(camera)->VWriteAccelerationTestData(camera, data);
501 return xkHxCamera_VTable(camera)->VReadAccelerationTestResult(camera, data, allocator);
506 return xkHxCamera_VTable(camera)->VSetStateCount(camera, count);
511 kObj(kHxCamera, camera);
513 return kArrayList_Count(obj->states);
516 kInlineFx(kHxCameraState) kHxCamera_StateAt(kHxCamera camera,
kSize index)
518 kObj(kHxCamera, camera);
525 kObj(kHxCamera, camera);
527 return kArrayList_Purge(obj->extensions);
533 return xkHxCamera_VTable(camera)->VAddExtension(camera, extension);
538 kObj(kHxCamera, camera);
540 return kArrayList_Count(obj->extensions);
550 return xkHxCamera_VTable(camera)->VOverride(camera, overrides, count);
556 return xkHxCamera_VTable(camera)->VSendDynamicFpnImage(camera, image);
559 kInlineFx(
kSize) kHxCamera_ImagerRegisterCapacity(kHxCamera camera)
561 return xkHxCamera_VTable(camera)->VImagerRegisterCapacity(camera);
566 return xkHxCamera_VTable(camera)->VReadImagerRegister(camera, registerIndex);
571 return xkHxCamera_VTable(camera)->VWriteImagerRegister(camera, registerIndex, value);
576 kObj(kHxCamera, camera);
578 return obj->lvdsPower;
583 kObj(kHxCamera, camera);
585 obj->lvdsPower = power;
587 return xkHxCamera_VTable(camera)->VSetLvdsPower(camera, power, commit);
592 return xkHxCamera_VTable(camera)->VCalibrate(camera);
597 return xkHxCamera_VTable(camera)->VStats(camera, stats);
602 return xkHxCamera_VTable(camera)->VTrigger(camera);
607 return xkHxCamera_VTable(camera)->VClear(camera);
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.
Essential declarations related to FireSync nodes.
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.
Represents supported camera device types.
Declares the kCameraInfo class and related types.
Represents camera output modes.