source: trunk/platform/a490/shooting.c @ 2880

Revision 1632, 3.5 KB checked in by philmoz, 17 months ago (diff)

Move code from platform/generic/shooting.c to core/shooting.c (new file). This means that all the shooting code, which was not platform specific, is now compiled as 'thumb' rather than 'arm' code. This saves approx 4.5K off the core CHDK size. Also includes a re-org of the functions into groups, and cleanup of other code to call functions in shooting.c.

  • Property svn:eol-style set to native
Line 
1#define PARAM_FILE_COUNTER      0x3A
2#define PARAM_EXPOSURE_COUNTER  0x02
3
4#include "platform.h"
5
6const ApertureSize aperture_sizes_table[] = {
7    {  9, 294, "2.8" },
8    { 10, 320, "3.2" },
9    { 11, 352, "3.5" },
10    { 12, 384, "4.0" },
11    { 13, 416, "4.5" },
12    { 14, 448, "5.0" },
13    { 15, 480, "5.6" },
14    { 16, 512, "6.3" },
15    { 17, 544, "7.1" },
16    { 18, 576, "8.0" },
17};
18
19const ShutterSpeed shutter_speeds_table[] = {
20    { -12, -384, "15", 15000000 },
21    { -11, -352, "13", 13000000 },
22    { -10, -320, "10", 10000000 },
23    {  -9, -288, "8",   8000000 },
24    {  -8, -256, "6",   6000000 },
25    {  -7, -224, "5",   5000000 },
26    {  -6, -192, "4",   4000000 },
27    {  -5, -160, "3.2", 3200000 },
28    {  -4, -128, "2.5", 2500000 },
29    {  -3,  -96, "2",   2000000 },
30    {  -2,  -64, "1.6", 1600000 },
31    {  -1,  -32, "1.3", 1300000 },
32    {   0,    0, "1",   1000000 },
33    {   1,   32, "0.8",  800000 },
34    {   2,   64, "0.6",  600000 },
35    {   3,   96, "0.5",  500000 },
36    {   4,  128, "0.4",  400000 },
37    {   5,  160, "0.3",  300000 },
38    {   6,  192, "1/4",  250000 },
39    {   7,  224, "1/5",  200000 },
40    {   8,  256, "1/6",  166667 },
41    {   9,  288, "1/8",  125000 },
42    {  10,  320, "1/10", 100000 },
43    {  11,  352, "1/13",  76923 },
44    {  12,  384, "1/15",  66667 },
45    {  13,  416, "1/20",  50000 },
46    {  14,  448, "1/25",  40000 },
47    {  15,  480, "1/30",  33333 },
48    {  16,  512, "1/40",  25000 },
49    {  17,  544, "1/50",  20000 },
50    {  18,  576, "1/60",  16667 },
51    {  19,  608, "1/80",  12500 },
52    {  20,  640, "1/100", 10000 },
53    {  21,  672, "1/125",  8000 },
54    {  22,  704, "1/160",  6250 },
55    {  23,  736, "1/200",  5000 },
56    {  24,  768, "1/250",  4000 },
57    {  25,  800, "1/320",  3125 },
58    {  26,  832, "1/400",  2500 },
59    {  27,  864, "1/500",  2000 },
60    {  28,  896, "1/640",  1563 },
61    {  29,  928, "1/800",  1250 },
62    {  30,  960, "1/1000", 1000 },
63    {  31,  992, "1/1250",  800 },
64    {  32, 1024, "1/1600",  625 },
65    {  33, 1056, "1/2000",  500 },
66    {  34, 1088, "1/2500",  400 },
67    {  35, 1120, "1/3200",  313 },
68};
69
70const ISOTable iso_table[] = {
71    {  0,    0, "Auto", -1},
72    {  1,   80,   "80", -1},
73    {  2,  100,  "100", -1},
74    {  3,  200,  "200", -1},
75    {  4,  400,  "400", -1},
76    {  5,  800,  "800", -1},
77    {  6, 1600, "1600", -1},
78};         
79
80const CapturemodeMap modemap[] = {
81    { MODE_AUTO,               32768  },
82    { MODE_P,                  32772  },
83
84    { MODE_VIDEO_STD,          2609   },
85
86    { MODE_SCN_PORTRAIT,       16399  },
87    { MODE_SCN_NIGHT_SNAPSHOT, 16397  },
88    { MODE_SCN_KIDS_PETS,      16402  },
89    { MODE_SCN_INDOOR,         16403  },
90    { MODE_SCN_LOWLIGHT,       16417  },
91    { MODE_SCN_BEACH,          16407  },
92    { MODE_SCN_FOLIAGE,        16405  },
93    { MODE_SCN_SNOW,           16406  },
94    { MODE_SCN_SUNSET,         16404  },
95    { MODE_SCN_FIREWORK,       16408  },
96    { MODE_SCN_LONG_SHUTTER,   16390  },
97};
98
99#include "../generic/shooting.c"
100
101long get_file_next_counter() {
102    return get_file_counter();
103}
104
105long get_target_file_num() {
106    long n;
107
108    n = get_file_next_counter();
109    n = (n>>4)&0x3FFF;
110    return n;
111}
112
113#if defined(CAM_DATE_FOLDER_NAMING)
114void get_target_dir_name(char *out) {
115    extern void _GetImageFolder(char*,int,int,int);
116    out[0] = 'A';
117    _GetImageFolder(out+1,get_file_next_counter(),CAM_DATE_FOLDER_NAMING,time(NULL));
118    out[15] = '\0';
119}
120#else
121long get_target_dir_num() {
122    long n;
123
124    n = get_file_next_counter();
125    n = (n>>18)&0x3FF;
126    return n;
127}
128#endif
129
130int circle_of_confusion = 5;
Note: See TracBrowser for help on using the repository browser.