source: branches/release-1_0/platform/a3300/shooting.c @ 1553

Revision 1553, 5.5 KB checked in by reyalp, 17 months ago (diff)

a3300 - add some warnings for the next poor sucker to touch this incomplete, broken port

  • Property svn:eol-style set to native
Line 
1#include "lolevel.h"
2#include "platform.h"
3#include "core.h"
4#include "conf.h"
5#include "keyboard.h"
6#include "stdlib.h" 
7#include "platform.h"
8
9#define PARAM_FILE_COUNTER      0x3B   
10#define PARAM_EXPOSURE_COUNTER  0x02
11
12//No zoom 3.1 3.5 4.0 4.5 5.0 5.6 6.3 7.1 8.0
13//maz zoom 5.9 7.1 8.0
14 
15const ApertureSize aperture_sizes_table[] = {
16        {  9, 322, "3.1" },
17    { 10, 352, "3.5" },
18        { 11, 384, "4.0" },
19        { 12, 416, "4.5" },
20        { 13, 448, "5.0" },
21        { 14, 480, "5.6" },
22        { 15, 512, "6.3" },
23        { 16, 544, "7.1" },
24        { 17, 576, "8.0" }
25};
26
27const ShutterSpeed shutter_speeds_table[] = {
28        { -12, -384, "15", 15000000 },
29        { -11, -352, "13", 13000000 },
30        { -10, -320, "10", 10000000 },
31        {  -9, -288, "8",   8000000 },
32        {  -8, -256, "6",   6000000 },
33        {  -7, -224, "5",   5000000 },
34        {  -6, -192, "4",   4000000 },
35        {  -5, -160, "3.2", 3200000 },
36        {  -4, -128, "2.5", 2500000 },
37        {  -3,  -96, "2",   2000000 },
38        {  -2,  -64, "1.6", 1600000 },
39        {  -1,  -32, "1.3", 1300000 },
40        {   0,    0, "1",   1000000 },
41        {   1,   32, "0.8",  800000 },
42        {   2,   64, "0.6",  600000 },
43        {   3,   96, "0.5",  500000 },
44        {   4,  128, "0.4",  400000 },
45        {   5,  160, "0.3",  300000 },
46        {   6,  192, "1/4",  250000 },
47        {   7,  224, "1/5",  200000 },
48        {   8,  256, "1/6",  166667 },
49        {   9,  288, "1/8",  125000 },
50        {  10,  320, "1/10", 100000 },
51        {  11,  352, "1/13",  76923 },
52        {  12,  384, "1/15",  66667 },
53        {  13,  416, "1/20",  50000 },
54        {  14,  448, "1/25",  40000 },
55        {  15,  480, "1/30",  33333 },
56        {  16,  512, "1/40",  25000 },
57        {  17,  544, "1/50",  20000 },
58        {  18,  576, "1/60",  16667 },
59        {  19,  608, "1/80",  12500 },
60        {  20,  640, "1/100", 10000 },
61        {  21,  672, "1/125",  8000 },
62        {  22,  704, "1/160",  6250 },
63        {  23,  736, "1/200",  5000 },
64        {  24,  768, "1/250",  4000 },
65        {  25,  800, "1/320",  3125 },
66        {  26,  832, "1/400",  2500 },
67        {  27,  864, "1/500",  2000 },
68        {  28,  896, "1/640",  1563 },
69        {  29,  928, "1/800",  1250 },
70        {  30,  960, "1/1000", 1000 },
71        {  31,  992, "1/1250",  800 },
72        {  32, 1024, "1/1600",  625 },
73        {  33, 1056, "1/2000",  500 },
74        {  34, 1088, "1/2500",  400 },
75        {  35, 1120, "1/3200",  313 },
76};
77
78const ISOTable iso_table[] = {
79        {  0,    0, "Auto", -1},
80        {  1,  100,  "100", -1},
81        {  2,  200,  "200", -1},
82        {  3,  400,  "400", -1},
83        {  4,  800,  "800", -1},
84        {  5, 1600, "1600", -1},
85        {  6, 3200, "3200", -1},
86};
87
88// WARNING WARNING WARNING the following is copy/pasted from another camera and wrong
89/*
90http://www.usa.canon.com/cusa/support/consumer/digital_cameras/other_powershot/powershot_sx230_is#Specifications
91Shooting Modes
92        M, Av, Tv, P, Auto, Easy, Movie Digest, Portrait, Landscape, Kids & Pets, SCN, Creative Filter, Movie
93 
94Movie: High Definition: 1280 x 720 (30 fps);
95    Standard Definition: 640 x 480 (30 fps), 320 x 240 (30 fps)
96*/
97static const CapturemodeMap modemap[] = {
98        { MODE_AUTO,                    32768  },
99        { MODE_P,                           32772  },
100        { MODE_TV,                              32771  },
101        { MODE_AV,                              32770  },
102        { MODE_M,                               32769  },
103        { MODE_EASY,                            33314  },
104        { MODE_PORTRAIT,                        32783  },
105        { MODE_LANDSCAPE,                       32782  },
106        { MODE_VIDEO_SPEED,                      2626  },       //MODE_VIDEO_SUPER_SLOW_MOTION
107        { MODE_VIDEO_STD,                        2621  },
108        { MODE_KIDS_PETS,                       32786  },
109        { MODE_SCN_UNDERWATER,          16409  },
110        { MODE_SCN_LOWLIGHT,            16417  },
111        { MODE_SCN_BEACH,                       16407  },
112        { MODE_SCN_FOLIAGE,                     16405  },
113        { MODE_SCN_SNOW,                        16406  },       
114        { MODE_SCN_FIREWORK,                    16408  },       
115        { MODE_SCN_COLOR_ACCENT,         8733  },
116        { MODE_SCN_COLOR_SWAP,                   8734  },       
117        { MODE_STITCH,                              16908  },   //MODE_SCN_STITCH_ASSIST       
118        { MODE_SCN_SMART_SHUTTER,       16937  },
119        { MODE_SCN_POSTER_EFFECT,        8743  },
120        { MODE_SCN_FISHEYE,              8747  },
121        { MODE_SCN_MINIATURE,                    8748  },
122        { MODE_SCN_SUPER_VIVID,                  8742  },
123        { MODE_SCN_NIGHT_SCENE,                 16941  },       //MODE_SCN_HANDHELD_NIGHTSCENE
124        { MODE_VIDEO_IFRAME_MOVIE,               2628  },
125        { MODE_VIDEO_MOVIE_DIGEST,      33333  },
126        { MODE_SCN_HIGHSPEED_BURST,     16904  },
127        { MODE_SCN_BEST_IMAGE,          16905  },
128        { MODE_SCN_TOY_CAMERA,                   8751  },
129        { MODE_SCN_MONOCHROME,                   8754  },
130        { MODE_SCN_WINK_SELF_TIMER,             16938  },
131   { MODE_SCN_FACE_SELF_TIMER,          16936  },
132};
133
134#include "../generic/shooting.c"
135
136        // Override ISO settings (need to do this before exposure calc for ISO, as well as after)
137       
138        void __attribute__((naked,noinline)) shooting_expo_iso_override(void){
139       
140                asm volatile("STMFD   SP!, {R0-R12,LR}\n");
141                 
142                if ((state_kbd_script_run) && (photo_param_put_off.sv96))
143                        {
144                                shooting_set_sv96(photo_param_put_off.sv96, SET_NOW);
145                                // photo_param_put_off.sv96 is not reset here, it will be reset in next call to shooting_expo_param_override
146                        }
147                else if ((conf.iso_override_value) && (conf.iso_override_koef) && !(conf.override_disable==1))
148                                shooting_set_iso_real(shooting_get_iso_override_value(), SET_NOW);
149                else if (conf.autoiso_enable && shooting_get_flash_mode()/*NOT FOR FLASH AUTO MODE*/ && !(conf.override_disable==1 && conf.override_disable_all))
150                                shooting_set_autoiso(shooting_get_iso_mode());
151                 
152                asm volatile("LDMFD   SP!, {R0-R12,PC}\n");
153        }
154       
155
156long get_file_next_counter() {
157        return get_file_counter();
158}
159
160long get_target_file_num() {
161        long n;
162
163
164        n = get_file_next_counter();
165
166    n = (n>>4)&0x3FFF;
167
168        return n;
169}
170
171long get_target_dir_num() {
172        long n;
173
174        n = get_file_next_counter();
175        n = (n>>18)&0x3FF;
176        return n;
177}
178
179
180void get_target_dir_name(char *out)
181{
182        extern void _GetImageFolder(char*,int,int,int);
183        _GetImageFolder(out,get_file_next_counter(),0x400,time(NULL));
184}
185
186int circle_of_confusion = 5;
187
Note: See TracBrowser for help on using the repository browser.