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

Revision 1140, 5.2 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 - SX20 - platform_camera.h
2
3// This file contains the various settings values specific to the SX20 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                                     3
24        #define CAM_DRYOS                                       1
25        #define CAM_DRYOS_2_3_R39                       1
26
27        #define CAM_RAW_ROWPIX                          4080
28        #define CAM_RAW_ROWS                            3048
29
30        #define CAM_SWIVEL_SCREEN                       1
31        #define CAM_ADJUSTABLE_ALT_BUTTON       1
32        #undef  CAM_CAN_SD_OVER_NOT_IN_MF
33        #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO
34        #define CAM_HAS_VIDEO_BUTTON            1
35        #define CAM_VIDEO_QUALITY_ONLY          1
36        #define CAM_BRACKETING                          1
37        #undef  CAM_VIDEO_CONTROL
38        #define CAM_MULTIPART                           1
39        #define CAM_HAS_JOGDIAL                         1
40        #undef  CAM_USE_ZOOM_FOR_MF
41        #undef  CAM_UNCACHED_BIT                        // shut up compiler
42        #define CAM_UNCACHED_BIT                        0x40000000
43
44        // pattern
45        #define cam_CFAPattern 0x02010100 // Red  Green  Green  Blue
46        // color
47
48        #define CAM_COLORMATRIX1                               \
49      827547, 1000000, -290458, 1000000, -126086, 1000000, \
50      -12829, 1000000,  530507, 1000000,   50537, 1000000, \
51        5181, 1000000,   48183, 1000000,  245014, 1000000
52
53        #define cam_CalibrationIlluminant1      1 // Daylight
54        // cropping
55        #define CAM_JPEG_WIDTH                          4000
56        #define CAM_JPEG_HEIGHT                         3000
57        #define CAM_ACTIVE_AREA_X1                      24
58        #define CAM_ACTIVE_AREA_Y1                      12
59        #define CAM_ACTIVE_AREA_X2                      4080-48
60        #define CAM_ACTIVE_AREA_Y2                      3048-24
61        // camera name
62        #define PARAM_CAMERA_NAME                       4 // parameter number for GetParameterData
63        #undef  CAM_SENSOR_BITS_PER_PIXEL
64        #undef  CAM_WHITE_LEVEL
65        #undef  CAM_BLACK_LEVEL
66        #define CAM_SENSOR_BITS_PER_PIXEL       12
67        #define CAM_WHITE_LEVEL                         ((1<<CAM_SENSOR_BITS_PER_PIXEL)-1)
68        #define CAM_BLACK_LEVEL                         127
69
70        #define CAM_EXT_TV_RANGE                        1
71        #define CAM_QUALITY_OVERRIDE            1
72
73        // copied from the SX200 which has the same video buffer size
74        #undef CAM_USES_ASPECT_CORRECTION
75        #undef CAM_USES_ASPECT_YCORRECTION
76        #define CAM_USES_ASPECT_CORRECTION              1  //camera uses the modified graphics primitives to map screens an viewports to buffers more sized
77        #define CAM_USES_ASPECT_YCORRECTION             0  //only uses mappings on x coordinate
78
79        #undef ASPECT_XCORRECTION
80        #define ASPECT_XCORRECTION(x)  ( ( ((x)<<3) + (x) )  >>2 )  //correction x*screen_buffer_width/screen_width = x*720/320 = x*9/4 = (x<<3 + x)>>2
81
82        #undef ASPECT_GRID_XCORRECTION
83        #define ASPECT_GRID_XCORRECTION(x)  ( ((x)<<3)/9  )  //grids are designed on a 360x240 basis and screen is 320x240, we need x*320/360=x*8/9
84        #undef ASPECT_GRID_YCORRECTION
85    #define ASPECT_GRID_YCORRECTION(y)  ( (y) )  //y correction for grids  made on a 360x240 As the buffer is 720x240 we have no correction here.
86
87        #undef ASPECT_VIEWPORT_XCORRECTION
88        #define ASPECT_VIEWPORT_XCORRECTION(x) ASPECT_GRID_XCORRECTION(x) //viewport is 360x240 and screen 320x240, we need x*320/360=x*8/9, equal than grids, used by edgeoverlay
89        #undef ASPECT_VIEWPORT_YCORRECTION
90        #define ASPECT_VIEWPORT_YCORRECTION(y) ( (y) )
91
92        //games mappings
93        #undef GAMES_SCREEN_WIDTH
94        #undef GAMES_SCREEN_HEIGHT
95        #define GAMES_SCREEN_WIDTH              360
96        #define GAMES_SCREEN_HEIGHT             240
97        #undef ASPECT_GAMES_XCORRECTION
98        // 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
99        // 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
100        // other modes in perfect aspect ratio 4/3: slightly better visualization: file menus more readable, ...
101        #define ASPECT_GAMES_XCORRECTION(x)   ( ((x)<<1) )
102        #undef ASPECT_GAMES_YCORRECTION
103        #define ASPECT_GAMES_YCORRECTION(y)   ( (y) )  //none
104
105    #define CAM_ZEBRA_ASPECT_ADJUST 1
106    #define CAM_ZEBRA_NOBUF 1
107
108        #undef CAM_BITMAP_PALETTE
109        #define CAM_BITMAP_PALETTE              6
110
111   //zebra letterbox for saving memory
112   #undef ZEBRA_HMARGIN0
113   #define ZEBRA_HMARGIN0  30 //this 30 rows are not used by the display buffer is 720x240 effective, no 960x270, i.e. (270-240) reduction in widht possible but not done (more difficult to manage it and slower).
114 
115   #undef EDGE_HMARGIN
116   #define EDGE_HMARGIN 28
117   #define CAM_CHDK_PTP 1
118//----------------------------------------------------------
119
Note: See TracBrowser for help on using the repository browser.