source: trunk/platform/a540/shooting.c @ 860

Revision 860, 5.1 KB checked in by reyalp, 3 years ago (diff)

modemap cleanup part 1

  • make all CHDK mode enum values match canon descriptions, including SCN prefix if requried
  • remove extra names that refer to the same modes:

SCN_GRASS->SCN_FOLIAGE, SCN_CHILD->SCN_KIDS_PETS, SCN_PARTY->SCN_INDOOR, SCN_WATER->SCN_UNDERWATER

  • resolve confused use of NIGHT modes as NIGHT_SCENE, NIGHT_SNAPSHOT and LONG_SHUTTER
  • add MODE_LONG_SHUTTER for cameras without a true manual mode (mostly guessed based on firmware mode list):

a2000, a450, a460, a470, a550, a560, tx1, all ixus except ixus980_sd990 (has real manual), ixusizoom_sd30 (unknown)

  • clean up modemaps as much as possible to match canon specs and firmware mode list, document these.
  • cameras with known incorrect or incomplete modemaps:

a470 stitch, color accent, color swap still and video guessed
g7 not clear which night scene mode is which
ixus40_sd30 firmware list not found, status unknown
ixus55_sd450 many modes missing from list, no way to guess in old canon mode system
ixus65_sd630 video modes guessed
ixus750_sd550 longshutter and p guessed
ixus800_sd700 video modes guessed
ixus80_sd1100 many guessed, some unknown in canon list but not modemap
ixus850_sd800 many guessed, had lots that weren't in the canon list
ixus960_sd950 guessed IS0_3200, VIDEO_HIRES
ixusizoom_sd30 completely wrong, impossible to guess with old canon system
sx100 one unknown video mode

  • remove tx1 manual exception from generic/shooting since tx1 no longer has a MODE_M entry
  • check for MODE_LONG_SHUTTER in generic shooting Tv bracketing, treat as Tv/Manual?
  • Property svn:eol-style set to native
