root/platform/sx50hs/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      0x3a
   2 #define PARAM_EXPOSURE_COUNTER  0x02
   3 
   4 #include "platform.h"
   5 
   6 const ApertureSize aperture_sizes_table[] = {
   7         {  9, 352, "3.4" },
   8         { 10, 384, "4.0" },
   9         { 11, 416, "4.5" },
  10         { 12, 448, "5.0" },
  11         { 13, 480, "5.6" },
  12         { 14, 512, "6.3" },
  13         { 15, 544, "7.1" },
  14         { 16, 576, "8.0" },
  15 };
  16 
  17 const ShutterSpeed shutter_speeds_table[] = {
  18         { -12, -384, "15", 15000000 },
  19         { -11, -352, "13", 13000000 },
  20         { -10, -320, "10", 10000000 },
  21         {  -9, -288, "8",   8000000 },
  22         {  -8, -256, "6",   6000000 },
  23         {  -7, -224, "5",   5000000 },
  24         {  -6, -192, "4",   4000000 },
  25         {  -5, -160, "3.2", 3200000 },
  26         {  -4, -128, "2.5", 2500000 },
  27         {  -3,  -96, "2",   2000000 },
  28         {  -2,  -64, "1.6", 1600000 },
  29         {  -1,  -32, "1.3", 1300000 },
  30         {   0,    0, "1",   1000000 },
  31         {   1,   32, "0.8",  800000 },
  32         {   2,   64, "0.6",  600000 },
  33         {   3,   96, "0.5",  500000 },
  34         {   4,  128, "0.4",  400000 },
  35         {   5,  160, "0.3",  300000 },
  36         {   6,  192, "1/4",  250000 },
  37         {   7,  224, "1/5",  200000 },
  38         {   8,  256, "1/6",  166667 },
  39         {   9,  288, "1/8",  125000 },
  40         {  10,  320, "1/10", 100000 },
  41         {  11,  352, "1/13",  76923 },
  42         {  12,  384, "1/15",  66667 },
  43         {  13,  416, "1/20",  50000 },
  44         {  14,  448, "1/25",  40000 },
  45         {  15,  480, "1/30",  33333 },
  46         {  16,  512, "1/40",  25000 },
  47         {  17,  544, "1/50",  20000 },
  48         {  18,  576, "1/60",  16667 },
  49         {  19,  608, "1/80",  12500 },
  50         {  20,  640, "1/100", 10000 },
  51         {  21,  672, "1/125",  8000 },
  52         {  22,  704, "1/160",  6250 },
  53         {  23,  736, "1/200",  5000 },
  54         {  24,  768, "1/250",  4000 },
  55         {  25,  800, "1/320",  3125 },
  56         {  26,  832, "1/400",  2500 },
  57         {  27,  864, "1/500",  2000 },
  58         {  28,  896, "1/640",  1563 },
  59         {  29,  928, "1/800",  1250 },
  60         {  30,  960, "1/1000", 1000 },
  61         {  31,  992, "1/1250",  800 },
  62         {  32, 1024, "1/1600",  625 },
  63         {  33, 1056, "1/2000",  500 },
  64 };
  65 
  66 const ISOTable iso_table[] = {
  67 //      { -1,    1,   "HI", -1},
  68         {  0,    0, "Auto", -1},
  69         {  1,   80,   "80", -1},
  70         {  2,  100,  "100", -1},
  71         {  3,  125,  "125", -1},
  72         {  4,  160,  "160", -1},
  73         {  5,  200,  "200", -1},
  74         {  6,  250,  "250", -1},
  75         {  7,  320,  "320", -1},
  76         {  8,  400,  "400", -1},
  77         {  9,  500,  "500", -1},
  78         {  10, 640,  "640", -1},
  79         {  11, 800,  "800", -1},
  80         {  12,1000, "1000", -1},
  81         {  13,1250, "1250", -1},
  82         {  14,1600, "1600", -1},
  83         {  15,2000, "2000", -1},
  84         {  16,2500, "2500", -1},
  85         {  17,3200, "3200", -1},
  86         {  18,4000, "4000", -1},
  87         {  19,5000, "5000", -1},
  88         {  20,6400, "6400", -1},
  89 };          
  90 
  91 // These two modes are identified by finsig but camera crashes if used.
  92 //      { MODE_????????????,       32805  }, //Registering Face ID? Crash.
  93 //      { MODE_LOWLIGHT,           32805  }, //Hidden mode?  Crash
  94 // See report here: http://chdk.setepontos.com/index.php?topic=8932.msg97543#msg97543
  95 const CapturemodeMap modemap[] = {
  96         { MODE_VIDEO_STD,           2626  },
  97     { MODE_VIDEO_SUPER_SLOW,    2631  },
  98     { MODE_VIDEO_IFRAME_MOVIE,  2633  },
  99         { MODE_COLOR_ACCENT,        8737  },
 100         { MODE_COLOR_SWAP,          8738  },
 101         { MODE_SUPER_VIVID,         8746  },
 102         { MODE_POSTER_EFFECT,       8747  },
 103         { MODE_FISHEYE,             8751  },
 104         { MODE_MINIATURE,           8752  },
 105         { MODE_HDR,                 8754  },
 106     { MODE_TOY_CAMERA,          8755  },
 107     { MODE_SOFTFOCUS,           8756  },
 108         { MODE_MONOCHROME,          8758  },
 109         { MODE_HIGHSPEED_BURST,    16393  },
 110     { MODE_PORTRAIT,           16401  },
 111         { MODE_SNOW,               16409  },
 112         { MODE_FIREWORK,           16411  },
 113         { MODE_STITCH,             16909  },
 114         { MODE_SMOOTH_SKIN,        16914  },
 115     { MODE_FACE_SELF_TIMER,    16940  },
 116         { MODE_SMART_SHUTTER,      16941  },
 117     { MODE_WINK_SELF_TIMER,    16942  },
 118         { MODE_NIGHT_SCENE,        16945  },
 119         { MODE_AUTO,               32768  },
 120         { MODE_M,                  32769  },
 121         { MODE_AV,                 32770  },
 122         { MODE_TV,                 32771  },
 123         { MODE_P,                  32772  },
 124         { MODE_SPORTS,             33287  },
 125     { MODE_VIDEO_MOVIE_DIGEST, 33337  },
 126 };
 127 
 128 #include "../generic/shooting.c"
 129 
 130 long get_file_next_counter() {
 131         return get_file_counter();
 132 }
 133 
 134 long get_target_file_num() {
 135         long n;
 136         
 137         n = get_file_next_counter();
 138         n = (n>>4)&0x3FFF;
 139         return n;
 140 }
 141 
 142 #if defined(CAM_DATE_FOLDER_NAMING)
 143 // SX40 uses date to name directory
 144 void get_target_dir_name(char *out)
 145 {
 146         extern void _GetImageFolder(char*,int,int,int);
 147         _GetImageFolder(out,get_file_next_counter(),CAM_DATE_FOLDER_NAMING,time(NULL));
 148 }
 149 #else
 150 long get_target_dir_num() {
 151         long n;
 152         
 153         n = get_file_next_counter();
 154         n = (n>>18)&0x3FF;
 155         return n;
 156 }
 157 #endif

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