| 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)<<1) |
|---|
| 79 | |
|---|
| 80 | #undef ASPECT_GRID_XCORRECTION |
|---|
| 81 | #define ASPECT_GRID_XCORRECTION(x) (x) //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 | #define CAM_DRIVE_MODE_FROM_TIMER_MODE // use PROPCASE_TIMER_MODE to check for multiple shot custom timer. |
|---|
| 129 | // Used to enabled bracketing in custom timer, required on many recent cameras |
|---|
| 130 | // see http://chdk.setepontos.com/index.php/topic,3994.405.html |
|---|
| 131 | |
|---|
| 132 | //---------------------------------------------------------- |
|---|
| 133 | |
|---|
| 134 | //******** |
|---|
| 135 | /////SX200 |
|---|
| 136 | //******** |
|---|