Line 
1#define PARAM_FILE_COUNTER      0x34
2
3#include "platform.h"
4
5const ApertureSize aperture_sizes_table[] = {
6    {  9, 283, "2.6" },
7    { 10, 320, "3.2" },
8    { 11, 352, "3.5" },
9    { 12, 384, "4.0" },
10    { 13, 416, "4.5" },
11    { 14, 448, "5.0" },
12    { 15, 480, "5.6" },
13    { 16, 512, "6.3" },
14    { 17, 544, "7.1" },
15    { 18, 576, "8.0" },
16};
17
18const ShutterSpeed shutter_speeds_table[] = {
19    { -12, -384, "15", 15000000 },
20    { -11, -352, "13", 13000000 },
21    { -10, -320, "10", 10000000 },
22    {  -9, -288, "8",   8000000 },
23    {  -8, -256, "6",   6000000 },
24    {  -7, -224, "5",   5000000 },
25    {  -6, -192, "4",   4000000 },
26    {  -5, -160, "3.2", 3200000 },
27    {  -4, -128, "2.5", 2500000 },
28    {  -3,  -96, "2",   2000000 },
29    {  -2,  -64, "1.6", 1600000 },
30    {  -1,  -32, "1.3", 1300000 },
31    {   0,    0, "1",   1000000 },
32    {   1,   32, "0.8",  800000 },
33    {   2,   64, "0.6",  600000 },
34    {   3,   96, "0.5",  500000 },
35    {   4,  128, "0.4",  400000 },
36    {   5,  160, "0.3",  300000 },
37    {   6,  192, "1/4",  250000 },
38    {   7,  224, "1/5",  200000 },
39    {   8,  256, "1/6",  166667 },
40    {   9,  288, "1/8",  125000 },
41    {  10,  320, "1/10", 100000 },
42    {  11,  352, "1/13",  76923 },
43    {  12,  384, "1/15",  66667 },
44    {  13,  416, "1/20",  50000 },
45    {  14,  448, "1/25",  40000 },
46    {  15,  480, "1/30",  33333 },
47    {  16,  512, "1/40",  25000 },
48    {  17,  544, "1/50",  20000 },
49    {  18,  576, "1/60",  16667 },
50    {  19,  608, "1/80",  12500 },
51    {  20,  640, "1/100", 10000 },
52    {  21,  672, "1/125",  8000 },
53    {  22,  704, "1/160",  6250 },
54    {  23,  736, "1/200",  5000 },
55    {  24,  768, "1/250",  4000 },
56    {  25,  800, "1/320",  3125 },
57    {  26,  832, "1/400",  2500 },
58    {  27,  864, "1/500",  2000 },
59    {  28,  896, "1/640",  1563 },
60    {  29,  928, "1/800",  1250 },
61    {  30,  960, "1/1000", 1000 },
62    {  31,  992, "1/1250",  800 },
63    {  32, 1021, "1/1600",  625 },
64    {  33, 1053, "1/2000",  500 },
65//    {  34, 1084, "1/2500",  400 },
66};
67
68const ISOTable iso_table[] = {
69//    { -1,    1,   "HI", -1},
70    {  0,    0, "Auto", -1},
71    {  1,   80,   "80", -1},
72    {  2,  100,  "100", -1},
73    {  3,  200,  "200", -1},
74    {  4,  400,  "400", -1},
75    {  5,  800,  "800", -1},
76};         
77
78/*
79http://www.usa.canon.com/consumer/controller?act=ModelInfoAct&tabact=ModelTechSpecsTabAct&fcategoryid=221&modelid=12942
80Shooting Modes
81    Auto; Creative: P, Av, Tv, M; Image: Portrait, Landscape, Night Scene,
82    Special Scene
83        (Foliage, Snow, Beach, Fireworks, Underwater, Indoor, Kids & Pets,
84        Night Snapshot, Color Accent, Color Swap),
85    My Colors, Stitch Assist, Movie
86Movie: 640 x 480 / 320 x 240 (30 fps/15 fps) available up to 1GB or 1 hour for each file size,
87    320 x 240 (1 min. at 60 fps), 160 x 120 (3 min. at 15 fps)
88canon mode list FFD588D4 in 100b
89*/
90static const CapturemodeMap modemap[] = {
91    { MODE_M,                  32769 },
92    { MODE_AV,                 32770 },
93    { MODE_TV,                 32771 },
94    { MODE_P,                  32772 },
95    { MODE_AUTO,               32768 },
96    { MODE_PORTRAIT,           32781 },
97    { MODE_LANDSCAPE,          32780 },
98    { MODE_NIGHT_SCENE,        32782 }, // "night scene" on dial, different from "night snapshot" under "scene" below
99    { MODE_STITCH,             33290 },
100    { MODE_SCN_NIGHT_SNAPSHOT, 16395 }, // "night snapshot"
101    { MODE_SCN_KIDS_PETS,      16399 }, // "kids and pets"
102    { MODE_SCN_INDOOR,         16400 }, // "indoor"
103    { MODE_SCN_FOLIAGE,        16401 }, // "foliage"
104    { MODE_SCN_SNOW,           16402 }, // "snow"
105    { MODE_SCN_BEACH,          16403 }, // "beach"
106    { MODE_SCN_FIREWORK,       16404 }, // "fireworks"
107    { MODE_SCN_UNDERWATER,     16405 }, // "under water"
108    { MODE_SCN_COLOR_ACCENT,   16920 }, // "color accent"
109    { MODE_SCN_COLOR_SWAP,     16921 }, // "color swap"
110    { MODE_VIDEO_STD,          2593  },
111    { MODE_VIDEO_SPEED,        2594  }, // "fast frame rate"
112    { MODE_VIDEO_COMPACT,      2595  }, // "compact"
113    { MODE_VIDEO_COLOR_ACCENT, 2591  }, // "color accent"
114    { MODE_VIDEO_COLOR_SWAP,   2592  }, // "color swap"
115};
116
117#include "../generic/shooting.c"
118
119long get_file_next_counter() {
120     return ((get_file_counter()>>4)+1)<<4;
121}
122
123long get_target_file_num() {
124    long n;
125   
126    n = get_file_next_counter();
127    n = (n>>4)&0x3FFF;
128    return n;
129}
130
131long get_target_dir_num() {
132    long n;
133   
134    n = get_file_next_counter();
135    n = (n>>18)&0x3FF;
136    return n;
137}
138
139int circle_of_confusion = 5;
140
141int get_IS_mode(void){
142 char v;
143 _GetPropertyCase(229,&v,sizeof(v));
144 return v;
145}
146
147char* shooting_get_tv_str()
148{
149    short int tvv;
150    long i;
151    _GetPropertyCase(PROPCASE_TV, &tvv, sizeof(tvv));
152    for (i=0;i<SS_SIZE;i++){
153        if (shutter_speeds_table[i].prop_id >= tvv)
154            return (char*)shutter_speeds_table[i].name;
155    }
156    return (void*)"?";
157}
158
159char* shooting_get_av_str()
160{
161    short int avv;
162    long i;
163    _GetPropertyCase(PROPCASE_AV, &avv, sizeof(avv));
164    for (i=0;i<AS_SIZE;i++){
165        if (aperture_sizes_table[i].prop_id == avv)
166            return (char*)aperture_sizes_table[i].name;
167    }
168    return (char*) "?";
169}
Note: See TracBrowser for help on using the repository browser.