source: trunk/include/camera.h @ 388

Revision 388, 16.5 KB checked in by GrAnd, 5 years ago (diff)

+ Added TX1 support.
=> NOTE: Due to hardware differences there are (might be significant) changes in main core code and ALL cameras are affected

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    #undef  CAM_FEATURE_FEATHER             // Cameras with "feather" or touch wheel.
34    #define CAM_HAS_IS                  1   // Camera has image stabilizer
35
36    #undef  CAM_CONSOLE_LOG_ENABLED         // Development: internal camera stdout -> A/stdout.txt
37    #define CAM_CHDK_HAS_EXT_VIDEO_MENU 1   // In CHDK for this camera realized adjustable video compression
38
39
40//----------------------------------------------------------
41// Overridden values for each camera
42//----------------------------------------------------------
43
44//==========================================================
45// G-series
46//==========================================================
47#if   defined (CAMERA_g7)
48    #define CAM_PROPSET                 1
49
50    #define CAM_RAW_ROWPIX              3736   // for 10 MP
51    #define CAM_RAW_ROWS                2772   // for 10 MP
52   
53    #undef  CAM_USE_ZOOM_FOR_MF
54    #define CAM_ADJUSTABLE_ALT_BUTTON   1
55    #define CAM_MULTIPART               1
56    #define CAM_HAS_ND_FILTER           1
57    #undef  CAM_HAS_IS
58   
59
60//==========================================================
61// A-series
62//==========================================================
63#elif defined (CAMERA_a450)
64    #define CAM_PROPSET                 2
65
66    #define CAM_RAW_ROWPIX              2664   // for 5 MP 1/3" sensor size
67    #define CAM_RAW_ROWS                1968   // for 5 MP 1/3" sensor size
68
69    #undef  CAM_USE_ZOOM_FOR_MF
70    #undef  CAM_HAS_ZOOM_LEVER
71    #define CAM_DRAW_EXPOSITION         1
72    #undef  CAM_HAS_ERASE_BUTTON
73    #undef  CAM_HAS_IRIS_DIAPHRAGM
74    #define CAM_HAS_ND_FILTER           1
75    #undef  CAM_HAS_MANUAL_FOCUS
76    #undef  CAM_HAS_USER_TV_MODES
77    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
78    #undef  CAM_HAS_IS
79   
80//----------------------------------------------------------
81#elif defined (CAMERA_a460)
82    #define CAM_PROPSET                 2
83
84    #define CAM_RAW_ROWPIX              2664   // for 5 MP 1/3" sensor size
85    #define CAM_RAW_ROWS                1968   // for 5 MP 1/3" sensor size
86
87    #undef  CAM_USE_ZOOM_FOR_MF
88    #undef  CAM_HAS_ZOOM_LEVER
89    #define CAM_DRAW_EXPOSITION         1
90    #undef  CAM_HAS_ERASE_BUTTON
91    #undef  CAM_HAS_IRIS_DIAPHRAGM
92    #define CAM_HAS_ND_FILTER           1
93    #undef  CAM_HAS_MANUAL_FOCUS
94    #undef  CAM_HAS_USER_TV_MODES
95    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
96    #undef  CAM_HAS_IS
97   
98//----------------------------------------------------------
99#elif defined (CAMERA_a530)
100    #define CAM_PROPSET                 1
101
102//  2672x1968 image - like most other 5m sensors
103    #define CAM_RAW_ROWPIX              2672   // for 5 MP
104    #define CAM_RAW_ROWS                1968   // for 5 MP
105//  2672x1992 image - eventually probably real sensor size
106//  #define CAM_RAW_ROWPIX              2672   // for 5 MP
107//  #define CAM_RAW_ROWS                1992   // for 5 MP
108
109    #undef  CAM_USE_ZOOM_FOR_MF
110    #define CAM_HAS_ERASE_BUTTON        1
111    #undef  CAM_HAS_IRIS_DIAPHRAGM
112    #define CAM_HAS_ND_FILTER           1
113    #define CAM_HAS_MANUAL_FOCUS        1
114    #define CAM_DRAW_EXPOSITION         1
115    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
116    #undef  CAM_CAN_SD_OVER_NOT_IN_MF
117    #undef  CAM_HAS_IS
118
119//----------------------------------------------------------
120#elif defined (CAMERA_a540)
121    #define CAM_PROPSET                 1
122
123    #define CAM_RAW_ROWPIX              2888   // for 6 MP
124    #define CAM_RAW_ROWS                2136   // for 6 MP
125
126    #undef  CAM_USE_ZOOM_FOR_MF
127    #define CAM_HAS_ERASE_BUTTON        1
128    #define CAM_HAS_IRIS_DIAPHRAGM      1
129    #undef  CAM_HAS_ND_FILTER
130    #define CAM_HAS_MANUAL_FOCUS        1
131    #undef  CAM_DRAW_EXPOSITION
132    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
133    #undef  CAM_HAS_IS
134
135//----------------------------------------------------------
136#elif defined (CAMERA_a550)
137    #define CAM_PROPSET                 2
138
139    #define CAM_RAW_ROWPIX              3152   // for 7 MP
140    #define CAM_RAW_ROWS                2340   // for 7 MP
141
142    #undef  CAM_USE_ZOOM_FOR_MF
143    #define CAM_MULTIPART               1
144    #undef  CAM_HAS_ERASE_BUTTON
145    #undef  CAM_HAS_IRIS_DIAPHRAGM
146    #define CAM_HAS_ND_FILTER           1
147    #undef  CAM_HAS_MANUAL_FOCUS
148    #undef  CAM_HAS_USER_TV_MODES
149    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
150    #undef  CAM_HAS_IS
151
152//----------------------------------------------------------
153#elif defined (CAMERA_a560)
154    #define CAM_PROPSET                 2
155
156    #define CAM_RAW_ROWPIX              3152   // for 7 MP
157    #define CAM_RAW_ROWS                2340   // for 7 MP
158
159    #undef  CAM_USE_ZOOM_FOR_MF
160    #undef  CAM_REMOTE
161    #define CAM_MULTIPART               1
162    #undef  CAM_HAS_ERASE_BUTTON
163    #undef  CAM_HAS_IRIS_DIAPHRAGM
164    #define CAM_HAS_ND_FILTER           1
165    #undef  CAM_HAS_MANUAL_FOCUS
166    #undef  CAM_HAS_USER_TV_MODES
167    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
168    #undef  CAM_HAS_IS
169   
170//----------------------------------------------------------
171#elif defined (CAMERA_a570)
172    #define CAM_PROPSET                 2
173
174    #define CAM_RAW_ROWPIX              3152   // for 7 MP
175    #define CAM_RAW_ROWS                2340   // for 7 MP
176    #define CAM_MULTIPART               1
177//----------------------------------------------------------
178#elif defined (CAMERA_a610)
179    #define CAM_PROPSET                 1
180
181    #define CAM_RAW_ROWPIX              2672   // for 5 MP
182    #define CAM_RAW_ROWS                1968   // for 5 MP
183   
184    #define CAM_SWIVEL_SCREEN           1
185    #undef  CAM_CAN_SD_OVER_NOT_IN_MF
186    #undef  CAM_HAS_IS
187
188
189//----------------------------------------------------------
190#elif defined (CAMERA_a620)
191    #define CAM_PROPSET                 1
192
193    #define CAM_RAW_ROWPIX              3152   // for 7 MP
194    #define CAM_RAW_ROWS                2340   // for 7 MP
195   
196    #define CAM_SWIVEL_SCREEN           1
197    #undef  CAM_CAN_SD_OVER_NOT_IN_MF
198    #undef  CAM_HAS_IS   
199
200
201//----------------------------------------------------------
202#elif defined (CAMERA_a630)
203    #define CAM_PROPSET                 1
204
205    #define CAM_RAW_ROWPIX              3344   // for 8 MP
206    #define CAM_RAW_ROWS                2484   // for 8 MP
207   
208    #define CAM_SWIVEL_SCREEN           1
209    #define CAM_MULTIPART               1
210    #undef  CAM_CAN_SD_OVER_NOT_IN_MF
211    #undef  CAM_HAS_IS
212
213//----------------------------------------------------------
214#elif defined (CAMERA_a640)
215    #define CAM_PROPSET                 1
216
217    #define CAM_RAW_ROWPIX              3736   // for 10 MP
218    #define CAM_RAW_ROWS                2772   // for 10 MP
219   
220    #define CAM_SWIVEL_SCREEN           1
221    #define CAM_MULTIPART               1
222    #undef  CAM_CAN_SD_OVER_NOT_IN_MF
223    #undef  CAM_HAS_IS
224
225//----------------------------------------------------------
226#elif defined (CAMERA_a650)
227    #define CAM_PROPSET                 2
228    #define CAM_DRYOS                   1
229
230    #define CAM_RAW_ROWPIX              4104   // for 12 MP
231    #define CAM_RAW_ROWS                3048   // for 12 MP
232   
233    #define CAM_SWIVEL_SCREEN           1
234
235
236//----------------------------------------------------------
237#elif defined (CAMERA_a700)
238    #define CAM_PROPSET                 1
239
240    #define CAM_RAW_ROWPIX              2888   // for 6 MP
241    #define CAM_RAW_ROWS                2136   // for 6 MP
242
243    #undef  CAM_REMOTE
244    #undef  CAM_HAS_IS
245
246//----------------------------------------------------------
247#elif defined (CAMERA_a710)
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    #define CAM_MULTIPART               1
254//----------------------------------------------------------
255#elif defined (CAMERA_a720)
256    #define CAM_PROPSET                 2
257    #define CAM_DRYOS                   1
258
259    #define CAM_RAW_ROWPIX              3336   // for new 8 MP
260    #define CAM_RAW_ROWS                2480   // for new 8 MP
261
262
263//==========================================================
264// SD-Series (IXUS-Series)
265//==========================================================
266#elif defined (CAMERA_ixus55_sd450)
267    #define CAM_PROPSET                 1
268
269    #define CAM_RAW_ROWPIX              2672   // for 5 MP
270    #define CAM_RAW_ROWS                1968   // for 5 MP
271
272    #undef  CAM_USE_ZOOM_FOR_MF
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    #undef  CAM_HAS_IS
280
281//----------------------------------------------------------
282#elif defined (CAMERA_ixus65_sd630)
283    #define CAM_PROPSET                 1
284
285    #define CAM_RAW_ROWPIX              2888   // for 6 MP
286    #define CAM_RAW_ROWS                2136   // for 6 MP
287
288    #undef  CAM_USE_ZOOM_FOR_MF
289    #undef  CAM_HAS_ERASE_BUTTON
290    #undef  CAM_HAS_IRIS_DIAPHRAGM
291    #define CAM_HAS_ND_FILTER           1
292    #undef  CAM_HAS_MANUAL_FOCUS
293    #undef  CAM_HAS_USER_TV_MODES
294    #define CAM_DRAW_EXPOSITION             1
295    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
296    #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO
297    #define CAM_FEATURE_FEATHER         1
298
299    #define CAM_CONSOLE_LOG_ENABLED     1
300    #undef  CAM_HAS_IS
301    #undef  CAM_CHDK_HAS_EXT_VIDEO_MENU
302
303//----------------------------------------------------------
304#elif defined (CAMERA_ixus70_sd1000)
305    #define CAM_PROPSET                 2
306
307    #define CAM_RAW_ROWPIX              3152   // for 7 MP
308    #define CAM_RAW_ROWS                2340   // for 7 MP
309
310    #undef  CAM_USE_ZOOM_FOR_MF
311    #undef  CAM_HAS_ERASE_BUTTON
312    #undef  CAM_HAS_IRIS_DIAPHRAGM
313    #define CAM_HAS_ND_FILTER           1
314    #undef  CAM_HAS_MANUAL_FOCUS
315    #undef  CAM_HAS_USER_TV_MODES
316    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
317    #undef  CAM_HAS_IS
318
319//----------------------------------------------------------
320#elif defined (CAMERA_ixus700_sd500)
321    #define CAM_PROPSET                 1
322
323    #define CAM_RAW_ROWPIX              3152   // for 7 MP
324    #define CAM_RAW_ROWS                2340   // for 7 MP
325
326    #undef  CAM_USE_ZOOM_FOR_MF
327    #define CAM_DRAW_EXPOSITION         1
328    #undef  CAM_HAS_ERASE_BUTTON
329    #undef  CAM_HAS_IRIS_DIAPHRAGM
330    #define CAM_HAS_ND_FILTER           1
331    #undef  CAM_HAS_MANUAL_FOCUS
332    #undef  CAM_HAS_USER_TV_MODES
333    #undef  CAM_CAN_SD_OVERRIDE
334    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
335    #undef  CAM_HAS_IS
336
337//----------------------------------------------------------
338#elif defined (CAMERA_ixus800_sd700)
339    #define CAM_PROPSET                 1
340
341    #define CAM_RAW_ROWPIX              2888   // for 6 MP
342    #define CAM_RAW_ROWS                2136   // for 6 MP
343
344    #undef  CAM_USE_ZOOM_FOR_MF
345    #define CAM_DRAW_EXPOSITION         1
346    #undef  CAM_HAS_ERASE_BUTTON
347    #undef  CAM_HAS_IRIS_DIAPHRAGM
348    #define CAM_HAS_ND_FILTER           1
349    #undef  CAM_HAS_MANUAL_FOCUS
350    #undef  CAM_HAS_USER_TV_MODES
351    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
352   
353//----------------------------------------------------------
354#elif defined (CAMERA_ixus850_sd800)
355    #define CAM_PROPSET                 1
356
357    #define CAM_RAW_ROWPIX              3152   // for 7 MP
358    #define CAM_RAW_ROWS                2340   // for 7 MP
359
360    #undef  CAM_USE_ZOOM_FOR_MF
361    #undef  CAM_HAS_ERASE_BUTTON
362    #undef  CAM_HAS_IRIS_DIAPHRAGM
363    #define CAM_HAS_ND_FILTER           1
364    #undef  CAM_HAS_MANUAL_FOCUS
365    #undef  CAM_HAS_USER_TV_MODES
366    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
367   
368//----------------------------------------------------------
369#elif defined (CAMERA_ixus860_sd870)
370    #define CAM_PROPSET                 2
371    #define CAM_DRYOS                   1
372
373    #define CAM_RAW_ROWPIX              3336   // for new 8 MP
374    #define CAM_RAW_ROWS                2480   // for new 8 MP
375
376    #undef  CAM_USE_ZOOM_FOR_MF
377    #undef  CAM_HAS_ERASE_BUTTON
378    #undef  CAM_HAS_IRIS_DIAPHRAGM
379    #define CAM_HAS_ND_FILTER           1
380    #undef  CAM_HAS_MANUAL_FOCUS
381    #undef  CAM_HAS_USER_TV_MODES
382    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
383    #undef  CAM_CHDK_HAS_EXT_VIDEO_MENU
384   
385//----------------------------------------------------------
386#elif defined (CAMERA_ixus950_sd850)
387    #define CAM_PROPSET                 2
388
389    #define CAM_RAW_ROWPIX              3336   // for new 8 MP
390    #define CAM_RAW_ROWS                2480   // for new 8 MP
391
392    #undef  CAM_USE_ZOOM_FOR_MF
393    #undef  CAM_HAS_ERASE_BUTTON
394    #undef  CAM_HAS_IRIS_DIAPHRAGM
395    #define CAM_HAS_ND_FILTER           1
396    #undef  CAM_HAS_MANUAL_FOCUS
397    #undef  CAM_HAS_USER_TV_MODES
398    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
399
400//==========================================================
401// S-Series
402//==========================================================
403#elif defined (CAMERA_s2is)
404    #define CAM_PROPSET                 1
405
406    #define CAM_RAW_ROWPIX              2672   // for 5 MP
407    #define CAM_RAW_ROWS                1968   // for 5 MP
408   
409    #define CAM_SWIVEL_SCREEN           1
410    #define CAM_ADJUSTABLE_ALT_BUTTON   1
411    #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO
412
413
414//----------------------------------------------------------
415#elif defined (CAMERA_s3is)
416    #define CAM_PROPSET                 1
417
418    #define CAM_RAW_ROWPIX              2888   // for 6 MP
419    #define CAM_RAW_ROWS                2136   // for 6 MP
420   
421    #define CAM_SWIVEL_SCREEN           1
422    #define CAM_ADJUSTABLE_ALT_BUTTON   1
423    #define CAM_MULTIPART               1
424    #undef  CAM_CAN_SD_OVER_NOT_IN_MF
425    #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO
426
427
428//----------------------------------------------------------
429#elif defined (CAMERA_s5is)
430    #define CAM_PROPSET                 2
431    #define CAM_DRYOS                   1
432
433    #define CAM_RAW_ROWPIX              3336   // for new 8 MP
434    #define CAM_RAW_ROWS                2480   // for new 8 MP
435   
436    #define CAM_SWIVEL_SCREEN           1
437    #define CAM_ADJUSTABLE_ALT_BUTTON   1
438    #undef  CAM_CAN_SD_OVER_NOT_IN_MF
439    #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO
440    #undef  CAM_CHDK_HAS_EXT_VIDEO_MENU
441
442
443//==========================================================
444// TX-Series
445//==========================================================
446#elif defined (CAMERA_tx1)
447    #define CAM_PROPSET                 2
448   
449    #define CAM_RAW_ROWPIX              3152   // for 7 MP
450    #define CAM_RAW_ROWS                2340   // for 7 MP
451
452    #define CAM_SWIVEL_SCREEN           1
453    #define CAM_HAS_ND_FILTER           1
454    #undef  CAM_HAS_ERASE_BUTTON
455    #undef  CAM_HAS_MANUAL_FOCUS
456    #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO
457
458
459//----------------------------------------------------------
460#else
461    #error camera type not defined
462
463#endif
464
465#endif /* CAMERA_H */
Note: See TracBrowser for help on using the repository browser.