source: trunk/platform/ixus120_sd940/platform_camera.h @ 1255

Revision 1255, 6.6 KB checked in by philmoz, 22 months ago (diff)

Enable CAM_DETECT_SCREEN_ERASE for the IXUS120_SD940 (from waterwingz).
http://chdk.setepontos.com/index.php?topic=6705.msg71069#msg71069

  • Property svn:eol-style set to native
Line 
1// Camera - IXUS120_SD940 - platform_camera.h
2
3// This file contains the various settings values specific to the IXUS120_SD940 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_DRYOS_2_3_R39                       1  //stat is different, as well as some other functions
24        #define SYNCHABLE_REMOTE_NOT_ENABLED 1
25    #define CAM_PROPSET                 3
26    #define CAM_DRYOS                   1
27
28    #define CAM_RAW_ROWPIX              4080  //  12M 41044080 ?? // from calcs see 100C lib.c
29    #define CAM_RAW_ROWS                3048  //  "     "    "    "    "
30                                                                                       
31    #undef CAM_SWIVEL_SCREEN
32    #undef CAM_ADJUSTABLE_ALT_BUTTON
33    #define CAM_CAN_SD_OVER_NOT_IN_MF   1
34    #define CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO 1
35    #undef CAM_HAS_VIDEO_BUTTON
36    #define CAM_VIDEO_QUALITY_ONLY          1
37        #define CAM_AF_SCAN_DURING_VIDEO_RECORD 1
38    #define CAM_BRACKETING              1
39    #undef  CAM_VIDEO_CONTROL
40    #undef  CAM_HAS_IRIS_DIAPHRAGM
41    #define CAM_MULTIPART               1
42    #undef CAM_HAS_JOGDIAL
43    #undef  CAM_USE_ZOOM_FOR_MF
44    #undef  CAM_UNCACHED_BIT  // shut up compiler
45    #define CAM_UNCACHED_BIT    0x40000000
46    #define CAM_HAS_ND_FILTER           1
47    #define CAM_CAN_SD_OVERRIDE         1
48
49    #define DNG_SUPPORT                 1
50    // pattern
51    #define cam_CFAPattern 0x02010100 // Red  Green  Green  Blue
52    // color
53
54    #undef CAM_BITMAP_PALETTE
55    #define CAM_BITMAP_PALETTE    3 
56
57    #define CAM_COLORMATRIX1                               \
58      827547, 1000000, -290458, 1000000, -126086, 1000000, \
59     -12829,  1000000, 530507,  1000000, 50537,   1000000, \
60      5181,   1000000, 48183,   1000000, 245014,  1000000
61
62    #define cam_CalibrationIlluminant1 1 // Daylight
63    // cropping
64    #define CAM_JPEG_WIDTH  4000
65    #define CAM_JPEG_HEIGHT 3000
66    #define CAM_ACTIVE_AREA_X1 20
67    #define CAM_ACTIVE_AREA_Y1 12
68    #define CAM_ACTIVE_AREA_X2 4056
69    #define CAM_ACTIVE_AREA_Y2 3038
70    // camera name
71    #define PARAM_CAMERA_NAME 4 // parameter number for GetParameterData
72    #undef  CAM_SENSOR_BITS_PER_PIXEL
73    #undef  CAM_WHITE_LEVEL
74    #undef  CAM_BLACK_LEVEL
75    #define CAM_SENSOR_BITS_PER_PIXEL   12
76    #define CAM_WHITE_LEVEL             ((1<<CAM_SENSOR_BITS_PER_PIXEL)-1)
77    #define CAM_BLACK_LEVEL             127
78
79    #define CAM_EXT_TV_RANGE            1
80
81    #define  CAM_SHOW_OSD_IN_SHOOT_MENU  1
82
83    //nandoide sept-2009
84    #undef CAM_USES_ASPECT_CORRECTION
85    #undef CAM_USES_ASPECT_YCORRECTION
86    #define CAM_USES_ASPECT_CORRECTION  1  //camera uses the modified graphics primitives to map screens an viewports to buffers more sized
87    #define CAM_USES_ASPECT_YCORRECTION  0  //only uses mappings on x coordinate
88
89
90    #undef ASPECT_XCORRECTION
91    #define ASPECT_XCORRECTION(x)  (((x)<<1))   //correction x*screen_buffer_width/screen_width
92    #undef ASPECT_GRID_XCORRECTION
93    #define ASPECT_GRID_XCORRECTION(x)  ( (x) )  //grids are designed on a 360x240 basis
94    #undef ASPECT_GRID_YCORRECTION
95    #define ASPECT_GRID_YCORRECTION(y)  ( (y) )       //y correction for grids  made on a 360x240 As the buffer is 720x240 we have no correction here.
96
97    #undef ASPECT_VIEWPORT_XCORRECTION
98    #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
99    #undef ASPECT_VIEWPORT_YCORRECTION
100    #define ASPECT_VIEWPORT_YCORRECTION(y) ( (y) )
101    #undef EDGE_HMARGIN
102    #define EDGE_HMARGIN 20
103
104    //games mappings
105        // renamed GAMES_SCREEN_WIDTH / GAMES_SCREEN_HEIGHT
106   #undef GAMES_SCREEN_WIDTH
107   #undef GAMES_SCREEN_HEIGHT
108   #define GAMES_SCREEN_WIDTH 360
109   #define GAMES_SCREEN_HEIGHT 240
110   #undef ASPECT_GAMES_XCORRECTION
111   // 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
112   // 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
113   // other modes in perfect aspect ratio 4/3: slightly better visualization: file menus more readable, ...
114   #define ASPECT_GAMES_XCORRECTION(x)   ( ((x)<<1) )
115   #undef ASPECT_GAMES_YCORRECTION
116   #define ASPECT_GAMES_YCORRECTION(y)   ( (y) )  //none
117
118   //zebra letterbox for saving memory
119
120   #undef ZEBRA_HMARGIN0
121   #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).
122
123   #define CAM_ZEBRA_ASPECT_ADJUST 1
124   #define CAM_ZEBRA_NOBUF 1
125   
126   #define CAM_CHDK_PTP 1
127
128   #define CAM_STARTUP_CRASH_FILE_OPEN_FIX    1     // enable workaround for camera crash at startup when opening the conf / font files
129                                                    // see http://chdk.setepontos.com/index.php?topic=6179.0
130
131        #define CAM_DATE_FOLDER_NAMING          0x100   //Value found in the last function, which is called in GetImageFolder. (first compare)
132
133    #define CAM_DRIVE_MODE_FROM_TIMER_MODE      // use PROPCASE_TIMER_MODE to check for multiple shot custom timer.
134                                                // Used to enabled bracketing in custom timer, required on many recent cameras
135                                                // see http://chdk.setepontos.com/index.php/topic,3994.405.html
136                                                                                               
137        #define CAM_DETECT_SCREEN_ERASE 1                       // http://chdk.setepontos.com/index.php?topic=6705.msg71062#msg71062   
138                                                                                       
139   //----------------------------------------------------------
140
Note: See TracBrowser for help on using the repository browser.