root/platform/ixus255_elph330hs/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 #include "platform.h"
   2 
   3 // These F-numbers are the "mock" values shown by the cam.
   4 // They're linked to FL (zoom) (surpisingly not ND filter as well).
   5 const ApertureSize aperture_sizes_table[] = { // PROPCASE 23
   6     {  9, 305, "3.0" },
   7     { 10, 314, "3.2" }, 
   8     { 11, 350, "3.5" }, 
   9     { 12, 382, "4.0" },
  10     { 13, 411, "4.5" },
  11     { 14, 439, "5.0" },
  12     { 15, 472, "5.6" },
  13     { 16, 514, "6.3" },
  14     { 17, 543, "6.9" },
  15 };
  16 
  17 // OLD copied comment!
  18 // TODO copied from 850
  19 // Another set of "mock" values, which can probably
  20 // be derived from the table found at FFB4E258 in FW.
  21 // At the moment, I see no reason to amend it.
  22 const ShutterSpeed shutter_speeds_table[] = {
  23     { -12, -384, "15", 15000000 },
  24     { -11, -352, "13", 13000000 },
  25     { -10, -320, "10", 10000000 },
  26     {  -9, -288, "8",   8000000 },
  27     {  -8, -256, "6",   6000000 },
  28     {  -7, -224, "5",   5000000 },
  29     {  -6, -192, "4",   4000000 },
  30     {  -5, -160, "3.2", 3200000 },
  31     {  -4, -128, "2.5", 2500000 },
  32     {  -3,  -96, "2",   2000000 },
  33     {  -2,  -64, "1.6", 1600000 },
  34     {  -1,  -32, "1.3", 1300000 },
  35     {   0,    0, "1",   1000000 },
  36     {   1,   32, "0.8",  800000 },
  37     {   2,   64, "0.6",  600000 },
  38     {   3,   96, "0.5",  500000 },
  39     {   4,  128, "0.4",  400000 },
  40     {   5,  160, "0.3",  300000 },
  41     {   6,  192, "1/4",  250000 },
  42     {   7,  224, "1/5",  200000 },
  43     {   8,  256, "1/6",  166667 },
  44     {   9,  288, "1/8",  125000 },
  45     {  10,  320, "1/10", 100000 },
  46     {  11,  352, "1/13",  76923 },
  47     {  12,  384, "1/15",  66667 },
  48     {  13,  416, "1/20",  50000 },
  49     {  14,  448, "1/25",  40000 },
  50     {  15,  480, "1/30",  33333 },
  51     {  16,  512, "1/40",  25000 },
  52     {  17,  544, "1/50",  20000 },
  53     {  18,  576, "1/60",  16667 },
  54     {  19,  608, "1/80",  12500 },
  55     {  20,  640, "1/100", 10000 },
  56     {  21,  672, "1/125",  8000 },
  57     {  22,  704, "1/160",  6250 },
  58     {  23,  736, "1/200",  5000 },
  59     {  24,  768, "1/250",  4000 },
  60     {  25,  800, "1/320",  3125 },
  61     {  26,  832, "1/400",  2500 },
  62     {  27,  864, "1/500",  2000 },
  63     {  28,  896, "1/640",  1563 },
  64     {  29,  928, "1/800",  1250 },
  65     {  30,  960, "1/1000", 1000 },
  66     {  31,  992, "1/1250",  800 },
  67     {  32, 1021, "1/1600",  625 },
  68 };
  69 
  70 const ISOTable iso_table[] = {
  71     {  0,     0,  "Auto", -1},
  72     {  1,    80,    "80", -1},
  73     {  2,   100,   "100", -1},
  74     {  3,   200,   "200", -1},
  75     {  4,   400,   "400", -1},
  76     {  5,   800,   "800", -1},
  77     {  6,  1600,  "1600", -1},
  78     {  7,  3200,  "3200", -1},
  79     {  8,  6400,  "6400", -1},
  80 };          
  81 
  82 /*
  83 http://www.usa.canon.com/cusa/consumer/products/cameras/digital_cameras/powershot_elph_330_hs#Specifications
  84 
  85 Shooting Modes
  86     Auto, Hybrid Auto, P, Portrait, Smooth Skin, Smart Shutter (Smile, Wink
  87     Self-timer, Face Self-timer), High-Speed Burst, Handheld Night Scene,
  88     Fisheye Effect, Miniature Effect, Toy Camera Effect, Soft Focus,
  89     Monochrome, Super Vivid, Poster Effect, Color Accent, Color Swap, Snow,
  90     Fireworks, Long Shutter, Stitch Assist, Super Slow Motion Movie
  91         
  92 Video Modes
  93     Full HD 1920 x 1080: 24 fps (23.976)
  94     HD 1280 x 720: 30 fps (29.97)
  95     Digest Movie HD 1280 x 720: 30 fps (29.97)
  96     Miniature Effect HD 1280 x 720: 6 fps / 3 fps / 1.5 fps
  97     Miniature Effect 640 x 480: 6 fps / 3 fps / 1.5 fps
  98     Super Slow Motion Movie 640 x 480: 120 fps
  99     Super Slow Motion Movie 320 x 240: 240 fps
 100     640 x 480: 30 fps (29.97)
 101 */
 102 const CapturemodeMap modemap[] = {
 103     { MODE_LONG_SHUTTER,        32774 },
 104     { MODE_P,                   32772 },
 105     { MODE_STITCH,              33293 }, // either direction
 106     { MODE_MINIATURE,           33330 },
 107     { MODE_FISHEYE,             33329 },
 108     { MODE_TOY_CAMERA,          33333 }, // not really a SCN mode
 109     { MODE_COLOR_ACCENT,        33315 },
 110     { MODE_COLOR_SWAP,          33316 },
 111     { MODE_MONOCHROME,          33336 },
 112     { MODE_SUPER_VIVID,         33324 },
 113     { MODE_POSTER_EFFECT,       33325 },
 114     { MODE_PORTRAIT,            32787 },
 115     { MODE_SNOW,                32795 },
 116     { MODE_FIREWORK,            32797 },
 117     { MODE_AUTO,                32768 },
 118     { MODE_FACE_SELF_TIMER,     33326 },
 119     { MODE_SMART_SHUTTER,       33327 },
 120     { MODE_WINK_SELF_TIMER,     33328 },
 121     { MODE_SMOOTH_SKIN,         33300 },
 122     { MODE_HIGHSPEED_BURST | MODE_DISABLE_RAW, 32776 },
 123     { MODE_SOFTFOCUS,           33334 },
 124     { MODE_VIDEO_SUPER_SLOW,     2633 }, // 3657 when recording
 125     { MODE_NIGHT_SCENE | MODE_DISABLE_RAW, 33331 },
 126 // Not in mode selection
 127 //    { MODE_VIDEO_STD,           33796 }, // when recording; 33808 when recording in Hybrid Auto
 128 //    { MODE_VIDEO_MINIATURE,     34354 }, // when recording in miniature mode
 129     { MODE_VIDEO_MOVIE_DIGEST,  32784 }
 130 // stubs_entry.S says there are two more modes, but I can't find them
 131 };
 132 
 133 #include "../generic/shooting.c"
 134 
 135 long get_file_next_counter() {
 136     return get_file_counter();
 137 }
 138 
 139 long get_target_file_num() {
 140     return get_exposure_counter();
 141 }
 142 #if defined(CAM_DATE_FOLDER_NAMING)
 143 // ELPH330 camera uses date to name directory
 144 // TODO currently returns something like A/DCIM/101___09/ETC_0112.TMP
 145 // may need different params
 146 void get_target_dir_name(char *out)
 147 {
 148     static char buf[32];
 149     extern void _GetImageFolder(char*,int,int,int);
 150     _GetImageFolder(buf,get_file_next_counter(),CAM_DATE_FOLDER_NAMING,time(NULL));
 151     strncpy(out,buf,15);
 152     out[15] = 0;
 153 }
 154 #else
 155 long get_target_dir_num() 
 156 {
 157     return 0;
 158 }
 159 #endif

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