root/platform/ixus130_sd1400/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 // These F-numbers are the "mock" values shown by the cam.
   7 // They're linked to FL (zoom) and ND8 filter.
   8 // aperture_sizes_table[].id is just a serial number.
   9 const ApertureSize aperture_sizes_table[] = { // PROPCASE 26 (?)
  10   {  9, 293, "2.8" },
  11   { 10, 317, "3.2" },
  12   { 11, 336, "3.5" },
  13   { 12, 364, "3.5" },
  14   { 13, 397, "4.0" },
  15   { 14, 422, "4.5" },
  16   { 15, 454, "5.0" },
  17   { 16, 500, "5.9" },
  18 // TODO: values with ND filter
  19 /*
  20     {  9, 295, "2.8" }, // zoom 1.0
  21     { 10, 318, "3.2" }, // zoom 1.2
  22     { 11, 342, "3.5" }, // etc.
  23     { 12, 368, "4.0" },
  24     { 13, 396, "4.0" },
  25     { 14, 427, "4.5" },
  26     { 15, 461, "5.0" },
  27     { 16, 493, "5.8" },
  28 // The rest are the same physical apertures as above, but with ND8:
  29     { 17, 576, "8.0" },
  30     { 18, 599, "9.0" },
  31     { 19, 623, "10.0" },
  32     { 20, 649, "11.0" },
  33     { 21, 677, "11.0" },
  34     { 22, 708, "13.0" },
  35     { 23, 742, "14.0" },
  36     { 24, 774, "16.0" },
  37 */
  38 };
  39 
  40 // OLD copied comment!
  41 // TODO copied from 850
  42 // Another set of "mock" values, which can probably
  43 // be derived from the table found at FFB4E258 in FW.
  44 // At the moment, I see no reason to amend it.
  45 const ShutterSpeed shutter_speeds_table[] = {
  46     { -12, -384, "15", 15000000 },
  47     { -11, -352, "13", 13000000 },
  48     { -10, -320, "10", 10000000 },
  49     {  -9, -288, "8",   8000000 },
  50     {  -8, -256, "6",   6000000 },
  51     {  -7, -224, "5",   5000000 },
  52     {  -6, -192, "4",   4000000 },
  53     {  -5, -160, "3.2", 3200000 },
  54     {  -4, -128, "2.5", 2500000 },
  55     {  -3,  -96, "2",   2000000 },
  56     {  -2,  -64, "1.6", 1600000 },
  57     {  -1,  -32, "1.3", 1300000 },
  58     {   0,    0, "1",   1000000 },
  59     {   1,   32, "0.8",  800000 },
  60     {   2,   64, "0.6",  600000 },
  61     {   3,   96, "0.5",  500000 },
  62     {   4,  128, "0.4",  400000 },
  63     {   5,  160, "0.3",  300000 },
  64     {   6,  192, "1/4",  250000 },
  65     {   7,  224, "1/5",  200000 },
  66     {   8,  256, "1/6",  166667 },
  67     {   9,  288, "1/8",  125000 },
  68     {  10,  320, "1/10", 100000 },
  69     {  11,  352, "1/13",  76923 },
  70     {  12,  384, "1/15",  66667 },
  71     {  13,  416, "1/20",  50000 },
  72     {  14,  448, "1/25",  40000 },
  73     {  15,  480, "1/30",  33333 },
  74     {  16,  512, "1/40",  25000 },
  75     {  17,  544, "1/50",  20000 },
  76     {  18,  576, "1/60",  16667 },
  77     {  19,  608, "1/80",  12500 },
  78     {  20,  640, "1/100", 10000 },
  79     {  21,  672, "1/125",  8000 },
  80     {  22,  704, "1/160",  6250 },
  81     {  23,  736, "1/200",  5000 },
  82     {  24,  768, "1/250",  4000 },
  83     {  25,  800, "1/320",  3125 },
  84     {  26,  832, "1/400",  2500 },
  85     {  27,  864, "1/500",  2000 },
  86     {  28,  896, "1/640",  1563 },
  87     {  29,  928, "1/800",  1250 },
  88     {  30,  960, "1/1000", 1000 },
  89     {  31,  992, "1/1250",  800 },
  90     {  32, 1021, "1/1600",  625 },
  91 };
  92 
  93 const ISOTable iso_table[] = {
  94     { -1,     1,    "HI", -1},
  95     {  0,     0,  "Auto", -1},
  96     {  1,    80,    "80", -1},
  97     {  2,   100,   "100", -1},
  98     {  3,   200,   "200", -1},
  99     {  4,   400,   "400", -1},
 100     {  5,   800,   "800", -1},
 101     {  6,  1600,  "1600", -1},
 102 };          
 103 
 104 // PROPCASE 49
 105 const CapturemodeMap modemap[] = {
 106   { MODE_AUTO,               32768 },
 107 //  { MODE_M,                  32769 },
 108   { MODE_P,                  32772 },
 109   { MODE_PORTRAIT,           32783 },
 110   { MODE_NIGHT_SNAPSHOT,     32781 },
 111   { MODE_KIDS_PETS,          32786 },
 112   { MODE_INDOOR,             32787 },
 113 //  { MODE_SUNSET,             0x4012 },
 114   { MODE_FOLIAGE,            32789 },
 115   { MODE_SNOW,               32790 },
 116   { MODE_BEACH,              32791 },
 117   { MODE_FIREWORK,           32792 },
 118   { MODE_NIGHT_SCENE,        32774 }, // AKA Long Shutter
 119   { MODE_UNDERWATER,         32793 },
 120 //  { MODE_AQUARIUM,           0x4018 },
 121 //  { MODE_ISO_3200,           0x401D },
 122 //  { MODE_DIGITAL_MACRO,      0x4208 },
 123   { MODE_COLOR_ACCENT,       33309 },
 124   { MODE_COLOR_SWAP,         33310 },
 125   { MODE_STITCH,             33292 },
 126   { MODE_VIDEO_STD,          2612  },
 127   { MODE_VIDEO_COLOR_ACCENT, 2610  },
 128   { MODE_VIDEO_COLOR_SWAP,   2611  },
 129   { MODE_LOWLIGHT,           32801 },
 130 // Ixus 130 extra modes:
 131   { MODE_SMART_SHUTTER,      33321 },
 132   { MODE_FISHEYE,            33323 },
 133   { MODE_MINIATURE,          33324 },
 134 };
 135 
 136 #include "../generic/shooting.c"
 137 
 138 long get_file_next_counter() {
 139     return get_file_counter();
 140 }
 141 
 142 long get_target_file_num() {
 143     long n;
 144     
 145     n = get_file_next_counter();
 146     n = (n>>4)&0x3FFF;
 147     return n;
 148 }
 149 
 150 #if defined(CAM_DATE_FOLDER_NAMING)
 151 // IXUS130 uses date to name directory
 152 void get_target_dir_name(char *out)
 153 {
 154     extern void _GetImageFolder(char*,int,int,int);
 155     out[0] = 'A';
 156     _GetImageFolder(out+1,get_file_next_counter(),CAM_DATE_FOLDER_NAMING,time(NULL));
 157 }
 158 #else
 159 long get_target_dir_num() {
 160     long n;
 161      
 162     n = get_file_next_counter();
 163     n = (n>>18)&0x3FF;
 164     return n;
 165 }
 166 #endif
 167 
 168 // not used ? -> CAM_DRAW_EXPOSITION
 169 /*
 170 char* shooting_get_tv_str()
 171 {
 172     short int tvv;
 173     long i;
 174     _GetPropertyCase(PROPCASE_TV, &tvv, sizeof(tvv));   // 262 for DiGiC III
 175     for (i=0;i<SS_SIZE;i++){
 176         if (shutter_speeds_table[i].prop_id >= tvv)
 177             return (char*)shutter_speeds_table[i].name;
 178     }
 179     return (void*)"?";
 180 }
 181 
 182 char* shooting_get_av_str()
 183 {
 184     short int avv;
 185     long i;
 186     _GetPropertyCase(PROPCASE_AV, &avv, sizeof(avv));   // 23 for DiGiC III
 187     for (i=0;i<AS_SIZE;i++){
 188         if (aperture_sizes_table[i].prop_id == avv)
 189             return (char*)aperture_sizes_table[i].name;
 190     }
 191     return (char*) "?";
 192 }
 193 
 194 char* shooting_get_iso_str()
 195 {
 196     short int isov;
 197     long i;
 198     _GetPropertyCase(PROPCASE_ISO_MODE, &isov, sizeof(isov));
 199     for (i=0;i<ISO_SIZE;i++){
 200    if (iso_table[i].prop_id == isov)
 201        return (char*)iso_table[i].name;
 202     }
 203     return (char*) "?";
 204 }
 205 */

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