source: trunk/platform/a470/shooting.c @ 847

Revision 847, 3.6 KB checked in by reyalp, 4 years ago (diff)

Mode override support. See http://chdk.kernreaktor.org/mantis/view.php?id=64
All cameras except ixus40_sd400 should be supported

rec_mode_active (checks play_rec_mode, weak, can be overriden on cameras that need it)
screen_opened, screen_rotated: only defined on swivel screen cams, check phsw_ bits for screen pos

  • move old play/rec checking code to rec_switch_state. #ifdef'd out for now
  • move mode enum into it's own header file: modelist.h to allow easy lua generation.
  • use playrec_mode on tx1

+ add new generated lua file LUALIB/GEN/modelist.lua
+ add lua library LUALIB/capmode.lua see http://chdk.wikia.com/wiki/LUA/Scripts:Standard/Lualib/Capmode
+ add test scripts see

http://chdk.wikia.com/wiki/UBASIC/Scripts:Standard/Test/Setmode
http://chdk.wikia.com/wiki/LUA/Scripts:Standard/Test/Setmode

  • Property svn:eol-style set to native
Line 
1#define PARAM_FILE_COUNTER      0x38
2
3// DRYOS-Notes:
4// propertycase
5//   196 - overall brightness (of viewport?)
6
7#include "platform.h"
8
9const ApertureSize aperture_sizes_table[] = {
10    {  9, 307, "3.0" },
11    { 10, 333, "3.2" },
12    { 11, 360, "3.5" },
13    { 12, 391, "4.0" },
14    { 13, 426, "4.5" },
15    { 14, 457, "5.0" },
16    { 15, 495, "5.8" },
17    { 16, 586, "9.0 ND" },
18    { 17, 612, "10.0 ND" },
19    { 18, 639, "10.0 ND" },
20    { 19, 670, "11.0 ND" },
21    { 20, 705, "14.0 ND" },
22    { 21, 736, "14.0 ND" },
23    { 21, 774, "18.0 ND" },
24};
25
26const ShutterSpeed shutter_speeds_table[] = {
27    { -12, -384, "15", 15000000 },
28    { -11, -352, "13", 13000000 },
29    { -10, -320, "10", 10000000 },
30    {  -9, -288, "8",   8000000 },
31    {  -8, -256, "6",   6000000 },
32    {  -7, -224, "5",   5000000 },
33    {  -6, -192, "4",   4000000 },
34    {  -5, -160, "3.2", 3200000 },
35    {  -4, -128, "2.5", 2500000 },
36    {  -3,  -96, "2",   2000000 },
37    {  -2,  -64, "1.6", 1600000 },
38    {  -1,  -32, "1.3", 1300000 },
39    {   0,    0, "1",   1000000 },
40    {   1,   32, "0.8",  800000 },
41    {   2,   64, "0.6",  600000 },
42    {   3,   96, "0.5",  500000 },
43    {   4,  128, "0.4",  400000 },
44    {   5,  160, "0.3",  300000 },
45    {   6,  192, "1/4",  250000 },
46    {   7,  224, "1/5",  200000 },
47    {   8,  256, "1/6",  166667 },
48    {   9,  288, "1/8",  125000 },
49    {  10,  320, "1/10", 100000 },
50    {  11,  352, "1/13",  76923 },
51    {  12,  384, "1/15",  66667 },
52    {  13,  416, "1/20",  50000 },
53    {  14,  448, "1/25",  40000 },
54    {  15,  480, "1/30",  33333 },
55    {  16,  512, "1/40",  25000 },
56    {  17,  544, "1/50",  20000 },
57    {  18,  576, "1/60",  16667 },
58    {  19,  608, "1/80",  12500 },
59    {  20,  640, "1/100", 10000 },
60    {  21,  672, "1/125",  8000 },
61    {  22,  704, "1/160",  6250 },
62    {  23,  736, "1/200",  5000 },
63    {  24,  768, "1/250",  4000 },
64    {  25,  800, "1/320",  3125 },
65    {  26,  832, "1/400",  2500 },
66    {  27,  864, "1/500",  2000 },
67    {  28,  896, "1/640",  1563 },
68    {  29,  928, "1/800",  1250 },
69    {  30,  960, "1/1000", 1000 },
70    {  31,  992, "1/1250",  800 },
71    {  32, 1021, "1/1600",  625 },
72    {  33, 1053, "1/2000",  500 },
73};
74
75const ISOTable iso_table[] = {
76    { -1,    1,   "HI", -1},
77    {  0,    0, "Auto", -1},
78    {  1,   80,   "80", -1},
79    {  2,  100,  "100", -1},
80    {  3,  200,  "200", -1},
81    {  4,  400,  "400", -1},
82    {  5,  800,  "800", -1},
83    {  6, 1600, "1600", -1},
84};         
85
86static const CapturemodeMap modemap[] = {
87    { MODE_AUTO,               32768 },
88    { MODE_P,                  32772 },
89    { MODE_VIDEO_STD,          2599  },
90    { MODE_VIDEO_COMPACT,      2601  },
91    { MODE_SCN_AQUARIUM,       16408 }, 
92    { MODE_SCN_NIGHT,          16402 },  //Sunset??
93    { MODE_SCN_GRASS,          16403 },   
94    { MODE_SCN_SNOW,           16404 }, 
95    { MODE_SCN_BEACH,          16405 }, 
96    { MODE_SCN_FIREWORK,       16406 },
97        { MODE_PORTRAIT,           16397 },     
98    { MODE_INDOOR,             16401 },
99    { MODE_KIDS_PETS,          16400 },
100    { MODE_NIGHT_SNAPSHOT,     16395 },
101};
102
103#include "../generic/shooting.c"
104
105const int dof_tbl[] = {5800, 6420, 7060, 7700, 8340, 9950, 11550, 13160, 14750, 17150, 19570, 22760, 26750, 30750, 34800};
106const int dof_tbl_size = sizeof(dof_tbl)/sizeof(dof_tbl[0]);
107
108long get_file_next_counter() {
109    return get_file_counter();
110}
111
112long get_target_file_num() {
113    long n;
114   
115    n = get_file_next_counter();
116    n = (n>>4)&0x3FFF;
117    return n;
118}
119
120long get_target_dir_num() {
121    long n;
122   
123    n = get_file_next_counter();
124    n = (n>>18)&0x3FF;
125    return n;
126}
127
128int circle_of_confusion = 5;
Note: See TracBrowser for help on using the repository browser.