source: trunk/platform/d10/platform_camera.h @ 1140

Revision 1140, 5.7 KB checked in by reyalP, 2 years ago (diff)

split camera.h into individual files for each camera, from philmoz in http://chdk.setepontos.com/index.php?topic=650.msg64552#msg64552 + minor cleanup in camera.h

  • Property svn:eol-style set to native
Line 
1// Camera - D10 - platform_camera.h
2
3// This file contains the various settings values specific to the D10 camera.
4// This file is referenced via the 'include/camera.h' file and should not be loaded directly.
5
6// If adding a new settings value put a suitable default in 'include/camera.h',
7// along with documentation on what the setting does and how to determine the correct value.
8// If the setting should not have a default value then add it in 'include/camera.h'
9// using the '#undef' directive along with appropriate documentation.
10
11// Override any default values with your camera specific values in this file. Try and avoid
12// having override values that are the same as the default value.
13
14// When overriding a setting value there are two cases:
15// 1. If removing the value, because it does not apply to your camera, use the '#undef' directive.
16// 2. If changing the value it is best to use an '#undef' directive to remove the default value
17//    followed by a '#define' to set the new value.
18
19// When porting CHDK to a new camera, check the documentation in 'include/camera.h'
20// for information on each setting. If the default values are correct for your camera then
21// don't override them again in here.
22
23    #define CAM_PROPSET                 2
24    #define CAM_DRYOS                   1
25
26    #define CAM_RAW_ROWPIX              4104            // 12 MP 12bpp
27    #define CAM_RAW_ROWS                3048            // from " CrwAddress %lx, CrwSize H %ld V %ld\r"
28
29    #undef  CAM_HAS_ERASE_BUTTON
30    #undef  CAM_USE_ZOOM_FOR_MF
31    #define CAM_MULTIPART               1
32    #undef  CAM_HAS_IRIS_DIAPHRAGM
33    #define CAM_HAS_ND_FILTER           1
34
35    #define CAM_HAS_ZOOM_LEVER          1 // note, has zoom in/out buttons, not lever
36
37
38// TODO
39//    #define CAM_CAN_SD_OVER_NOT_IN_MF   1                     // Camera allows subject distance (focus) override when not in manual focus mode
40//    #define CAM_CAN_SD_OVERRIDE         1                     // Camera allows to do subject distance override
41
42    #define CAM_HAS_MANUAL_FOCUS                1
43// long shutter is acutally user TV, may work ?
44    #undef      CAM_HAS_USER_TV_MODES
45    #define CAM_SHOW_OSD_IN_SHOOT_MENU            1
46    #define CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO  1
47// TODO this doesn't seem to be working
48    #define CAM_AF_SCAN_DURING_VIDEO_RECORD       1
49    #define CAM_CHDK_HAS_EXT_VIDEO_MENU   1 // In CHDK for this camera realized adjustable video compression
50
51    #define CAM_HAS_IS                  1
52    #undef CAM_HAS_JOGDIAL
53
54    #undef  CAM_VIDEO_CONTROL
55    #define CAM_VIDEO_QUALITY_ONLY      1
56
57
58//    #define CAM_EXT_TV_RANGE            1
59
60    #undef CAM_UNCACHED_BIT
61    #define CAM_UNCACHED_BIT            0x40000000
62
63    #undef CAM_BITMAP_PALETTE
64// OK looks similar to ixus100 based on forum posts
65    #define CAM_BITMAP_PALETTE          5
66
67    #define CAM_QUALITY_OVERRIDE 1
68    #undef CAM_SENSOR_BITS_PER_PIXEL
69    #define CAM_SENSOR_BITS_PER_PIXEL   12
70    #undef CAM_WHITE_LEVEL
71    #define CAM_WHITE_LEVEL             ((1<<CAM_SENSOR_BITS_PER_PIXEL)-1)
72    #undef CAM_BLACK_LEVEL
73    #define CAM_BLACK_LEVEL             127
74
75        #define cam_CFAPattern 0x01000201 // Green  Blue  Red  Green
76
77    #define CAM_COLORMATRIX1                               \
78      14052, 10000, -5229, 10000, -1156, 10000, \
79      -1325, 10000,  9420, 10000,  2252, 10000, \
80       -498, 10000,  1957, 10000,  4116, 10000
81    #define cam_CalibrationIlluminant1  21                      // D65
82
83        // cropping OK
84    #define CAM_JPEG_WIDTH              4000
85    #define CAM_JPEG_HEIGHT             3000
86    #define CAM_ACTIVE_AREA_X1          0 // some data all the way to left, normal 8 ?
87    #define CAM_ACTIVE_AREA_Y1          10
88    #define CAM_ACTIVE_AREA_X2          4072 // or 4024
89    #define CAM_ACTIVE_AREA_Y2          3040 // or 3041 or 3020
90
91    // camera name OK
92    #define PARAM_CAMERA_NAME           4                       // parameter number for GetParameterData
93
94    // XXXX
95    #undef CAM_USES_ASPECT_CORRECTION
96    #undef CAM_USES_ASPECT_YCORRECTION
97    #define CAM_USES_ASPECT_CORRECTION          1  //camera uses the modified graphics primitives to map screens an viewports to buffers more sized
98    #define CAM_USES_ASPECT_YCORRECTION         0  //only uses mappings on x coordinate
99
100    #undef ASPECT_XCORRECTION
101    #define ASPECT_XCORRECTION(x)   ( ((x)<<1) )
102
103    // Note color palette affects grids!
104    #undef ASPECT_GRID_XCORRECTION
105    #define ASPECT_GRID_XCORRECTION(x)   ( (x) )
106
107    #undef ASPECT_GRID_YCORRECTION
108    #define ASPECT_GRID_YCORRECTION(y)  ( (y) )
109
110    #undef ASPECT_VIEWPORT_XCORRECTION
111    #define ASPECT_VIEWPORT_XCORRECTION(x) ASPECT_GRID_XCORRECTION(x)
112    #undef ASPECT_VIEWPORT_YCORRECTION
113    #define ASPECT_VIEWPORT_YCORRECTION(y) ( (y) )
114
115    // Note color palette affects games!
116        //games mappings
117        #undef GAMES_SCREEN_WIDTH
118        #undef GAMES_SCREEN_HEIGHT
119        #define GAMES_SCREEN_WIDTH              360
120        #define GAMES_SCREEN_HEIGHT             240
121        #undef ASPECT_GAMES_XCORRECTION
122        // 720/360=2 same aspect than grids and viewport but another approach: there is a lot of corrections to do in game's code, and we decide to paint directly on display buffer wirh another resolution
123        // used by gui.c that configures the draw environment (trhough new draw_gui function) depending on gui_mode: we have then 360x240 for games (but deformed output:circles are not circles) and 320x240 for
124        // other modes in perfect aspect ratio 4/3: slightly better visualization: file menus more readable, ...
125        #define ASPECT_GAMES_XCORRECTION(x)   ( ((x)<<1) )
126        #undef ASPECT_GAMES_YCORRECTION
127        #define ASPECT_GAMES_YCORRECTION(y)   ( (y) )  //none
128
129    #define CAM_ZEBRA_ASPECT_ADJUST 1
130
131    #define  CAM_CHDK_PTP               1 // include CHDK PTP support
132
133//----------------------------------------------------------
134
135
136//==========================================================
137// SD-Series (IXUS-Series)
138//==========================================================
Note: See TracBrowser for help on using the repository browser.