Changeset 127


Ignore:
Timestamp:
04/16/07 21:32:46 (6 years ago)
Author:
vitalyb
Message:
  • merge platform with GrAnd's branch (part 1)
Location:
trunk
Files:
30 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/lolevel.h

    r112 r127  
    1717extern long _GetFocusLensSubjectDistance(); 
    1818extern long _GetFocusLensSubjectDistanceFromLens(); 
     19extern long _GetCurrentTargetDistance(); 
    1920extern long _GetPropertyCase(long opt_id, void *buf, long bufsize); 
    2021extern long _SetPropertyCase(long opt_id, void *buf, long bufsize); 
     
    8182void kbd_fetch_data(long *dst); 
    8283 
     84/* math */ 
     85extern double __log(double x); 
     86extern double __log10(double x); 
     87extern double __pow(double x, double y); 
     88extern double __sqrt(double x); 
     89 
    8390#endif 
  • trunk/include/math.h

    r104 r127  
    55extern float sqrtf(float v); 
    66 
     7extern double log(double x); 
     8extern double log2(double x); 
     9extern double log10(double x); 
     10extern double pow(double x, double y); 
     11extern double sqrt(double x); 
     12 
    713#endif 
  • trunk/include/platform.h

    r106 r127  
    44#define SSID_INVALID (-32767) 
    55#define ASID_INVALID (-32767) 
     6 
     7#define MODE_MASK               0x0300 
     8#define MODE_REC                0x0100 
     9#define MODE_PLAY               0x0200 
     10 
     11#define MODE_SHOOTING_MASK      0x00FF 
     12#define MODE_AUTO               1 
     13#define MODE_P                  2 
     14#define MODE_TV                 3 
     15#define MODE_AV                 4 
     16#define MODE_M                  5 
     17#define MODE_PORTRAIT           6 
     18#define MODE_NIGHT              7 
     19#define MODE_LANDSCAPE          8 
     20#define MODE_VIDEO              9 
     21#define MODE_STITCH             10 
     22#define MODE_MY_COLORS          11 
     23#define MODE_SCN_WATER          12 
     24#define MODE_SCN_NIGHT          13 
     25#define MODE_SCN_CHILD          14 
     26#define MODE_SCN_PARTY          15 
     27#define MODE_SCN_GRASS          16 
     28#define MODE_SCN_SNOW           17 
     29#define MODE_SCN_BEACH          18 
     30#define MODE_SCN_FIREWORK       19 
     31#define MODE_SCN_COLOR_ACCENT   20 
     32 
     33#define MODE_SCREEN_MASK        0x0C00 
     34#define MODE_SCREEN_OPENED      0x0400 
     35#define MODE_SCREEN_ROTATED     0x0800 
    636 
    737typedef struct { 
     
    2454    char name[8]; 
    2555} ApertureSize; 
     56 
     57/******************************************************************/ 
     58 
     59extern const int dof_tbl[], dof_tbl_size; 
    2660 
    2761/******************************************************************/ 
     
    82116void lens_set_focus_pos(long newpos); 
    83117 
     118long lens_get_target_distance(); 
     119 
    84120/******************************************************************/ 
    85121 
     
    96132void shooting_set_av_rel(int v); 
    97133 
     134int shooting_get_real_av(); 
     135long shooting_get_current_mode(); 
     136 
    98137/******************************************************************/ 
    99138 
    100139long stat_get_vbatt(); 
     140 
     141/******************************************************************/ 
     142 
     143long vbatt_get_min(); 
     144long vbatt_get_max(); 
    101145 
    102146/******************************************************************/ 
  • trunk/makefile.inc

    r112 r127  
    1 VER=test1-pre12 
     1VER=test1-pre13 
    22 
    33PLATFORM=a610 
  • trunk/platform/a610/main.c

    r104 r127  
     1#define VBATT_DEFAULT_MIN (4550) 
     2#define VBATT_DEFAULT_MAX (5150) 
     3 
    14#include "../generic/main.c" 
     5 
     6static struct { 
     7        int hackmode; 
     8        int canonmode; 
     9} modemap[] = { 
     10    { MODE_AUTO,               6  }, 
     11    { MODE_P,                  1  }, 
     12    { MODE_TV,                 3  }, 
     13    { MODE_AV,                 2  }, 
     14    { MODE_M,                  0  }, 
     15    { MODE_PORTRAIT,           9  }, 
     16    { MODE_NIGHT,              8  }, 
     17    { MODE_LANDSCAPE,          7  }, 
     18    { MODE_VIDEO,              18 }, 
     19    { MODE_STITCH,             5  }, 
     20    { MODE_MY_COLORS,          4  }, 
     21    { MODE_SCN_WATER,          13 }, 
     22    { MODE_SCN_NIGHT,          15 }, 
     23    { MODE_SCN_CHILD,          16 }, 
     24    { MODE_SCN_PARTY,          14 }, 
     25    { MODE_SCN_GRASS,          10 }, 
     26    { MODE_SCN_SNOW,           11 }, 
     27    { MODE_SCN_BEACH,          12 }, 
     28    { MODE_SCN_FIREWORK,       17 } 
     29}; 
     30#define MODESCNT (sizeof(modemap)/sizeof(modemap[0])) 
     31 
     32long shooting_get_current_mode() { 
     33    int mode, i, t=0xFF; 
     34 
     35    mode  = (physw_status[2] & 0x00002000)?MODE_REC:MODE_PLAY; 
     36    mode |= (physw_status[2] & 0x00008000)?0:MODE_SCREEN_OPENED; 
     37    mode |= (physw_status[2] & 0x00004000)?0:MODE_SCREEN_ROTATED; 
     38     
     39    _GetPropertyCase(0, &t, 4); 
     40    for (i=0; i<MODESCNT; ++i) { 
     41        if (modemap[i].canonmode == t) { 
     42            return (mode | (modemap[i].hackmode & MODE_SHOOTING_MASK)); 
     43        } 
     44    } 
     45    return (mode); 
     46} 
  • trunk/platform/a610/shooting.c

    r106 r127  
    22 
    33#include "../generic/shooting.c" 
     4 
     5const int dof_tbl[] = {7300, 8460, 9565, 10835, 12565, 14926, 17342, 21709, 29200}; 
     6const int dof_tbl_size = sizeof(dof_tbl)/sizeof(dof_tbl[0]); 
    47 
    58long get_next_photo_dirfile_num() 
  • trunk/platform/a610/sub/100e/stubs_entry.S

    r105 r127  
    1414NSTUB(ExitTask, 0xffc11610) 
    1515NSTUB(FreeMemory, 0xffc01b28) 
     16NSTUB(GetCurrentTargetDistance, 0xffe736bc) 
    1617NSTUB(GetParameterData, 0xffd4e2fc) 
    1718NSTUB(GetPropertyCase, 0xffc141a8) 
     
    3031NSTUB(kbd_pwr_on, 0xffc17564) 
    3132NSTUB(kbd_read_keys_r2, 0xffc16fd8) 
     33NSTUB(_log10, 0xffea8a84) 
     34NSTUB(_log, 0xffea83dc) 
    3235NSTUB(lseek, 0xffebbfa0) 
    3336NSTUB(MakeDirectory, 0xffc5c9b0) 
     
    3538// ALT: NSTUB(memcmp, 0xffec3db8) // 9/0 
    3639NSTUB(memcpy, 0xffeb5a0c) 
     40NSTUB(memPartAlloc, 0xffebee28) 
     41NSTUB(memPartFindMax, 0xffebdb68) 
    3742NSTUB(memset, 0xffeb5a84) 
    3843NSTUB(mkdir, 0xffc5c8f4) 
     
    4146NSTUB(Open, 0xffc5c6e4) 
    4247NSTUB(PhySw_testgpio, 0xffc17658) 
     48NSTUB(_pow, 0xffea8f74) 
    4349NSTUB(ProtectFile, 0xffc55198) 
    4450NSTUB(read, 0xffebbebc) 
     
    4854NSTUB(SetPropertyCase, 0xffc1408c) 
    4955NSTUB(SleepTask, 0xffc11164) 
     56NSTUB(_sqrt, 0xffead2c0) 
    5057NSTUB(strcmp, 0xffeb5af4) 
    5158NSTUB(strcpy, 0xffeb5c88) 
  • trunk/platform/a610/sub/100f/stubs_entry.S

    r105 r127  
    1414NSTUB(ExitTask, 0xffc11610) 
    1515NSTUB(FreeMemory, 0xffc01b28) 
     16NSTUB(GetCurrentTargetDistance, 0xffe73a44) 
    1617NSTUB(GetParameterData, 0xffd4e684) 
    1718NSTUB(GetPropertyCase, 0xffc141a8) 
     
    3031NSTUB(kbd_pwr_on, 0xffc17564) 
    3132NSTUB(kbd_read_keys_r2, 0xffc16fd8) 
     33NSTUB(_log10, 0xffea8e0c) 
     34NSTUB(_log, 0xffea8764) 
    3235NSTUB(lseek, 0xffebc328) 
    3336NSTUB(MakeDirectory, 0xffc5cd38) 
     
    3538// ALT: NSTUB(memcmp, 0xffec4140) // 9/0 
    3639NSTUB(memcpy, 0xffeb5d94) 
     40NSTUB(memPartAlloc, 0xffebf1b0) 
     41NSTUB(memPartFindMax, 0xffebdef0) 
    3742NSTUB(memset, 0xffeb5e0c) 
    3843NSTUB(mkdir, 0xffc5cc7c) 
     
    4146NSTUB(Open, 0xffc5ca6c) 
    4247NSTUB(PhySw_testgpio, 0xffc17658) 
     48NSTUB(_pow, 0xffea92fc) 
    4349NSTUB(ProtectFile, 0xffc55520) 
    4450NSTUB(read, 0xffebc244) 
     
    4854NSTUB(SetPropertyCase, 0xffc1408c) 
    4955NSTUB(SleepTask, 0xffc11164) 
     56NSTUB(_sqrt, 0xffead648) 
    5057NSTUB(strcmp, 0xffeb5e7c) 
    5158NSTUB(strcpy, 0xffeb6010) 
  • trunk/platform/a620/main.c

    r104 r127  
     1#define VBATT_DEFAULT_MIN (4550) 
     2#define VBATT_DEFAULT_MAX (5150) 
     3 
    14#include "../generic/main.c" 
     5 
     6static struct { 
     7        int hackmode; 
     8        int canonmode; 
     9} modemap[] = { 
     10    { MODE_AUTO,               6  }, 
     11    { MODE_P,                  1  }, 
     12    { MODE_TV,                 3  }, 
     13    { MODE_AV,                 2  }, 
     14    { MODE_M,                  0  }, 
     15    { MODE_PORTRAIT,           9  }, 
     16    { MODE_NIGHT,              8  }, 
     17    { MODE_LANDSCAPE,          7  }, 
     18    { MODE_VIDEO,              18 }, 
     19    { MODE_STITCH,             5  }, 
     20    { MODE_MY_COLORS,          4  }, 
     21    { MODE_SCN_WATER,          13 }, 
     22    { MODE_SCN_NIGHT,          15 }, 
     23    { MODE_SCN_CHILD,          16 }, 
     24    { MODE_SCN_PARTY,          14 }, 
     25    { MODE_SCN_GRASS,          10 }, 
     26    { MODE_SCN_SNOW,           11 }, 
     27    { MODE_SCN_BEACH,          12 }, 
     28    { MODE_SCN_FIREWORK,       17 } 
     29}; 
     30#define MODESCNT (sizeof(modemap)/sizeof(modemap[0])) 
     31 
     32long shooting_get_current_mode() { 
     33    int mode, i, t=0xFF; 
     34 
     35    mode  = (physw_status[2] & 0x00002000)?MODE_REC:MODE_PLAY; 
     36    mode |= (physw_status[2] & 0x00008000)?0:MODE_SCREEN_OPENED; 
     37    mode |= (physw_status[2] & 0x00004000)?0:MODE_SCREEN_ROTATED; 
     38     
     39    _GetPropertyCase(0, &t, 4); 
     40    for (i=0; i<MODESCNT; ++i) { 
     41        if (modemap[i].canonmode == t) { 
     42            return (mode | (modemap[i].hackmode & MODE_SHOOTING_MASK)); 
     43        } 
     44    } 
     45    return (mode); 
     46} 
  • trunk/platform/a620/shooting.c

    r106 r127  
    22 
    33#include "../generic/shooting.c" 
     4 
     5const int dof_tbl[] = {7300, 8460, 9565, 10835, 12565, 14926, 17342, 21709, 29200}; 
     6const int dof_tbl_size = sizeof(dof_tbl)/sizeof(dof_tbl[0]); 
    47 
    58long get_next_photo_dirfile_num() 
  • trunk/platform/a620/sub/100f/stubs_entry.S

    r105 r127  
    1414NSTUB(ExitTask, 0xffc115f0) 
    1515NSTUB(FreeMemory, 0xffc01b28) 
     16NSTUB(GetCurrentTargetDistance, 0xffe7a398) 
    1617NSTUB(GetParameterData, 0xffd4f350) 
    1718NSTUB(GetPropertyCase, 0xffc14188) 
     
    3031NSTUB(kbd_pwr_on, 0xffc17544) 
    3132NSTUB(kbd_read_keys_r2, 0xffc16fb8) 
     33NSTUB(_log10, 0xffeaf7a8) 
     34NSTUB(_log, 0xffeaf100) 
    3235NSTUB(lseek, 0xffec2cc4) 
    3336NSTUB(MakeDirectory, 0xffc5d130) 
     
    3538// ALT: NSTUB(memcmp, 0xffecaadc) // 9/0 
    3639NSTUB(memcpy, 0xffebc730) 
     40NSTUB(memPartAlloc, 0xffec5b4c) 
     41NSTUB(memPartFindMax, 0xffec488c) 
    3742NSTUB(memset, 0xffebc7a8) 
    3843NSTUB(mkdir, 0xffc5d074) 
     
    4348NSTUB(Open, 0xffc5ce64) 
    4449NSTUB(PhySw_testgpio, 0xffc17638) 
     50NSTUB(_pow, 0xffeafc98) 
    4551NSTUB(ProtectFile, 0xffc55aac) 
    4652NSTUB(read, 0xffec2be0) 
     
    5056NSTUB(SetPropertyCase, 0xffc1406c) 
    5157NSTUB(SleepTask, 0xffc11144) 
     58NSTUB(_sqrt, 0xffeb3fe4) 
    5259NSTUB(strcmp, 0xffebc818) 
    5360NSTUB(strcpy, 0xffebc9ac) 
  • trunk/platform/a630/main.c

    r104 r127  
     1#define VBATT_DEFAULT_MIN (4550) 
     2#define VBATT_DEFAULT_MAX (5150) 
     3 
    14#include "../generic/main.c" 
     5 
     6static struct { 
     7        int hackmode; 
     8        int canonmode; 
     9} modemap[] = { 
     10    { MODE_AUTO,               6  }, 
     11    { MODE_P,                  1  }, 
     12    { MODE_TV,                 3  }, 
     13    { MODE_AV,                 2  }, 
     14    { MODE_M,                  0  }, 
     15    { MODE_PORTRAIT,           9  }, 
     16    { MODE_NIGHT,              8  }, 
     17    { MODE_LANDSCAPE,          7  }, 
     18    { MODE_VIDEO,              18 }, 
     19    { MODE_STITCH,             5  }, 
     20    { MODE_MY_COLORS,          4  }, 
     21    { MODE_SCN_WATER,          13 }, 
     22    { MODE_SCN_NIGHT,          15 }, 
     23    { MODE_SCN_CHILD,          16 }, 
     24    { MODE_SCN_PARTY,          14 }, 
     25    { MODE_SCN_GRASS,          10 }, 
     26    { MODE_SCN_SNOW,           11 }, 
     27    { MODE_SCN_BEACH,          12 }, 
     28    { MODE_SCN_FIREWORK,       17 } 
     29}; 
     30#define MODESCNT (sizeof(modemap)/sizeof(modemap[0])) 
     31 
     32long shooting_get_current_mode() { 
     33    int mode, i, t=0xFF; 
     34 
     35    mode  = (physw_status[2] & 0x00002000)?MODE_REC:MODE_PLAY; 
     36    mode |= (physw_status[2] & 0x00008000)?0:MODE_SCREEN_OPENED; 
     37    mode |= (physw_status[2] & 0x00004000)?0:MODE_SCREEN_ROTATED; 
     38     
     39    _GetPropertyCase(0, &t, 4); 
     40    for (i=0; i<MODESCNT; ++i) { 
     41        if (modemap[i].canonmode == t) { 
     42            return (mode | (modemap[i].hackmode & MODE_SHOOTING_MASK)); 
     43        } 
     44    } 
     45    return (mode); 
     46} 
  • trunk/platform/a630/shooting.c

    r106 r127  
    22 
    33#include "../generic/shooting.c" 
     4 
     5const int dof_tbl[] = {7300, 8460, 9565, 10835, 12565, 14926, 17342, 21709, 29200}; 
     6const int dof_tbl_size = sizeof(dof_tbl)/sizeof(dof_tbl[0]); 
    47 
    58long get_next_photo_dirfile_num() 
  • trunk/platform/a630/sub/100c/stubs_entry.S

    r105 r127  
    1818// Best match: 92% 
    1919NSTUB(FreeMemory, 0xffc01abc) 
     20NSTUB(GetCurrentTargetDistance, 0xffea94d0) 
    2021NSTUB(GetParameterData, 0xffd6d854) 
    2122NSTUB(GetPropertyCase, 0xffc14de4) 
     
    3536NSTUB(kbd_pwr_on, 0xffc188c8) 
    3637NSTUB(kbd_read_keys_r2, 0xffc18274) 
     38NSTUB(_log10, 0xffee2090) 
     39NSTUB(_log, 0xffee5cf0) 
    3740NSTUB(lseek, 0xffef037c) 
    3841NSTUB(MakeDirectory, 0xffc617fc) 
     
    4043// ALT: NSTUB(memcmp, 0xffef7438) // 9/0 
    4144NSTUB(memcpy, 0xffeeb2d0) 
     45NSTUB(memPartAlloc, 0xffef3204) 
     46NSTUB(memPartFindMax, 0xffef1f44) 
    4247NSTUB(memset, 0xffeeb348) 
    4348NSTUB(mkdir, 0xffc61740) 
     
    4954// Best match: 86% 
    5055NSTUB(PhySw_testgpio, 0xffc18964) 
     56NSTUB(_pow, 0xffee2218) 
    5157NSTUB(ProtectFile, 0xffc59b04) 
    5258NSTUB(read, 0xffef0298) 
     
    5662NSTUB(SetPropertyCase, 0xffc14c94) 
    5763NSTUB(SleepTask, 0xffc119d0) 
     64NSTUB(_sqrt, 0xffee40ec) 
    5865NSTUB(strcmp, 0xffeeb3b8) 
    5966NSTUB(strcpy, 0xffeeb54c) 
  • trunk/platform/a640/main.c

    r104 r127  
     1#define VBATT_DEFAULT_MIN (4550) 
     2#define VBATT_DEFAULT_MAX (5150) 
     3 
    14#include "../generic/main.c" 
     5 
     6static struct { 
     7        int hackmode; 
     8        int canonmode; 
     9} modemap[] = { 
     10    { MODE_AUTO,               6  }, 
     11    { MODE_P,                  1  }, 
     12    { MODE_TV,                 3  }, 
     13    { MODE_AV,                 2  }, 
     14    { MODE_M,                  0  }, 
     15    { MODE_PORTRAIT,           9  }, 
     16    { MODE_NIGHT,              8  }, 
     17    { MODE_LANDSCAPE,          7  }, 
     18    { MODE_VIDEO,              18 }, 
     19    { MODE_STITCH,             5  }, 
     20    { MODE_MY_COLORS,          4  }, 
     21    { MODE_SCN_WATER,          13 }, 
     22    { MODE_SCN_NIGHT,          15 }, 
     23    { MODE_SCN_CHILD,          16 }, 
     24    { MODE_SCN_PARTY,          14 }, 
     25    { MODE_SCN_GRASS,          10 }, 
     26    { MODE_SCN_SNOW,           11 }, 
     27    { MODE_SCN_BEACH,          12 }, 
     28    { MODE_SCN_FIREWORK,       17 } 
     29}; 
     30#define MODESCNT (sizeof(modemap)/sizeof(modemap[0])) 
     31 
     32long shooting_get_current_mode() { 
     33    int mode, i, t=0xFF; 
     34 
     35    mode  = (physw_status[2] & 0x00002000)?MODE_REC:MODE_PLAY; 
     36    mode |= (physw_status[2] & 0x00008000)?0:MODE_SCREEN_OPENED; 
     37    mode |= (physw_status[2] & 0x00004000)?0:MODE_SCREEN_ROTATED; 
     38     
     39    _GetPropertyCase(0, &t, 4); 
     40    for (i=0; i<MODESCNT; ++i) { 
     41        if (modemap[i].canonmode == t) { 
     42            return (mode | (modemap[i].hackmode & MODE_SHOOTING_MASK)); 
     43        } 
     44    } 
     45    return (mode); 
     46} 
  • trunk/platform/a640/shooting.c

    r106 r127  
    22 
    33#include "../generic/shooting.c" 
     4 
     5const int dof_tbl[] = {7300, 8460, 9565, 10835, 12565, 14926, 17342, 21709, 29200}; 
     6const int dof_tbl_size = sizeof(dof_tbl)/sizeof(dof_tbl[0]); 
    47 
    58long get_next_photo_dirfile_num() 
  • trunk/platform/a640/sub/100b/stubs_entry.S

    r105 r127  
    1717// Best match: 92% 
    1818NSTUB(FreeMemory, 0xffc01abc) 
     19NSTUB(GetCurrentTargetDistance, 0xffeb2ec8) 
    1920NSTUB(GetParameterData, 0xffd704f8) 
    2021// Best match: 89% 
     
    3536NSTUB(kbd_pwr_on, 0xffc18f68) 
    3637NSTUB(kbd_read_keys_r2, 0xffc18914) 
     38NSTUB(_log10, 0xffeebfb8) 
     39NSTUB(_log, 0xffeefc18) 
    3740NSTUB(lseek, 0xffefa2a4) 
    3841NSTUB(MakeDirectory, 0xffc628bc) 
     
    4043// ALT: NSTUB(memcmp, 0xfff01360) // 9/0 
    4144NSTUB(memcpy, 0xffef51f8) 
     45NSTUB(memPartAlloc, 0xffefd12c) 
     46NSTUB(memPartFindMax, 0xffefbe6c) 
    4247NSTUB(memset, 0xffef5270) 
    4348NSTUB(mkdir, 0xffc62800) 
     
    4954// Best match: 86% 
    5055NSTUB(PhySw_testgpio, 0xffc19004) 
     56NSTUB(_pow, 0xffeec140) 
    5157NSTUB(ProtectFile, 0xffc5ab90) 
    5258NSTUB(read, 0xffefa1c0) 
     
    5662NSTUB(SetPropertyCase, 0xffc15334) 
    5763NSTUB(SleepTask, 0xffc12068) 
     64NSTUB(_sqrt, 0xffeee014) 
    5865NSTUB(strcmp, 0xffef52e0) 
    5966NSTUB(strcpy, 0xffef5474) 
  • trunk/platform/a710/main.c

    r104 r127  
     1#define VBATT_DEFAULT_MIN (2550) 
     2#define VBATT_DEFAULT_MAX (2300) 
     3 
    14#include "../generic/main.c" 
     5 
     6static struct { 
     7        int hackmode; 
     8        int canonmode; 
     9} modemap[] = { 
     10    { MODE_AUTO,               6  }, 
     11    { MODE_P,                  1  }, 
     12    { MODE_TV,                 3  }, 
     13    { MODE_AV,                 2  }, 
     14    { MODE_M,                  0  }, 
     15    { MODE_PORTRAIT,           9  }, 
     16    { MODE_NIGHT,              8  }, 
     17    { MODE_LANDSCAPE,          7  }, 
     18    { MODE_VIDEO,              18 }, 
     19    { MODE_STITCH,             5  }, 
     20    { MODE_MY_COLORS,          4  }, 
     21    { MODE_SCN_WATER,          13 }, 
     22    { MODE_SCN_NIGHT,          15 }, 
     23    { MODE_SCN_CHILD,          16 }, 
     24    { MODE_SCN_PARTY,          14 }, 
     25    { MODE_SCN_GRASS,          10 }, 
     26    { MODE_SCN_SNOW,           11 }, 
     27    { MODE_SCN_BEACH,          12 }, 
     28    { MODE_SCN_FIREWORK,       17 } 
     29}; 
     30#define MODESCNT (sizeof(modemap)/sizeof(modemap[0])) 
     31 
     32long shooting_get_current_mode() { 
     33    int mode, i, t=0xFF; 
     34 
     35    mode  = (physw_status[2] & 0x00002000)?MODE_REC:MODE_PLAY; 
     36    mode |= (physw_status[2] & 0x00008000)?0:MODE_SCREEN_OPENED; 
     37    mode |= (physw_status[2] & 0x00004000)?0:MODE_SCREEN_ROTATED; 
     38     
     39    _GetPropertyCase(0, &t, 4); 
     40    for (i=0; i<MODESCNT; ++i) { 
     41        if (modemap[i].canonmode == t) { 
     42            return (mode | (modemap[i].hackmode & MODE_SHOOTING_MASK)); 
     43        } 
     44    } 
     45    return (mode); 
     46} 
  • trunk/platform/a710/shooting.c

    r106 r127  
    22 
    33#include "../generic/shooting.c" 
     4 
     5const int dof_tbl[] = {5800, 6420, 7060, 7700, 8340, 9950, 11550, 13160, 14750, 17150, 19570, 22760, 26750, 30750, 34800}; 
     6const int dof_tbl_size = sizeof(dof_tbl)/sizeof(dof_tbl[0]); 
    47 
    58long get_next_photo_dirfile_num() 
  • trunk/platform/a710/sub/100a/stubs_entry.S

    r105 r127  
    1717// Best match: 92% 
    1818NSTUB(FreeMemory, 0xffc01abc) 
     19NSTUB(GetCurrentTargetDistance, 0xffeb6234) 
    1920NSTUB(GetParameterData, 0xffd76090) 
    2021NSTUB(GetPropertyCase, 0xffc14dec) 
     
    3435NSTUB(kbd_pwr_on, 0xffc18800) 
    3536NSTUB(kbd_read_keys_r2, 0xffc1829c) 
     37NSTUB(_log10, 0xffeef88c) 
     38NSTUB(_log, 0xffef34ec) 
    3639NSTUB(lseek, 0xffefdbc4) 
    3740NSTUB(MakeDirectory, 0xffc612d8) 
     
    3942// ALT: NSTUB(memcmp, 0xfff04c80) // 9/0 
    4043NSTUB(memcpy, 0xffef8b18) 
     44NSTUB(memPartAlloc, 0xfff00a4c) 
     45NSTUB(memPartFindMax, 0xffeff78c) 
    4146NSTUB(memset, 0xffef8b90) 
    4247NSTUB(mkdir, 0xffc6121c) 
     
    4651// Best match: 86% 
    4752NSTUB(PhySw_testgpio, 0xffc1889c) 
     53NSTUB(_pow, 0xffeefa14) 
    4854NSTUB(ProtectFile, 0xffc595e0) 
    4955NSTUB(read, 0xffefdae0) 
     
    5359NSTUB(SetPropertyCase, 0xffc14c9c) 
    5460NSTUB(SleepTask, 0xffc119d0) 
     61NSTUB(_sqrt, 0xffef18e8) 
    5562NSTUB(strcmp, 0xffef8c00) 
    5663NSTUB(strcpy, 0xffef8d94) 
  • trunk/platform/generic/main.c

    r104 r127  
    124124} 
    125125 
     126long vbatt_get_min() 
     127{ 
     128    return VBATT_DEFAULT_MIN; 
     129} 
     130 
     131long vbatt_get_max() 
     132{ 
     133    return VBATT_DEFAULT_MAX; 
     134} 
  • trunk/platform/generic/shooting.c

    r104 r127  
    33#include "core.h" 
    44#include "keyboard.h" 
     5#include "math.h" 
    56 
    67const ApertureSize aperture_sizes_table[] = { 
     
    146147} 
    147148 
     149int shooting_get_real_av() 
     150{ 
     151#if 1 
     152    short int avv = 0; 
     153    _GetPropertyCase(68, &avv, sizeof(avv)); 
     154    return (int)(((double)pow(1.4142135623730950488016887242097/* sqrt(2) */, ((double)avv)/96.0))*100.0); 
     155#else 
     156    return (int)(((double)pow(1.4142135623730950488016887242097/* sqrt(2) */, ((double)_GetCurrentAvValue())/96.0))*100.0); 
     157#endif 
     158} 
     159 
    148160void shooting_set_av(int v) 
    149161{ 
     
    199211    return v; 
    200212} 
     213 
  • trunk/platform/generic/wrappers.c

    r106 r127  
    132132    return res; 
    133133} 
     134 
     135double log(double x) { 
     136    return __log(x); 
     137} 
     138 
     139double log10(double x) { 
     140    return __log10(x); 
     141} 
     142 
     143double pow(double x, double y) { 
     144    return __pow(x, y); 
     145} 
     146 
     147double sqrt(double x) { 
     148    return __sqrt(x); 
     149} 
     150 
     151long lens_get_target_distance() 
     152{ 
     153    return _GetCurrentTargetDistance(); 
     154} 
  • trunk/platform/s3is/lib.c

    r111 r127  
    3030 
    3131 
    32 long _GetFocusLensSubjectDistance() 
    33 { 
    34     return -1; 
    35 } 
    36  
    3732void _kbd_pwr_on() 
    3833{ 
  • trunk/platform/s3is/main.c

    r111 r127  
     1#define VBATT_DEFAULT_MIN (4550) 
     2#define VBATT_DEFAULT_MAX (5150) 
     3 
    14#include "../generic/main.c" 
     5 
     6static struct { 
     7        int hackmode; 
     8        int canonmode; 
     9} modemap[] = { 
     10    { MODE_AUTO,                32768 }, 
     11    { MODE_P,                   32772 }, 
     12    { MODE_TV,                  32771 }, 
     13    { MODE_AV,                  32770 }, 
     14    { MODE_M,                   32769 }, 
     15    { MODE_PORTRAIT,            32781 }, 
     16    { MODE_NIGHT,               32782 }, 
     17    { MODE_LANDSCAPE,           32780 }, 
     18    { MODE_VIDEO,                2590 }, 
     19    { MODE_STITCH,              33290 }, 
     20    { MODE_MY_COLORS,           16921 }, 
     21    { MODE_SCN_NIGHT,           16395 }, 
     22    { MODE_SCN_CHILD,           32775 }, 
     23    { MODE_SCN_PARTY,           16400 }, 
     24    { MODE_SCN_GRASS,           16401 }, 
     25    { MODE_SCN_SNOW,            16402 }, 
     26    { MODE_SCN_BEACH,           16403 }, 
     27    { MODE_SCN_FIREWORK,        16404 },  
     28    { MODE_SCN_COLOR_ACCENT,    16920 }  
     29}; 
     30#define MODESCNT (sizeof(modemap)/sizeof(modemap[0])) 
     31 
     32long shooting_get_current_mode() { 
     33    int mode, i, t=0xFF; 
     34 
     35    _GetPropertyCase(204, &t, 4); 
     36    mode  = (t==4)?MODE_REC:MODE_PLAY; 
     37    mode |= (physw_status[1] & 0x00000001)?0:MODE_SCREEN_OPENED; 
     38    mode |= (physw_status[1] & 0x00000002)?0:MODE_SCREEN_ROTATED; 
     39     
     40    t=0xFF; 
     41    _GetPropertyCase(0, &t, 4); 
     42    for (i=0; i<MODESCNT; ++i) { 
     43        if (modemap[i].canonmode == t) { 
     44            return (mode | (modemap[i].hackmode & MODE_SHOOTING_MASK)); 
     45        } 
     46    } 
     47    return (mode); 
     48} 
  • trunk/platform/s3is/shooting.c

    r124 r127  
    22 
    33#include "../generic/shooting.c" 
     4 
     5const int dof_tbl[] = {0}; 
     6const int dof_tbl_size = /*sizeof(dof_tbl)/sizeof(dof_tbl[0])*/ 0; 
    47 
    58long get_next_photo_dirfile_num() 
     
    2225long get_file_next_counter() 
    2326{ 
    24     return get_file_counter(); 
     27    return ((get_file_counter()>>4)+1)<<4; 
    2528} 
  • trunk/platform/s3is/sub/100a/stubs_entry.S

    r111 r127  
    1515NSTUB(ExitTask, 0xff821a18) 
    1616NSTUB(FreeMemory, 0xff811ad0) 
     17NSTUB(GetCurrentTargetDistance, 0xffb0c584) 
    1718// Best match: 84% 
    1819NSTUB(GetParameterData, 0xff994b68) 
     
    4041// Best match: 60% 
    4142NSTUB(kbd_read_keys_r2, 0xff827bf0) 
     43NSTUB(_log10, 0xffb45a60) 
     44NSTUB(_log, 0xffb496c0) 
    4245NSTUB(lseek, 0xffb542dc) 
    4346NSTUB(MakeDirectory, 0xff871668) 
     
    4548// ALT: NSTUB(memcmp, 0xffb5bdb8) // 9/0 
    4649NSTUB(memcpy, 0xffb4f230) 
     50NSTUB(memPartAlloc, 0xffb57164) 
     51NSTUB(memPartFindMax, 0xffb55ea4) 
    4752NSTUB(memset, 0xffb4f2a8) 
    4853NSTUB(mkdir, 0xff8715ac) 
     
    5459// Best match: 86% 
    5560NSTUB(PhySw_testgpio, 0xff82835c) 
     61NSTUB(_pow, 0xffb45be8) 
    5662NSTUB(ProtectFile, 0xff869730) 
    5763NSTUB(read, 0xffb541f8) 
     
    6268NSTUB(SetPropertyCase, 0xff824870) 
    6369NSTUB(SleepTask, 0xff82156c) 
     70NSTUB(_sqrt, 0xffb47abc) 
    6471NSTUB(strcmp, 0xffb4f318) 
    6572NSTUB(strcpy, 0xffb4f4ac) 
  • trunk/platform/s3is/sub/100a/stubs_entry_2.S

    r122 r127  
    44NHSTUB(GetZoomLensCurrentPosition, 0xFFAE8474) 
    55NHSTUB(GetZoomLensCurrentPoint, 0xFFAE8460) 
    6 //NHSTUB(GetFocusLensSubjectDistance, 0xFFEA2F3C) 
     6NHSTUB(GetFocusLensSubjectDistance, 0xFFAF007C) 
    77 
    88NHSTUB(platformsub_kbd_fetch_data, 0xFF8281C4) 
  • trunk/tools/sig_ref_1.txt

    r105 r127  
    6060Read 0xFFC5C7A0 
    6161Write 0xFFC5C7AC 
     62memPartAlloc 0xFFEBEE28 
     63memPartFindMax 0xFFEBDB68 
     64_pow 0xFFEA8F74 
     65_log 0xFFEA83DC 
     66_log10 0xFFEA8A84 
     67_sqrt 0xFFEAD2C0 
     68GetCurrentTargetDistance 0xFFE736BC 
  • trunk/tools/signatures.h

    r105 r127  
    14721472}; 
    14731473 
     1474static FuncSig func_sig_memPartAlloc_1[] = { 
     1475        {   0, 0xe1100001, 0xfdffffff }, 
     1476        {   2, 0xe04dd008, 0xfdffffff }, 
     1477        {   3, 0x0a000000, 0xff000000 }, 
     1478        {   6, 0xe15b0000, 0xfdffffff }, 
     1479        {   7, 0x1a000000, 0xff000000 }, 
     1480        {   8, 0xeb000000, 0xff000000 }, 
     1481        {  11, 0xe1a00000, 0xfdffffff }, 
     1482        {  12, 0xea000000, 0xff000000 }, 
     1483        {  15, 0xe080000c, 0xfdffffff }, 
     1484        {  16, 0xe1a0e00f, 0xfdffffff }, 
     1485        {  17, 0xe1a0f00b, 0xfdffffff }, 
     1486        {  18, 0xea000000, 0xff000000 }, 
     1487        {  21, 0xeb000000, 0xff000000 }, 
     1488        {  22, 0xe08dd008, 0xfdffffff }, 
     1489        {  24, 0xe1a03000, 0xfdffffff }, 
     1490        {  26, 0xe1a02001, 0xfdffffff }, 
     1491        {  27, 0xe1a01003, 0xfdffffff }, 
     1492        {  28, 0xea000000, 0xff000000 }, 
     1493        {  29, 0xe1a01000, 0xfdffffff }, 
     1494        {  31, 0xea000000, 0xff000000 }, 
     1495        { -1, -1, -1 }, 
     1496        /* 20/32 */ 
     1497}; 
     1498 
     1499static FuncSig func_sig_memPartFindMax_1[] = { 
     1500        {   0, 0xe1100001, 0xfdffffff }, 
     1501        {   2, 0xe04dd008, 0xfdffffff }, 
     1502        {   3, 0xe1a0a000, 0xfdffffff }, 
     1503        {   4, 0xe1a0b000, 0xfdffffff }, 
     1504        {   5, 0x0a000000, 0xff000000 }, 
     1505        {   8, 0xe15b0000, 0xfdffffff }, 
     1506        {  10, 0x0a000000, 0xff000000 }, 
     1507        {  13, 0xe08a000c, 0xfdffffff }, 
     1508        {  14, 0xe1a0e00f, 0xfdffffff }, 
     1509        {  15, 0xe1a0f00b, 0xfdffffff }, 
     1510        {  16, 0xea000000, 0xff000000 }, 
     1511        {  20, 0xe1510000, 0xfdffffff }, 
     1512        {  21, 0x0a000000, 0xff000000 }, 
     1513        {  22, 0xe1510000, 0xfdffffff }, 
     1514        {  23, 0x0a000000, 0xff000000 }, 
     1515        {  25, 0xe15c0001, 0xfdffffff }, 
     1516        {  26, 0x0a000000, 0xff000000 }, 
     1517        {  28, 0xeb000000, 0xff000000 }, 
     1518        {  31, 0xea000000, 0xff000000 }, 
     1519        { -1, -1, -1 }, 
     1520        /* 19/32 */ 
     1521}; 
     1522 
     1523static FuncSig func_sig__pow_1[] = { 
     1524        {   0, 0xe04dd010, 0xfdffffff }, 
     1525        {   2, 0xe04dd0e0, 0xfdffffff }, 
     1526        {   3, 0xe1a0cf41, 0xfdffffff }, 
     1527        {   4, 0xe08cc00d, 0xfdffffff }, 
     1528        {   6, 0xe1a0cf43, 0xfdffffff }, 
     1529        {   7, 0xe08cc00d, 0xfdffffff }, 
     1530        {  11, 0xe08d2068, 0xfdffffff }, 
     1531        {  18, 0xe08d2070, 0xfdffffff }, 
     1532        {  26, 0xe00cc003, 0xfdffffff }, 
     1533        {  30, 0xe003c00c, 0xfdffffff }, 
     1534        {  31, 0xe1a03000, 0xfdffffff }, 
     1535        { -1, -1, -1 }, 
     1536        /* 11/32 */ 
     1537}; 
     1538 
     1539static FuncSig func_sig__log_1[] = { 
     1540        {   1, 0xe04dd050, 0xfdffffff }, 
     1541        {   2, 0xe1a08000, 0xfdffffff }, 
     1542        {   3, 0xe1a09001, 0xfdffffff }, 
     1543        {   4, 0xe08d0018, 0xfdffffff }, 
     1544        {   9, 0xe1a0c000, 0xfdffffff }, 
     1545        {  11, 0xe1530601, 0xfdffffff }, 
     1546        {  13, 0xaa000000, 0xff000000 }, 
     1547        {  16, 0xe0033002, 0xfdffffff }, 
     1548        {  19, 0x01a00000, 0xfdffffff }, 
     1549        {  20, 0x0a000000, 0xff000000 }, 
     1550        {  22, 0xe15c0000, 0xfdffffff }, 
     1551        {  24, 0xb1a00000, 0xfdffffff }, 
     1552        {  25, 0xba000000, 0xff000000 }, 
     1553        {  27, 0xe1a01009, 0xfdffffff }, 
     1554        {  28, 0xe1a00008, 0xfdffffff }, 
     1555        {  31, 0xe1a02000, 0xfdffffff }, 
     1556        { -1, -1, -1 }, 
     1557        /* 16/32 */ 
     1558}; 
     1559 
     1560static FuncSig func_sig__log10_1[] = { 
     1561        {   1, 0xe04dd020, 0xfdffffff }, 
     1562        {   2, 0xe1a08000, 0xfdffffff }, 
     1563        {   3, 0xe1a09001, 0xfdffffff }, 
     1564        {   4, 0xe08db008, 0xfdffffff }, 
     1565        {   8, 0xe1a0b000, 0xfdffffff }, 
     1566        {   9, 0xe15a0601, 0xfdffffff }, 
     1567        {  10, 0xaa000000, 0xff000000 }, 
     1568        {  12, 0xe00ac00c, 0xfdffffff }, 
     1569        {  15, 0x01a00000, 0xfdffffff }, 
     1570        {  16, 0x0a000000, 0xff000000 }, 
     1571        {  17, 0xe15a0000, 0xfdffffff }, 
     1572        {  19, 0xb1a00000, 0xfdffffff }, 
     1573        {  20, 0xba000000, 0xff000000 }, 
     1574        {  22, 0xe1a01009, 0xfdffffff }, 
     1575        {  23, 0xe1a00008, 0xfdffffff }, 
     1576        {  25, 0xe1a02000, 0xfdffffff }, 
     1577        {  26, 0xeb000000, 0xff000000 }, 
     1578        {  27, 0xe1a09001, 0xfdffffff }, 
     1579        {  28, 0xe1a08000, 0xfdffffff }, 
     1580        {  31, 0xe1a0a001, 0xfdffffff }, 
     1581        { -1, -1, -1 }, 
     1582        /* 20/32 */ 
     1583}; 
     1584 
     1585static FuncSig func_sig__sqrt_1[] = { 
     1586        {   1, 0xe1a0c470, 0xfdffffff }, 
     1587        {   3, 0xe111000c, 0xfdffffff }, 
     1588        {   4, 0x0a000000, 0xff000000 }, 
     1589        {   5, 0xe1dce001, 0xfdffffff }, 
     1590        {   6, 0x0a000000, 0xff000000 }, 
     1591        {   7, 0xe1110480, 0xfdffffff }, 
     1592        {   8, 0x1a000000, 0xff000000 }, 
     1593        {   9, 0xe1a0ca21, 0xfdffffff }, 
     1594        {  10, 0xe1c11a0c, 0xfdffffff }, 
     1595        {  12, 0xe08cc0fd, 0xfdffffff }, 
     1596        {  13, 0xe1b0c0ac, 0xfdffffff }, 
     1597        {  14, 0xe08ccf60, 0xfdffffff }, 
     1598        {  15, 0x3a000000, 0xff000000 }, 
     1599        {  16, 0xe1b00080, 0xfdffffff }, 
     1600        {  18, 0xe1a01501, 0xfdffffff }, 
     1601        {  20, 0xe1a00500, 0xfdffffff }, 
     1602        {  21, 0xe1a02440, 0xfdffffff }, 
     1603        {  22, 0xe1a03000, 0xfdffffff }, 
     1604        {  23, 0xe0411440, 0xfdffffff }, 
     1605        {  24, 0xe1a0e540, 0xfdffffff }, 
     1606        {  25, 0xe0514002, 0xfdffffff }, 
     1607        {  26, 0x2054400e, 0xfdffffff }, 
     1608        {  27, 0x21a01004, 0xfdffffff }, 
     1609        {  28, 0x2082208e, 0xfdffffff }, 
     1610        {  29, 0xe1b00080, 0xfdffffff }, 
     1611        {  31, 0xe1b0e0ae, 0xfdffffff }, 
     1612        { -1, -1, -1 }, 
     1613        /* 26/32 */ 
     1614}; 
     1615 
     1616static FuncSig func_sig_GetCurrentTargetDistance_1[] = { 
     1617        {   1, 0xeb000000, 0xff000000 }, 
     1618        {   2, 0xe1a00800, 0xfdffffff }, 
     1619        {   3, 0xe1a00820, 0xfdffffff }, 
     1620        {   6, 0xe04dd004, 0xfdffffff }, 
     1621        {   7, 0xe1a03000, 0xfdffffff }, 
     1622        {   8, 0xe1a04000, 0xfdffffff }, 
     1623        {   9, 0xe1a05001, 0xfdffffff }, 
     1624        {  10, 0xe08d0002, 0xfdffffff }, 
     1625        {  11, 0xe1a0100d, 0xfdffffff }, 
     1626        {  12, 0xe1cd30b2, 0xfdffffff }, 
     1627        {  13, 0xe1cd30b0, 0xfdffffff }, 
     1628        {  14, 0xeb000000, 0xff000000 }, 
     1629        {  15, 0xe1dd30b2, 0xfdffffff }, 
     1630        {  16, 0xe1c430b0, 0xfdffffff }, 
     1631        {  17, 0xe1dd30b0, 0xfdffffff }, 
     1632        {  18, 0xe1c530b0, 0xfdffffff }, 
     1633        {  19, 0xe08dd004, 0xfdffffff }, 
     1634        {  21, 0xe1a0f00e, 0xfdffffff }, 
     1635        /* RET found, stopping... */ 
     1636        { -1, -1, -1 }, 
     1637        /* 18/32 */ 
     1638}; 
     1639 
    14741640static FuncSig func_sig_GetSystemTime_2[] = { 
    14751641        {   3, 0xe1550000, 0xfdffffff }, 
     
    16921858        { "ExitTask", func_sig_ExitTask_1 }, 
    16931859        { "FreeMemory", func_sig_FreeMemory_1 }, 
     1860        { "GetCurrentTargetDistance", func_sig_GetCurrentTargetDistance_1 }, 
    16941861        { "GetParameterData", func_sig_GetParameterData_1 }, 
    16951862        { "GetParameterData", func_sig_GetParameterData_2 }, 
     
    17101877        { "kbd_pwr_on", func_sig_kbd_pwr_on_1 }, 
    17111878        { "kbd_read_keys_r2", func_sig_kbd_read_keys_r2_1 }, 
     1879        { "_log10", func_sig__log10_1 }, 
     1880        { "_log", func_sig__log_1 }, 
    17121881        { "lseek", func_sig_lseek_1 }, 
    17131882        { "MakeDirectory", func_sig_MakeDirectory_1 }, 
    17141883        { "memcmp", func_sig_memcmp_1 }, 
    17151884        { "memcpy", func_sig_memcpy_1 }, 
     1885        { "memPartAlloc", func_sig_memPartAlloc_1 }, 
     1886        { "memPartFindMax", func_sig_memPartFindMax_1 }, 
    17161887        { "memset", func_sig_memset_1 }, 
    17171888        { "mkdir", func_sig_mkdir_1 }, 
     
    17211892        { "Open", func_sig_Open_1 }, 
    17221893        { "PhySw_testgpio", func_sig_PhySw_testgpio_1 }, 
     1894        { "_pow", func_sig__pow_1 }, 
    17231895        { "ProtectFile", func_sig_ProtectFile_1 }, 
    17241896        { "read", func_sig_read_1 }, 
     
    17311903        { "SetPropertyCase", func_sig_SetPropertyCase_2 }, 
    17321904        { "SleepTask", func_sig_SleepTask_1 }, 
     1905        { "_sqrt", func_sig__sqrt_1 }, 
    17331906        { "strcmp", func_sig_strcmp_1 }, 
    17341907        { "strcpy", func_sig_strcpy_1 }, 
Note: See TracChangeset for help on using the changeset viewer.