root/platform/sx700hs/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      0x1        // see comments in ixus140 port
   8 
   9 // aperture values recorded at wide angle, using propcase AV after half press 
  10 // propcase USER_AV slightly different
  11 const ApertureSize aperture_sizes_table[] = {
  12     { 9,  336, "3.2" },
  13     { 10, 368, "3.5" },
  14     { 11, 400, "4.0" },
  15     { 12, 432, "4.5" },
  16     { 13, 464, "5.0" },
  17     { 14, 496, "5.6" },
  18     { 15, 528, "6.3" },
  19     { 16, 549, "7.1" },
  20     { 17, 561, "8.0" },
  21 };
  22 
  23 const ShutterSpeed shutter_speeds_table[] = {
  24     { -12, -384, "15",   15000000 },
  25     { -11, -352, "13",   13000000 },
  26     { -10, -320, "10",   10000000 },
  27     {  -9, -288, "8",     8000000 },
  28     {  -8, -256, "6",     6000000 },
  29     {  -7, -224, "5",     5000000 },
  30     {  -6, -192, "4",     4000000 },
  31     {  -5, -160, "3.2",   3200000 },
  32     {  -4, -128, "2.5",   2500000 },
  33     {  -3,  -96, "2",     2000000 },
  34     {  -2,  -64, "1.6",   1600000 },
  35     {  -1,  -32, "1.3",   1300000 },
  36     {   0,    0, "1",     1000000 },
  37     {   1,   32, "0.8",    800000 },
  38     {   2,   64, "0.6",    600000 },
  39     {   3,   96, "0.5",    500000 },
  40     {   4,  128, "0.4",    400000 },
  41     {   5,  160, "0.3",    300000 },
  42     {   6,  192, "1/4",    250000 },
  43     {   7,  224, "1/5",    200000 },
  44     {   8,  256, "1/6",    166667 },
  45     {   9,  288, "1/8",    125000 },
  46     {  10,  320, "1/10",   100000 },
  47     {  11,  352, "1/13",    76923 },
  48     {  12,  384, "1/15",    66667 },
  49     {  13,  416, "1/20",    50000 },
  50     {  14,  448, "1/25",    40000 },
  51     {  15,  480, "1/30",    33333 },
  52     {  16,  512, "1/40",    25000 },
  53     {  17,  544, "1/50",    20000 },
  54     {  18,  576, "1/60",    16667 },
  55     {  19,  608, "1/80",    12500 },
  56     {  20,  640, "1/100",   10000 },
  57     {  21,  672, "1/125",    8000 },
  58     {  22,  704, "1/160",    6250 },
  59     {  23,  736, "1/200",    5000 },
  60     {  24,  768, "1/250",    4000 },
  61     {  25,  800, "1/320",    3125 },
  62     {  26,  832, "1/400",    2500 },
  63     {  27,  864, "1/500",    2000 },
  64     {  28,  896, "1/640",    1563 },
  65     {  29,  928, "1/800",    1250 },
  66     {  30,  960, "1/1000",   1000 },
  67     {  31,  992, "1/1250",    800 },
  68     {  32, 1024, "1/1600",    625 },
  69     {  33, 1056, "1/2000",    500 },
  70     {  34, 1088, "1/2500",    400 },
  71     {  35, 1120, "1/3200",    313 },
  72 };
  73 
  74 const ISOTable iso_table[] = {
  75     {  0,    0, " Auto", -1},
  76     {  1,  100,  "100", -1},
  77     {  2,  200,  "200", -1},
  78     {  3,  400,  "400", -1},
  79     {  4,  800,  "800", -1},
  80     {  5, 1600, "1600", -1},
  81     {  6, 3200, "3200", -1},
  82 };
  83 
  84 const CapturemodeMap modemap[] = {
  85 { MODE_AUTO                 ,32768 },
  86 { MODE_M                    ,32769 },
  87 { MODE_AV                   ,32770 },
  88 { MODE_TV                   ,32771 },
  89 { MODE_P                    ,32772 },
  90 { MODE_NIGHT_SNAPSHOT       ,32831 }, // Shows stars? Night snapshot
  91 //{ MODE_???               ,32832 }, // as 32832 Shows stars?
  92 //{ MODE_???               ,33335 }, // person in front of landscape
  93 { MODE_LIVE                 ,33340 }, // Creative shot, various sub modes all use same number
  94 { MODE_FISHEYE              ,8754 },
  95 { MODE_MINIATURE            ,8755 },
  96 { MODE_TOY_CAMERA           ,8758 },
  97 { MODE_SOFTFOCUS            ,8760 },
  98 { MODE_MONOCHROME           ,8762 },
  99 { MODE_SUPER_VIVID          ,8749 },
 100 { MODE_POSTER_EFFECT        ,8750 },
 101 { MODE_PORTRAIT             ,16404 },
 102 //{ MODE_???               ,16943 }, // Smile same as 16944?
 103 { MODE_SMART_SHUTTER        ,16944 }, // smile detection
 104 //{ MODE_???               ,16945 }, // Smile same as 16944?
 105 { MODE_HIGHSPEED_BURST       ,16393 }, // 4 hq burst shots
 106 { MODE_NIGHT_SCENE | MODE_DISABLE_RAW ,16948 }, // handheld night scene
 107 { MODE_LOWLIGHT             ,16424 },
 108 { MODE_SNOW                 ,16412 },
 109 { MODE_FIREWORK             ,16414 },
 110 { MODE_CREATIVE_EFFECT      ,33297 }, // Creative shot, various sub modes all use same number
 111 //{ MODE_???               ,33295 }, // Crashes camera -- Keep the face within the frame, then shoot
 112 { MODE_HYBRID_AUTO | MODE_DISABLE_RAW ,33296 }, // like movie digest
 113 { MODE_SPORTS               ,33287 },
 114 { MODE_VIDEO_STD             ,2634 }, // standard video on dial
 115 { MODE_VIDEO_IFRAME_MOVIE    ,2641 },
 116 { MODE_VIDEO_SUPER_SLOW     ,2639 }, // super slow mo
 117 };
 118 
 119 #include "../generic/shooting.c"
 120 
 121 long get_file_next_counter() {
 122     return get_file_counter();
 123 }
 124 
 125 long get_target_file_num() {
 126     return get_exposure_counter();
 127 }
 128 /*
 129 CAM_DATE_FOLDER_NAMING values
 130 0x000   A/DCIM/1nn___nn/MRK_nnnn.MRK
 131 0x001   A/DCIM/1nn___nn/ETC_nnnn.TMP
 132 0x002   A/DCIM/1nn___nn/IMG_nnnn.JPG
 133 0x004   A/DCIM/1nn___nn/MVI_nnnn.THM
 134 0x008   A/DCIM/1nn___nn/SND_nnnn.WAV
 135 0x010   A/DCIM/1nn___nn/IMG_nnnn.CR2
 136 0x020   A/DCIM/1nn___nn/MVI_nnnn.MOV
 137 0x040   A/DCIM/1nn___nn/MVI_nnnn.MP4
 138 0x080   A/DCIM/1nn___nn
 139 0x100   A/DCIM/1nn___nn/ETC_nnnn.TMP
 140 larger values and multiple bits also seem to be ETC_nnnn.TMP
 141 */
 142 #if defined(CAM_DATE_FOLDER_NAMING)
 143 void get_target_dir_name(char *out)
 144 {
 145     extern void _GetImageFolder(char*,int,int,int);
 146     _GetImageFolder(out,get_file_next_counter(),CAM_DATE_FOLDER_NAMING,time(NULL));
 147 }
 148 #else
 149 long get_target_dir_num() 
 150 {
 151     return 0;
 152 }
 153 #endif

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