root/platform/sx20/shooting.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. get_file_next_counter
  2. get_target_file_num
  3. get_target_dir_name
  4. get_target_dir_num

   1 #define PARAM_FILE_COUNTER      0x38
   2 #define PARAM_EXPOSURE_COUNTER  0x02
   3 
   4 #include "platform.h"
   5 
   6 const 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 
  19 const 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 
  70 const ISOTable iso_table[] = {
  71         { -1,    1,   "HI", -1},
  72         {  0,    0, "Auto", -1},
  73         {  1,   80,   "80", -1},
  74         {  2,  100,  "100", -1},
  75         {  3,  200,  "200", -1},
  76         {  4,  400,  "400", -1},
  77         {  5,  800,  "800", -1},
  78         {  6, 1600, "1600", -1},
  79         {  7, 3200, "3200", -1},
  80 };          
  81 
  82 /*
  83 http://www.usa.canon.com/consumer/controller?act=ModelInfoAct&fcategoryid=225&modelid=17630#ModelTechSpecsAct
  84 Shooting Modes
  85         Auto, P, Av, Tv, M, C, Portrait, Landscape, Sports, 
  86         Special Scene 
  87                 (Foliage, Snow, Beach, Sunset, Fireworks, Aquarium, Night Scene, Indoor,
  88                 ISO 3200, Color Accent, Color Swap),
  89         Super Macro, Night Snapshot, Stitch Assist, Movie
  90 video res
  91 640 x 480 (30 fps/30 fps LP), 320 x 240 (30 fps) available up to 4GB or 60 minutes
  92 
  93 canon mode list FFB74378 in 100c
  94 */
  95 const CapturemodeMap modemap[] = {
  96         { MODE_AUTO,               32768  },
  97         { MODE_P,                  32772  },
  98         { MODE_TV,                 32771  },
  99         { MODE_AV,                 32770  },
 100         { MODE_M,                  32769  },
 101         { MODE_PORTRAIT,           32781  },
 102         { MODE_NIGHT_SNAPSHOT,     32779  }, 
 103         { MODE_LANDSCAPE,          32780  },
 104         // TODO dupe, order matters
 105         { MODE_VIDEO_STD,          2600   }, // video standby
 106         //{ MODE_VIDEO_STD,          3622   }, // video in progress (not clear this belongs here)
 107         { MODE_STITCH,             33290  },
 108         { MODE_SPORTS,             33287  },
 109 
 110         { MODE_NIGHT_SCENE,        16398  },
 111         { MODE_INDOOR,             16401  },
 112         { MODE_SUNSET,             16402  },
 113         { MODE_FOLIAGE,            16403  },
 114         { MODE_SNOW,               16404  },
 115         { MODE_BEACH,              16405  },
 116         { MODE_FIREWORK,           16406  },
 117         { MODE_AQUARIUM,           16408  },
 118         { MODE_ISO_3200,           16413  },
 119         { MODE_COLOR_ACCENT,       16923  },
 120         { MODE_COLOR_SWAP,         16924  }
 121 //      { MODE_SUPER_MACRO,     ???  }, // maybe it doesn't get it's own mode value ?
 122 /* this sets C mode 
 123 (saved custom settings for M, P etc.) Resulting PROPCASE_SHOOTING_MODE is whatever mode
 124 is saved in C, not this value. Need to figure out how to interface this with script
 125 */
 126 //      { MODE_C1,     8225  },
 127 };
 128 
 129 #include "../generic/shooting.c"
 130 
 131 long get_file_next_counter() {
 132         return get_file_counter();
 133 }
 134 
 135 long get_target_file_num() {
 136         long n;
 137         
 138         n = get_file_next_counter();
 139         n = (n>>4)&0x3FFF;
 140         return n;
 141 }
 142 
 143 #if defined(CAM_DATE_FOLDER_NAMING)
 144 void get_target_dir_name(char *out) {
 145     extern void _GetImageFolder(char*,int,int,int);
 146     out[0] = 'A';
 147     _GetImageFolder(out+1,get_file_next_counter(),CAM_DATE_FOLDER_NAMING,time(NULL));
 148     out[15] = '\0';
 149 }
 150 #else
 151 long get_target_dir_num() {
 152         long n;
 153         
 154         n = get_file_next_counter();
 155         n = (n>>18)&0x3FF;
 156         return n;
 157 }
 158 #endif

/* [<][>][^][v][top][bottom][index][help] */