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

Revision 1140, 6.0 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 - IXUS100_SD780 - platform_camera.h
2
3// This file contains the various settings values specific to the IXUS100_SD780 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              4080            // 12 MP 12bpp
27    #define CAM_RAW_ROWS                3048            // VERIFY_SD780 Found RAW #s by searching " 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    #undef CAM_REMOTE
36    #undef CAM_SYNCH
37
38    #define CAM_HAS_ZOOM_LEVER          1
39
40//    #define CAM_CAN_SD_OVER_NOT_IN_MF   1                     // Camera allows subject distance (focus) override when not in manual focus mode
41//    #define CAM_CAN_SD_OVERRIDE         1                     // Camera allows to do subject distance override
42
43    #undef  CAM_HAS_MANUAL_FOCUS
44    #define CAM_HAS_USER_TV_MODES                 1
45    #define CAM_SHOW_OSD_IN_SHOOT_MENU            1
46    #define CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO  1
47    #define CAM_AF_SCAN_DURING_VIDEO_RECORD       1
48    #define CAM_CHDK_HAS_EXT_VIDEO_MENU           1
49
50    #define CAM_HAS_IS                  1
51    #undef CAM_HAS_JOGDIAL
52
53    #undef  CAM_VIDEO_CONTROL
54    #define CAM_VIDEO_QUALITY_ONLY      1
55
56    #define CAM_EXT_TV_RANGE            1
57
58    #undef CAM_UNCACHED_BIT
59    #define CAM_UNCACHED_BIT            0x40000000
60
61    #undef CAM_BITMAP_PALETTE
62    #define CAM_BITMAP_PALETTE          5
63
64    #undef ZEBRA_HMARGIN0
65    #define ZEBRA_HMARGIN0              150                     //zebra adjust buffer height: show use at sx200is: needed for save memory space
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    // pattern
76    //RealRom:FFA99FB4                    ADR     R0, aObRG1G2BLdLdLd ; "\n  OB : (R, G1, G2, B) = (%ld, %ld, %ld"...
77    #define cam_CFAPattern              0x02010100              // Red  Green  Green  Blue
78
79    // color preliminary (see DNG4PS2 wiki)
80    #define CAM_COLORMATRIX1                               \
81      661840,  1000000, -185671, 1000000, -97110,  1000000, \
82      -83661,  1000000, 578860, 1000000,   32308,  1000000, \
83      -8681,    1000000, 70356,   1000000, 207341, 1000000
84
85    //Here is an alternate CAM_COLORMATRIX1 - Current one is nice for me but hey I'm no colour expert.
86    //XYZ -> Camera matrix:
87    //0.459395 -0.129083 -0.068085
88    //-0.055837 0.400827 0.020378
89    //-0.004622 0.048662 0.139970
90
91    #define cam_CalibrationIlluminant1  17                      // Standard Light A
92
93        // cropping
94    #define CAM_JPEG_WIDTH              4000
95    #define CAM_JPEG_HEIGHT             3000
96    #define CAM_ACTIVE_AREA_X1          40
97    #define CAM_ACTIVE_AREA_Y1          24
98    #define CAM_ACTIVE_AREA_X2          4056
99    #define CAM_ACTIVE_AREA_Y2          3040
100    // camera name
101    #define PARAM_CAMERA_NAME           4                       // parameter number for GetParameterData sd990: OK
102
103    #undef CAM_USES_ASPECT_CORRECTION
104    #undef CAM_USES_ASPECT_YCORRECTION
105    #define CAM_USES_ASPECT_CORRECTION          1  //camera uses the modified graphics primitives to map screens an viewports to buffers more sized
106    #define CAM_USES_ASPECT_YCORRECTION         0  //only uses mappings on x coordinate
107
108    #undef ASPECT_XCORRECTION
109    #define ASPECT_XCORRECTION(x)   ( ((x)<<1) )
110
111    // Note color palette affects grids!
112    #undef ASPECT_GRID_XCORRECTION
113    #define ASPECT_GRID_XCORRECTION(x)   ( (x) )
114
115    #undef ASPECT_GRID_YCORRECTION
116    #define ASPECT_GRID_YCORRECTION(y)  ( (y) )
117
118    #undef ASPECT_VIEWPORT_XCORRECTION
119    #define ASPECT_VIEWPORT_XCORRECTION(x) ASPECT_GRID_XCORRECTION(x)
120    #undef ASPECT_VIEWPORT_YCORRECTION
121    #define ASPECT_VIEWPORT_YCORRECTION(y) ( (y) )
122
123    // Note color palette affects games!
124        //games mappings
125        #undef GAMES_SCREEN_WIDTH
126        #undef GAMES_SCREEN_HEIGHT
127        #define GAMES_SCREEN_WIDTH              360
128        #define GAMES_SCREEN_HEIGHT             240
129        #undef ASPECT_GAMES_XCORRECTION
130        // 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
131        // used by gui.c that configures the draw environment (through new draw_gui function) depending on gui_mode: we have then 360x240 for games (but deformed output:circles are not circles) and 320x240 for
132        // other modes in perfect aspect ratio 4/3: slightly better visualization: file menus more readable, ...
133        #define ASPECT_GAMES_XCORRECTION(x)   ( ((x)<<1) )
134        #undef ASPECT_GAMES_YCORRECTION
135        #define ASPECT_GAMES_YCORRECTION(y)   ( (y) )  //none
136    #define CAM_ZEBRA_ASPECT_ADJUST 1
137        // camera has little free memory
138    #define CAM_ZEBRA_NOBUF 1
139//----------------------------------------------------------
140
Note: See TracBrowser for help on using the repository browser.