root/trunk/platform/sx130is/platform_camera.h @ 1140

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

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 - SX130IS - platform_camera.h
2
3// This file contains the various settings values specific to the SX130IS 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                                 4
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     #undef  CAM_CAN_SD_OVER_NOT_IN_MF
31     #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO
32     //#define CAM_HAS_VIDEO_BUTTON                        0
33     #define CAM_VIDEO_QUALITY_ONLY                      1
34     #define CAM_BRACKETING                              1
35     #undef  CAM_VIDEO_CONTROL
36     #define CAM_MULTIPART                               1
37     #define CAM_HAS_JOGDIAL                             1
38     #undef  CAM_USE_ZOOM_FOR_MF
39     #undef  CAM_UNCACHED_BIT
40     #define CAM_UNCACHED_BIT                            0x40000000
41 
42     #define DNG_SUPPORT                                 1
43     // pattern
44     #define cam_CFAPattern                              0x02010100 // Red  Green  Green  Blue
45     // color
46     #define CAM_COLORMATRIX1                               \
47       827547, 1000000, -290458, 1000000, -126086, 1000000, \
48       -12829, 1000000,  530507, 1000000,   50537, 1000000, \
49         5181, 1000000,   48183, 1000000,  245014, 1000000
50     #define cam_CalibrationIlluminant1                  1 // Daylight
51 
52     // cropping
53     #define CAM_JPEG_WIDTH                              4000
54     #define CAM_JPEG_HEIGHT                             3000
55     #define CAM_ACTIVE_AREA_X1                          36
56     #define CAM_ACTIVE_AREA_Y1                          20
57     #define CAM_ACTIVE_AREA_X2                          4036
58     #define CAM_ACTIVE_AREA_Y2                          3020
59     // camera name
60     #define PARAM_CAMERA_NAME                           4 // parameter number for GetParameterData
61     #undef  CAM_SENSOR_BITS_PER_PIXEL
62     #define CAM_SENSOR_BITS_PER_PIXEL                   12
63     #undef  CAM_WHITE_LEVEL
64     #define CAM_WHITE_LEVEL                             ((1<<CAM_SENSOR_BITS_PER_PIXEL)-1)
65     #undef  CAM_BLACK_LEVEL
66     #define CAM_BLACK_LEVEL                             127
67 
68     #define CAM_EXT_TV_RANGE                            1
69     #define CAM_QUALITY_OVERRIDE                        1
70 
71     // copied from the SX200 which has the same video buffer size
72     #undef CAM_USES_ASPECT_CORRECTION
73     #undef CAM_USES_ASPECT_YCORRECTION
74     #define CAM_USES_ASPECT_CORRECTION                  1  //camera uses the modified graphics primitives to map screens an viewports to buffers more sized
75     #define CAM_USES_ASPECT_YCORRECTION                 0  //only uses mappings on x coordinate
76 
77     #undef ASPECT_XCORRECTION
78     #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
79 
80     #undef ASPECT_GRID_XCORRECTION
81     #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
82     #undef ASPECT_GRID_YCORRECTION
83     #define ASPECT_GRID_YCORRECTION(y)                  ((y))  //y correction for grids  made on a 360x240 As the buffer is 720x240 we have no correction here.
84 
85     #undef ASPECT_VIEWPORT_XCORRECTION
86     #define ASPECT_VIEWPORT_XCORRECTION(x)              ASPECT_GRID_XCORRECTION(x)
87     #undef ASPECT_VIEWPORT_YCORRECTION
88     #define ASPECT_VIEWPORT_YCORRECTION(y)              ((y))
89 
90     //games mappings
91     #undef GAMES_SCREEN_WIDTH
92     #define GAMES_SCREEN_WIDTH                          360
93     #undef GAMES_SCREEN_HEIGHT
94     #define GAMES_SCREEN_HEIGHT                         240
95     #undef ASPECT_GAMES_XCORRECTION
96     // 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
97     // 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
98     // other modes in perfect aspect ratio 4/3: slightly better visualization: file menus more readable, ...
99     #define ASPECT_GAMES_XCORRECTION(x)                 (((x)<<1))
100     #undef ASPECT_GAMES_YCORRECTION
101     #define ASPECT_GAMES_YCORRECTION(y)                 ((y))  //none
102 
103     #define CAM_ZEBRA_ASPECT_ADJUST                     1
104     #define CAM_ZEBRA_NOBUF                             1
105 
106     #undef CAM_BITMAP_PALETTE
107     #define CAM_BITMAP_PALETTE                          7
108 
109     //zebra letterbox for saving memory
110     #undef ZEBRA_HMARGIN0
111     #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).
112 
113     //#undef EDGE_HMARGIN
114     //#define EDGE_HMARGIN                                28
115     #define CAM_CHDK_PTP 1     
116     #define CAM_DATE_FOLDER_NAMING                      1
117 
118     // Menu width like in g11 and s90
119     #undef CAM_MENU_BORDERWIDTH
120     #define CAM_MENU_BORDERWIDTH                        10
121     // CR2 accesible through USB
122     #undef DEFAULT_RAW_EXT
123     #define DEFAULT_RAW_EXT                             2
124
125        #define CAM_STARTUP_CRASH_FILE_OPEN_FIX 1                               // enable fix for camera crash at startup when opening the conf / font files
126                                                                                                                        // see http://chdk.setepontos.com/index.php?topic=6179.0
127     
128 //----------------------------------------------------------
129 
130        //********
131        /////SX200
132        //********
Note: See TracBrowser for help on using the browser.