root/platform/ixus115_elph100hs/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 "lolevel.h"
   2 #include "platform.h"
   3 #include "core.h"
   4 #include "conf.h"
   5 #include "keyboard.h"
   6 
   7 #define PARAM_FILE_COUNTER      0x3B
   8 #define PARAM_EXPOSURE_COUNTER  0x02
   9 
  10 
  11 const ApertureSize aperture_sizes_table[] = {
  12         {  9, 294, "2.8" },
  13         { 10, 311, "3.2" },
  14         { 11, 330, "3.2" },
  15         { 12, 348, "3.5" },
  16         { 13, 371, "4.0" },
  17         { 14, 393, "4.0" },
  18         { 15, 418, "4.5" },
  19         { 16, 445, "5.0" },
  20         { 17, 474, "5.6" },
  21         { 18, 500, "5.9" },
  22 };
  23 
  24 
  25 const ShutterSpeed shutter_speeds_table[] = {
  26         { -12, -384, "15", 15000000 },
  27         { -11, -352, "13", 13000000 },
  28         { -10, -320, "10", 10000000 },
  29         {  -9, -288, "8",   8000000 },
  30         {  -8, -256, "6",   6000000 },
  31         {  -7, -224, "5",   5000000 },
  32         {  -6, -192, "4",   4000000 },
  33         {  -5, -160, "3.2", 3200000 },
  34         {  -4, -128, "2.5", 2500000 },
  35         {  -3,  -96, "2",   2000000 },
  36         {  -2,  -64, "1.6", 1600000 },
  37         {  -1,  -32, "1.3", 1300000 },
  38         {   0,    0, "1",   1000000 },
  39         {   1,   32, "0.8",  800000 },
  40         {   2,   64, "0.6",  600000 },
  41         {   3,   96, "0.5",  500000 },
  42         {   4,  128, "0.4",  400000 },
  43         {   5,  160, "0.3",  300000 },
  44         {   6,  192, "1/4",  250000 },
  45         {   7,  224, "1/5",  200000 },
  46         {   8,  256, "1/6",  166667 },
  47         {   9,  288, "1/8",  125000 },
  48         {  10,  320, "1/10", 100000 },
  49         {  11,  352, "1/13",  76923 },
  50         {  12,  384, "1/15",  66667 },
  51         {  13,  416, "1/20",  50000 },
  52         {  14,  448, "1/25",  40000 },
  53         {  15,  480, "1/30",  33333 },
  54         {  16,  512, "1/40",  25000 },
  55         {  17,  544, "1/50",  20000 },
  56         {  18,  576, "1/60",  16667 },
  57         {  19,  608, "1/80",  12500 },
  58         {  20,  640, "1/100", 10000 },
  59         {  21,  672, "1/125",  8000 },
  60         {  22,  704, "1/160",  6250 },
  61         {  23,  736, "1/200",  5000 },
  62         {  24,  768, "1/250",  4000 },
  63         {  25,  800, "1/320",  3125 },
  64         {  26,  832, "1/400",  2500 },
  65         {  27,  864, "1/500",  2000 },
  66         {  28,  896, "1/640",  1563 },
  67         {  29,  928, "1/800",  1250 },
  68         {  30,  960, "1/1000", 1000 },
  69         {  31,  992, "1/1250",  800 },
  70         {  32, 1024, "1/1600",  625 },
  71         {  33, 1056, "1/2000",  500 },
  72         {  34, 1088, "1/2500",  400 },
  73         {  35, 1120, "1/3200",  313 },
  74         {  36, 1152, "1/4000",  250 },
  75 
  76 };
  77 
  78 const ISOTable iso_table[] = {
  79         {  0,    0, "Auto", -1},
  80         {  1,  100,  "100", -1},
  81         {  2,  200,  "200", -1},
  82         {  3,  400,  "400", -1},
  83         {  4,  800,  "800", -1},
  84         {  5, 1600, "1600", -1},
  85         {  6, 3200, "3200", -1},
  86 };
  87 
  88 const CapturemodeMap modemap[] = {                      // updated list for the ixus115
  89         { MODE_P,                         32772 },
  90         { MODE_AUTO,                      32768 },
  91         { MODE_VIDEO_MOVIE_DIGEST,        33333 },
  92         { MODE_BEACH,                     32791 },
  93         { MODE_PORTRAIT,                  32783 },
  94         { MODE_KIDS_PETS,                 32786 },
  95         { MODE_SMART_SHUTTER,             33321 },
  96         { MODE_HIGHSPEED_BURST,           33288 },
  97         { MODE_BEST_IMAGE,                33289 },
  98         { MODE_NIGHT_SNAPSHOT,            33325 },
  99         { MODE_LOWLIGHT,                  32801 },
 100         { MODE_FISHEYE,                   33323 },
 101         { MODE_MINIATURE,                 33324 },
 102         { MODE_TOY_CAMERA,                33327 },
 103         { MODE_MONOCHROME,                33330 },
 104         { MODE_SUPER_VIVID,               33318 },
 105         { MODE_POSTER_EFFECT,             33319 },
 106         { MODE_COLOR_ACCENT,              33309 },
 107         { MODE_COLOR_SWAP,                33310 },
 108         { MODE_UNDERWATER,                32793 },
 109         { MODE_FOLIAGE,                   32789 },
 110         { MODE_SNOW,                      32790 },
 111         { MODE_FIREWORK,                  32792 },
 112         { MODE_LONG_SHUTTER,              32774 },
 113         { MODE_STITCH,                    33292 },
 114         { MODE_VIDEO_SPEED,               2626  }
 115 };
 116 
 117 // Mode 33320 in firmware but not in current modemap
 118 // Mode 33322 in firmware but not in current modemap
 119 
 120 
 121 #include "../generic/shooting.c"
 122 
 123 // Override ISO settings (need to do this before exposure calc for ISO as well as after)
 124 //void __attribute__((naked,noinline)) shooting_expo_iso_override(void){
 125 // asm volatile("STMFD   SP!, {R0-R12,LR}\n");
 126 //
 127 //    if ((camera_info.state.state_kbd_script_run) && (photo_param_put_off.sv96))
 128 //    {
 129 //        shooting_set_sv96(photo_param_put_off.sv96, SET_NOW);
 130 //        // photo_param_put_off.sv96 is not reset here, it will be reset in next call to shooting_expo_param_override
 131  //   }
 132 //   else if ((conf.iso_override_value) && (conf.iso_override_koef) && !(conf.override_disable==1))
 133 //        shooting_set_iso_real(shooting_get_iso_override_value(), SET_NOW);
 134 //    else if (conf.autoiso_enable && shooting_get_flash_mode()/*NOT FOR FLASH AUTO MODE*/ && !(conf.override_disable==1 && conf.override_disable_all))
 135 //       shooting_set_autoiso(shooting_get_iso_mode());
 136 //
 137 // asm volatile("LDMFD   SP!, {R0-R12,PC}\n");
 138 //}
 139 
 140 long get_file_next_counter() {
 141         return get_file_counter();
 142 }
 143 
 144 long get_target_file_num() {
 145         long n;
 146 
 147         n = get_file_next_counter();
 148 
 149         n = (n>>4)&0x3FFF;
 150 
 151         return n;
 152 }
 153 
 154 void get_target_dir_name(char *out)
 155 {
 156         extern void _GetImageFolder(char*,int,int,int);
 157         _GetImageFolder(out,get_file_next_counter(),CAM_DATE_FOLDER_NAMING,time(NULL));
 158 }
 159 
 160 long get_target_dir_num() {
 161         long n;
 162 
 163         n = get_file_next_counter();
 164         n = (n>>18)&0x3FF;
 165         return n;
 166 }

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