root/platform/sx150is/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 
   2 #define PARAM_FILE_COUNTER      0x3A // 58, SX130
   3 #define PARAM_EXPOSURE_COUNTER  0x02 // ?
   4 
   5 #include "platform.h"
   6 
   7 // These F-numbers are the "mock" values shown by the cam.
   8 // They're linked to FL (zoom) and ND8 filter.
   9 // aperture_sizes_table[].id is just a serial number.
  10 // Corrected for SX130
  11 const ApertureSize aperture_sizes_table[] = { // PROPCASE 26
  12     {  9, 347, "3.4" }, 
  13     { 10, 384, "4.0" }, 
  14     { 11, 416, "4.5" },
  15     { 12, 448, "5.0" },
  16     { 13, 480, "5.6" },
  17     { 14, 512, "6.3" },
  18     { 15, 544, "7.1" },
  19     { 16, 576, "8.0" },
  20 };
  21 
  22 
  23 // Corrected for SX130
  24 const ShutterSpeed shutter_speeds_table[] = {
  25     { -12, -384, "15", 15000000 },
  26     { -11, -352, "13", 13000000 },
  27     { -10, -320, "10", 10000000 },
  28     {  -9, -288, "8",   8000000 },
  29     {  -8, -256, "6",   6000000 },
  30     {  -7, -224, "5",   5000000 },
  31     {  -6, -192, "4",   4000000 },
  32     {  -5, -160, "3.2", 3200000 },
  33     {  -4, -128, "2.5", 2500000 },
  34     {  -3,  -96, "2",   2000000 },
  35     {  -2,  -64, "1.6", 1600000 },
  36     {  -1,  -32, "1.3", 1300000 },
  37     {   0,    0, "1",   1000000 },
  38     {   1,   32, "0.8",  800000 },
  39     {   2,   64, "0.6",  600000 },
  40     {   3,   96, "0.5",  500000 },
  41     {   4,  128, "0.4",  400000 },
  42     {   5,  160, "0.3",  300000 },
  43     {   6,  192, "1/4",  250000 },
  44     {   7,  224, "1/5",  200000 },
  45     {   8,  256, "1/6",  166667 },
  46     {   9,  288, "1/8",  125000 },
  47     {  10,  320, "1/10", 100000 },
  48     {  11,  352, "1/13",  76923 },
  49     {  12,  384, "1/15",  66667 },
  50     {  13,  416, "1/20",  50000 },
  51     {  14,  448, "1/25",  40000 },
  52     {  15,  480, "1/30",  33333 },
  53     {  16,  512, "1/40",  25000 },
  54     {  17,  544, "1/50",  20000 },
  55     {  18,  576, "1/60",  16667 },
  56     {  19,  608, "1/80",  12500 },
  57     {  20,  640, "1/100", 10000 },
  58     {  21,  672, "1/125",  8000 },
  59     {  22,  704, "1/160",  6250 },
  60     {  23,  736, "1/200",  5000 },
  61     {  24,  768, "1/250",  4000 },
  62     {  25,  800, "1/320",  3125 },
  63     {  26,  832, "1/400",  2500 },
  64     {  27,  864, "1/500",  2000 },
  65     {  28,  896, "1/640",  1563 },
  66     {  29,  928, "1/800",  1250 },
  67     {  30,  960, "1/1000", 1000 },
  68     {  31,  992, "1/1250",  800 },
  69     {  32, 1024, "1/1600",  625 },
  70     {  33, 1056, "1/2000",  500 },
  71     {  34, 1088, "1/2500",  400 }    
  72 };
  73 
  74 // Corrected for SX130
  75 const ISOTable iso_table[] = {
  76     {  0,     0,  "Auto", -1},
  77     {  1,    80,    "80", -1},
  78     {  2,   100,   "100", -1},
  79     {  3,   200,   "200", -1},
  80     {  4,   400,   "400", -1},
  81     {  5,   800,   "800", -1},
  82     {  6,   1600,   "1600", -1}
  83 };
  84 
  85 
  86 /*
  87 http://www.usa.canon.com/cusa/consumer/products/cameras/digital_cameras/powershot_sx150_is#Specifications
  88 Shooting Modes:
  89     M, Av, Tv, P, Auto, Easy, Portrait, Landscape, Kids & Pets, SCN, Movie
  90 
  91 SCN Scene Modes:
  92     Smart Shutter, Low Light, Super Vivid, Poster Effect, Color Accent, Color Swap, 
  93         Fish-eye Effect, Miniature Effect, Beach, Foliage, Snow, Fireworks
  94 
  95 Movie Modes:
  96     Standard, Miniature Effect, Color Accent, Color Swap
  97 
  98 Smart Shutter Modes:
  99     Smile, Wink Self-timer, Face Self-Timer
 100 */
 101 // Corrected for SX150
 102 const CapturemodeMap modemap[] = {
 103         { MODE_AUTO,               32768  },
 104         { MODE_P,                  32772  },
 105         { MODE_TV,                 32771  },
 106         { MODE_AV,                 32770  },
 107         { MODE_M,                  32769  },
 108         { MODE_KIDS_PETS,          16403  },
 109         { MODE_LANDSCAPE,          16399  },
 110         { MODE_PORTRAIT,           16400  },
 111         { MODE_EASY,                       33315  },
 112 
 113         { MODE_VIDEO_IFRAME_MOVIE,  2629  },
 114         { MODE_VIDEO_STD,           2622  },
 115 
 116     { MODE_FACE_SELF_TIMER,    16937  },
 117         { MODE_SMART_SHUTTER,      16938  },
 118     { MODE_WINK_SELF_TIMER,    16939  },
 119         { MODE_LOWLIGHT,           16418  },
 120         { MODE_SUPER_VIVID,         8743  },
 121         { MODE_POSTER_EFFECT,       8744  },
 122         { MODE_COLOR_ACCENT,        8734  },
 123         { MODE_COLOR_SWAP,          8735  },
 124         { MODE_FISHEYE,             8748  },
 125         { MODE_MINIATURE,           8749  },
 126 
 127         { MODE_BEACH,              16408  },
 128         { MODE_FOLIAGE,            16406  },
 129         { MODE_SNOW,               16407  },
 130         { MODE_FIREWORK,           16409  },
 131 
 132         { MODE_TOY_CAMERA,          8752  },
 133         { MODE_MONOCHROME,          8755  },
 134 
 135 
 136 
 137 };
 138 
 139 #include "../generic/shooting.c"
 140 
 141 const int dof_tbl[] = {6000, 6850, 7490, 8560, 9640, 10700, 12850, 14980, 18190, 22500};
 142 const int dof_tbl_size = sizeof(dof_tbl)/sizeof(dof_tbl[0]);
 143 
 144 long get_file_next_counter() {
 145     return get_file_counter();
 146 }
 147 
 148 long get_target_file_num() {
 149     long n;
 150     
 151     n = get_file_next_counter();
 152     n = (n>>4)&0x3FFF;
 153     return n;
 154 }
 155 
 156 #if defined(CAM_DATE_FOLDER_NAMING)
 157 // SX150IS uses date to name directory
 158 void get_target_dir_name(char *out)
 159 {
 160         extern void _GetImageFolder(char*,int,int,int);
 161         _GetImageFolder(out,get_file_next_counter(),CAM_DATE_FOLDER_NAMING,time(NULL));
 162 }
 163 #else
 164 long get_target_dir_num() {
 165         long n;
 166         
 167         n = get_file_next_counter();
 168         n = (n>>18)&0x3FF;
 169         return n;
 170 }
 171 #endif

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