FireSync API
 All Classes Files Functions Variables Typedefs Friends Macros Modules Pages
kProjectorInfo.h
Go to the documentation of this file.
1 
8 #ifndef K_FIRESYNC_PROJECTOR_INFO_H
9 #define K_FIRESYNC_PROJECTOR_INFO_H
10 
11 #include <kFireSync/kNodeDef.h>
12 
20 //typedef kObject kProjectorInfo; --forward-declared in kFsDef.x.h
21 
22 //DP03
23 typedef struct kDp03FrameRateControl
24 {
25  k8u hsyncWidth;
26  k8u hsyncBackPorch;
27  k16u hsyncFrontPorch;
28  k8u vsyncWidth;
29  k8u vsyncBackPorch;
30  k16u vsyncFrontPorch;
31 } kDp03FrameRateControl;
32 
33 //kDp03PatternConfiguration is written to DLPC, cannot have structure padding.
34 #pragma pack(push, 1)
35 
36 typedef struct kDp03PatternConfiguration
37 {
38  k8u type;
39  k8u imagesPerFrame;
40  k8u ledSelect;
41  k32u exposureUs;
42  k32u preExpDarkTimeUs;
43  k32u postExpDarkTimeUs;
44 } kDp03PatternConfiguration;
45 
46 #pragma pack(pop)
47 
48 typedef struct kDp03Timing
49 {
50  kDp03FrameRateControl frameControl;
51  kDp03PatternConfiguration patternConfig;
52  k64u frameTime;
53  k64u patternDuration;
54  k64u patternTime;
55  k64u imageTime;
56 } kDp03Timing;
57 
58 //DP01
59 typedef struct kDlpc300ExternalSequence
60 {
61  kSize frameRate; //Frame rate.
62  kSize imagesPerFrame; //Number of images per frame.
63  kSize sequenceNumber; //DLPC300 sequence number.
64  kSize startVector; //DLPC300 start vector.
65  kSize subVector; //DLPC300 sub-vector.
66 } kDlpc300ExternalSequence;
67 
68 typedef struct kDlpc300InternalSequence
69 {
70  k64u exposure; //Exposure time (real ns).
71  kSize sequenceNumber; //DLPC300 sequence number.
72  kSize startVector; //DLPC300 start vector.
73  kSize subVector; //DLPC300 sub-vector.
74 } kDlpc300InternalSequence;
75 
76 typedef union kDlpc300VideoSequence
77 {
78  kDlpc300InternalSequence internal;
79  kDlpc300ExternalSequence external;
80 } kDlpc300VideoSequence;
81 
82 kDeclareValueEx(kFs, kDlpc300VideoSequence, kValue)
83 
84 typedef struct kDp01FrameRateControl
85 {
86  k32u engineRegister;
87  k8u hsyncWidth;
88  k8u hsyncBackPorch;
89  k8u hsyncFrontPorch;
90  k8u vsyncWidth;
91  k8u vsyncBackPorch;
92  k8u vsyncFrontPorch;
93 } kDp01FrameRateControl;
94 
95 kDeclareValueEx(kFs, kDp01FrameRateControl, kValue)
96 
97 typedef struct kDp01Timing
98 {
99  kProjectorPatternSource patternSource;
100  kDp01FrameRateControl frameControl;
101  kDlpc300VideoSequence videoSequence;
102  kSize lastFrameImageNumber;
103  kSize lastExposureImageNumber;
104  k64u patternDuration;
105  k64u patternTime;
106  k64u imageTime;
107  kBool exposureOverride;
108 } kDp01Timing;
109 
110 //LP01
111 typedef struct kLp01Timing
112 {
113  k32u colorWeightRed;
114  k32u colorWeightGreen;
115  k32u colorWeightBlue;
116  k64u ledTime;
117 } kLp01Timing;
118 
119 typedef union kPanelTiming
120 {
121  kLp01Timing lp01;
122  kDp01Timing dp01;
123  kDp03Timing dp03;
124 } kPanelTiming;
125 
126 typedef struct kProjectorTiming
127 {
128  kSize repeatCount;
129  k64f accurateExposure;
130  kPanelTiming panel;
131 } kProjectorTiming;
132 
133 kDeclareValueEx(kFs, kProjectorTiming, kValue)
134 
135 
144 kFsFx(kStatus) kProjectorInfo_Construct(kProjectorInfo* info, kProjectorModel model, k64f pixelClockFrequency, kAlloc allocator);
145 
146 kFsFx(kProjectorModel) kProjectorInfo_Model(kProjectorInfo info);
147 
148 kFsFx(kSize) kProjectorInfo_Width(kProjectorInfo info);
149 kFsFx(kSize) kProjectorInfo_Height(kProjectorInfo info);
150 
151 kFsFx(k64u) kProjectorInfo_MinExposure(kProjectorInfo info, k32u intensity, k32u minIntensity);
152 
153 kFsFx(k32u) kProjectorInfo_MinPatternCount(kProjectorInfo info);
154 kFsFx(k32u) kProjectorInfo_MaxPatternCount(kProjectorInfo info);
155 
156 kFsFx(k32u) kProjectorInfo_MinBitDepth(kProjectorInfo info);
157 kFsFx(k32u) kProjectorInfo_MaxBitDepth(kProjectorInfo info);
158 
159 kFsFx(k32u) kProjectorInfo_MinIntensity(kProjectorInfo info);
160 kFsFx(k32u) kProjectorInfo_MaxIntensity(kProjectorInfo info);
161 
162 kFsFx(k32u) kProjectorInfo_MinPaletteColor(kProjectorInfo info);
163 kFsFx(k32u) kProjectorInfo_MaxPaletteColor(kProjectorInfo info);
164 
165 kFsFx(kProjectorPatternMode) kProjectorInfo_PatternModes(kProjectorInfo info);
166 
167 kFsFx(kBool) kProjectorInfo_HasDynamicFrameRate(kProjectorInfo info);
168 kFsFx(kBool) kProjectorInfo_IsPilotRunNeeded(kProjectorInfo info);
169 kFsFx(kBool) kProjectorInfo_IsCalibrationNeeded(kProjectorInfo info);
170 kFsFx(kBool) kProjectorInfo_HasTempProbe(kProjectorInfo info);
171 kFsFx(kBool) kProjectorInfo_CanAutoShutdown(kProjector projector);
172 
173 kFsFx(k64u) kProjectorInfo_ImageTime(kProjectorInfo info, kSize bitDepth, k64u exposure, kBool dynFrameRate);
174 kFsFx(k64u) kProjectorInfo_FrameTime(kProjectorInfo info, kSize bitDepth, k64u exposure, kBool dynFrameRate);
175 kFsFx(kStatus) kProjectorInfo_CalculateExposure(kProjectorInfo info, kSize bitDepth, k64u exposure, k64u cameraDuration, kBool dynFrameRate, kProjectorTiming* timing);
176 kFsFx(k64u) kProjectorInfo_SequenceDuration(kProjectorInfo info, kSize bitDepth, k64u exposure, k64u cameraDuration, kBool dynFrameRate, kSize patternCount, kBool sequenceEnabled);
177 kFsFx(k64u) kProjectorInfo_MinimumGap(kProjectorInfo info, kSize bitDepth, k64u exposure, k64u cameraDuration, kBool dynFrameRate, kSize patternCount, kBool sequenceEnabled, k64u cameraPlProcessingTime);
178 kFsFx(k64u) kProjectorInfo_NominateCameraExposure(kProjectorInfo info, kSize bitDepth, k64u stateExposure, k64u cameraDuration, kBool dynFrameRate, k64u desiredExposure);
179 
180 kFsFx(kProjectorExtension) kProjectorInfo_ExtensionTypes(kProjectorInfo info);
181 
182 kFsFx(k32u) kProjectorInfo_DefaultPatternCount(kProjectorInfo info);
183 kFsFx(kSize) kProjectorInfo_DefaultBitDepth(kProjectorInfo info);
184 kFsFx(kProjectorPatternMode) kProjectorInfo_DefaultPatternMode(kProjectorInfo info);
185 kFsFx(k32u) kProjectorInfo_DefaultPalette(kProjectorInfo info, kSize index);
186 kFsFx(k32u) kProjectorInfo_DefaultIntensity(kProjectorInfo info);
187 kFsFx(k64u) kProjectorInfo_DefaultExposure(kProjectorInfo info);
188 kFsFx(k64u) kProjectorInfo_DefaultGap(kProjectorInfo info);
189 
190 kFsFx(k64u) kProjectorInfo_PilotRunExposure(kProjectorInfo info);
191 kFsFx(k64u) kProjectorInfo_PilotRunPeriod(kProjectorInfo info);
192 kFsFx(k32u) kProjectorInfo_PilotRunIntensity(kProjectorInfo info);
193 
194 #include <kFireSync/Client/Projector/kProjectorInfo.x.h>
195 
196 #endif
Represents projector configuration.
Essential declarations related to FireSync nodes.
Represents supported projector device types.
Represents projector control extension numeric type identifiers.
Represents projector pattern modes.
Represents projector pattern source.
#define kDeclareValueEx(PREFIX, SYMBOL, BASE)