source: trunk/include/camera.h @ 332

Revision 332, 12.8 KB checked in by EWAVR, 5 years ago (diff)

+ Added optical zoom in video (except A650, A720, IXUS65, IXUS700)
+ A650: added DataGhost?'s multipartition boot engine

Line 
1#ifndef CAMERA_H
2#define CAMERA_H
3
4//==========================================================
5// Camera-dependent settings
6//==========================================================
7
8//----------------------------------------------------------
9// Default values
10//----------------------------------------------------------
11    #undef  CAM_RAW_ROWPIX                  // Number of pixels in RAW row
12    #undef  CAM_RAW_ROWS                    // Number of rows in RAW
13   
14    #undef  CAM_DRYOS                       // Camera is DryOS-based
15    #undef  CAM_PROPSET                     // Camera's properties group (the generation)
16   
17    #undef  CAM_SWIVEL_SCREEN               // Camera has rotated LCD screen
18    #define CAM_USE_ZOOM_FOR_MF         1   // Zoom lever can be used for manual focus adjustments
19    #undef  CAM_ADJUSTABLE_ALT_BUTTON       // ALT-button can be set from menu
20    #define CAM_REMOTE                  1   // Camera supports USB-remote
21    #undef  CAM_MULTIPART                   // Camera supports SD-card multipartitioning
22    #define CAM_HAS_ZOOM_LEVER          1   // Camera has dedicated zoom buttons
23    #undef  CAM_DRAW_EXPOSITION             // Output expo-pair on screen (for cameras which (sometimes) don't do that)
24    #define CAM_HAS_ERASE_BUTTON        1   // Camera has dedicated erase button
25    #define CAM_HAS_IRIS_DIAPHRAGM      1   // Camera has real diaphragm mechanism
26    #undef  CAM_HAS_ND_FILTER               // Camera has build-in ND filter
27    #define CAM_CAN_SD_OVER_NOT_IN_MF   1   // Camera allows subject distance (focus) override when not in manual focus mode
28    #define CAM_CAN_SD_OVERRIDE         1   // Camera allows to do subject distance override
29    #define CAM_HAS_MANUAL_FOCUS        1   // Camera has manual focus mode
30    #define CAM_HAS_USER_TV_MODES       1   // Camera has tv-priority or manual modes with ability to set tv value
31    #undef  CAM_SHOW_OSD_IN_SHOOT_MENU      // On some cameras Canon shoot menu has additional functionality and useful in this case to see CHDK OSD in this mode 
32    #define CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO  1 // Camera can unlock optical zoom in video (if it is locked)
33
34
35//----------------------------------------------------------
36// Overridden values for each camera
37//----------------------------------------------------------
38
39//==========================================================
40// G-series
41//==========================================================
42#if   defined (CAMERA_g7)
43    #define CAM_PROPSET                 1
44
45    #define CAM_RAW_ROWPIX              3736   // for 10 MP
46    #define CAM_RAW_ROWS                2772   // for 10 MP
47   
48    #undef  CAM_USE_ZOOM_FOR_MF
49    #define CAM_ADJUSTABLE_ALT_BUTTON   1
50    #define CAM_MULTIPART               1
51    #define CAM_HAS_ND_FILTER           1
52   
53
54//==========================================================
55// A-series
56//==========================================================
57#elif defined (CAMERA_a460)
58    #define CAM_PROPSET                 2
59
60    #define CAM_RAW_ROWPIX              2664   // for 5 MP 1/3" sensor size
61    #define CAM_RAW_ROWS                1968   // for 5 MP 1/3" sensor size
62
63    #undef  CAM_USE_ZOOM_FOR_MF
64    #undef  CAM_HAS_ZOOM_LEVER
65    #define CAM_DRAW_EXPOSITION         1
66    #undef  CAM_HAS_ERASE_BUTTON
67    #undef  CAM_HAS_IRIS_DIAPHRAGM
68    #define CAM_HAS_ND_FILTER           1
69    #undef  CAM_HAS_MANUAL_FOCUS
70    #undef  CAM_HAS_USER_TV_MODES
71    #define CAM_SHOW_OSD_IN_SHOOT_MENU   1
72   
73//----------------------------------------------------------
74#elif defined (CAMERA_a550)
75    #define CAM_PROPSET                 2
76
77    #define CAM_RAW_ROWPIX              3152   // for 7 MP
78    #define CAM_RAW_ROWS                2340   // for 7 MP
79
80    #undef  CAM_USE_ZOOM_FOR_MF
81    #define CAM_MULTIPART               1
82    #undef  CAM_HAS_ERASE_BUTTON
83    #undef  CAM_HAS_IRIS_DIAPHRAGM
84    #define CAM_HAS_ND_FILTER           1
85    #undef  CAM_HAS_MANUAL_FOCUS
86    #undef  CAM_HAS_USER_TV_MODES
87    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
88
89//----------------------------------------------------------
90#elif defined (CAMERA_a560)
91    #define CAM_PROPSET                 2
92
93    #define CAM_RAW_ROWPIX              3152   // for 7 MP
94    #define CAM_RAW_ROWS                2340   // for 7 MP
95
96    #undef  CAM_USE_ZOOM_FOR_MF
97    #undef  CAM_REMOTE
98    #define CAM_MULTIPART               1
99    #undef  CAM_HAS_ERASE_BUTTON
100    #undef  CAM_HAS_IRIS_DIAPHRAGM
101    #define CAM_HAS_ND_FILTER           1
102    #undef  CAM_HAS_MANUAL_FOCUS
103    #undef  CAM_HAS_USER_TV_MODES
104    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
105
106//----------------------------------------------------------
107#elif defined (CAMERA_a570)
108    #define CAM_PROPSET                 2
109
110    #define CAM_RAW_ROWPIX              3152   // for 7 MP
111    #define CAM_RAW_ROWS                2340   // for 7 MP
112    #define CAM_MULTIPART               1
113//----------------------------------------------------------
114#elif defined (CAMERA_a610)
115    #define CAM_PROPSET                 1
116
117    #define CAM_RAW_ROWPIX              2672   // for 5 MP
118    #define CAM_RAW_ROWS                1968   // for 5 MP
119   
120    #define CAM_SWIVEL_SCREEN           1
121    #undef  CAM_CAN_SD_OVER_NOT_IN_MF
122
123
124//----------------------------------------------------------
125#elif defined (CAMERA_a620)
126    #define CAM_PROPSET                 1
127
128    #define CAM_RAW_ROWPIX              3152   // for 7 MP
129    #define CAM_RAW_ROWS                2340   // for 7 MP
130   
131    #define CAM_SWIVEL_SCREEN           1
132    #undef  CAM_CAN_SD_OVER_NOT_IN_MF
133
134
135//----------------------------------------------------------
136#elif defined (CAMERA_a630)
137    #define CAM_PROPSET                 1
138
139    #define CAM_RAW_ROWPIX              3344   // for 8 MP
140    #define CAM_RAW_ROWS                2484   // for 8 MP
141   
142    #define CAM_SWIVEL_SCREEN           1
143    #define CAM_MULTIPART               1
144    #undef  CAM_CAN_SD_OVER_NOT_IN_MF
145
146
147//----------------------------------------------------------
148#elif defined (CAMERA_a640)
149    #define CAM_PROPSET                 1
150
151    #define CAM_RAW_ROWPIX              3736   // for 10 MP
152    #define CAM_RAW_ROWS                2772   // for 10 MP
153   
154    #define CAM_SWIVEL_SCREEN           1
155    #define CAM_MULTIPART               1
156    #undef  CAM_CAN_SD_OVER_NOT_IN_MF
157
158
159//----------------------------------------------------------
160#elif defined (CAMERA_a650)
161    #define CAM_PROPSET                 2
162    #define CAM_DRYOS                   1
163
164    #define CAM_RAW_ROWPIX              4104   // for 12 MP
165    #define CAM_RAW_ROWS                3048   // for 12 MP
166   
167    #define CAM_SWIVEL_SCREEN           1
168    #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO
169
170
171//----------------------------------------------------------
172#elif defined (CAMERA_a700)
173    #define CAM_PROPSET                 1
174
175    #define CAM_RAW_ROWPIX              2888   // for 6 MP
176    #define CAM_RAW_ROWS                2136   // for 6 MP
177
178    #undef  CAM_REMOTE
179
180//----------------------------------------------------------
181#elif defined (CAMERA_a710)
182    #define CAM_PROPSET                 1
183
184    #define CAM_RAW_ROWPIX              3152   // for 7 MP
185    #define CAM_RAW_ROWS                2340   // for 7 MP
186
187    #define CAM_MULTIPART               1
188//----------------------------------------------------------
189#elif defined (CAMERA_a720)
190    #define CAM_PROPSET                 2
191    #define CAM_DRYOS                   1
192
193    #define CAM_RAW_ROWPIX              3336   // for new 8 MP
194    #define CAM_RAW_ROWS                2480   // for new 8 MP
195    #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO
196
197
198//==========================================================
199// SD-Series (IXUS-Series)
200//==========================================================
201#elif defined (CAMERA_ixus55_sd450)
202    #define CAM_PROPSET                 1
203
204    #define CAM_RAW_ROWPIX              2672   // for 5 MP
205    #define CAM_RAW_ROWS                1968   // for 5 MP
206
207    #undef  CAM_USE_ZOOM_FOR_MF
208    #undef  CAM_HAS_ERASE_BUTTON
209    #undef  CAM_HAS_IRIS_DIAPHRAGM
210    #define CAM_HAS_ND_FILTER           1
211    #undef  CAM_HAS_MANUAL_FOCUS
212    #undef  CAM_HAS_USER_TV_MODES
213    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
214
215//----------------------------------------------------------
216#elif defined (CAMERA_ixus65_sd630)
217    #define CAM_PROPSET                 1
218
219    #define CAM_RAW_ROWPIX              2888   // for 6 MP
220    #define CAM_RAW_ROWS                2136   // for 6 MP
221
222    #undef  CAM_USE_ZOOM_FOR_MF
223    #undef  CAM_HAS_ERASE_BUTTON
224    #undef  CAM_HAS_IRIS_DIAPHRAGM
225    #define CAM_HAS_ND_FILTER           1
226    #undef  CAM_HAS_MANUAL_FOCUS
227    #undef  CAM_HAS_USER_TV_MODES
228    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
229    #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO
230
231//----------------------------------------------------------
232#elif defined (CAMERA_ixus70_sd1000)
233    #define CAM_PROPSET                 2
234
235    #define CAM_RAW_ROWPIX              3152   // for 7 MP
236    #define CAM_RAW_ROWS                2340   // for 7 MP
237
238    #undef  CAM_USE_ZOOM_FOR_MF
239    #undef  CAM_HAS_ERASE_BUTTON
240    #undef  CAM_HAS_IRIS_DIAPHRAGM
241    #define CAM_HAS_ND_FILTER           1
242    #undef  CAM_HAS_MANUAL_FOCUS
243    #undef  CAM_HAS_USER_TV_MODES
244    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
245
246//----------------------------------------------------------
247#elif defined (CAMERA_ixus700_sd500)
248    #define CAM_PROPSET                 1
249
250    #define CAM_RAW_ROWPIX              3152   // for 7 MP
251    #define CAM_RAW_ROWS                2340   // for 7 MP
252
253    #undef  CAM_USE_ZOOM_FOR_MF
254    #define CAM_DRAW_EXPOSITION         1
255    #undef  CAM_HAS_ERASE_BUTTON
256    #undef  CAM_HAS_IRIS_DIAPHRAGM
257    #define CAM_HAS_ND_FILTER           1
258    #undef  CAM_HAS_MANUAL_FOCUS
259    #undef  CAM_HAS_USER_TV_MODES
260    #undef  CAM_CAN_SD_OVERRIDE
261    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
262    #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO
263
264//----------------------------------------------------------
265#elif defined (CAMERA_ixus800_sd700)
266    #define CAM_PROPSET                 1
267
268    #define CAM_RAW_ROWPIX              2888   // for 6 MP
269    #define CAM_RAW_ROWS                2136   // for 6 MP
270
271    #undef  CAM_USE_ZOOM_FOR_MF
272    #define CAM_DRAW_EXPOSITION         1
273    #undef  CAM_HAS_ERASE_BUTTON
274    #undef  CAM_HAS_IRIS_DIAPHRAGM
275    #define CAM_HAS_ND_FILTER           1
276    #undef  CAM_HAS_MANUAL_FOCUS
277    #undef  CAM_HAS_USER_TV_MODES
278    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
279   
280//----------------------------------------------------------
281#elif defined (CAMERA_ixus850_sd800)
282    #define CAM_PROPSET                 1
283
284    #define CAM_RAW_ROWPIX              3152   // for 7 MP
285    #define CAM_RAW_ROWS                2340   // for 7 MP
286
287    #undef  CAM_USE_ZOOM_FOR_MF
288    #undef  CAM_HAS_ERASE_BUTTON
289    #undef  CAM_HAS_IRIS_DIAPHRAGM
290    #define CAM_HAS_ND_FILTER           1
291    #undef  CAM_HAS_MANUAL_FOCUS
292    #undef  CAM_HAS_USER_TV_MODES
293    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
294   
295//----------------------------------------------------------
296#elif defined (CAMERA_ixus950_sd850)
297    #define CAM_PROPSET                 2
298
299    #define CAM_RAW_ROWPIX              3336   // for new 8 MP
300    #define CAM_RAW_ROWS                2480   // for new 8 MP
301
302    #undef  CAM_USE_ZOOM_FOR_MF
303    #undef  CAM_HAS_ERASE_BUTTON
304    #undef  CAM_HAS_IRIS_DIAPHRAGM
305    #define CAM_HAS_ND_FILTER           1
306    #undef  CAM_HAS_MANUAL_FOCUS
307    #undef  CAM_HAS_USER_TV_MODES
308    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
309
310//==========================================================
311// S-Series
312//==========================================================
313#elif defined (CAMERA_s2is)
314    #define CAM_PROPSET                 1
315
316    #define CAM_RAW_ROWPIX              2672   // for 5 MP
317    #define CAM_RAW_ROWS                1968   // for 5 MP
318   
319    #define CAM_SWIVEL_SCREEN           1
320    #define CAM_ADJUSTABLE_ALT_BUTTON   1
321    #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO
322
323
324//----------------------------------------------------------
325#elif defined (CAMERA_s3is)
326    #define CAM_PROPSET                 1
327
328    #define CAM_RAW_ROWPIX              2888   // for 6 MP
329    #define CAM_RAW_ROWS                2136   // for 6 MP
330   
331    #define CAM_SWIVEL_SCREEN           1
332    #define CAM_ADJUSTABLE_ALT_BUTTON   1
333    #define CAM_MULTIPART               1
334    #undef  CAM_CAN_SD_OVER_NOT_IN_MF
335    #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO
336
337
338//----------------------------------------------------------
339#elif defined (CAMERA_s5is)
340    #define CAM_PROPSET                 2
341    #define CAM_DRYOS                   1
342
343    #define CAM_RAW_ROWPIX              3336   // for new 8 MP
344    #define CAM_RAW_ROWS                2480   // for new 8 MP
345   
346    #define CAM_SWIVEL_SCREEN           1
347    #define CAM_ADJUSTABLE_ALT_BUTTON   1
348    #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO
349
350
351//----------------------------------------------------------
352#else
353#error camera type not defined
354#endif
355
356#endif
Note: See TracBrowser for help on using the repository browser.