Changeset 1663


Ignore:
Timestamp:
02/12/12 06:13:37 (2 years ago)
Author:
philmoz
Message:

Merged revision(s) 1662 from branches/release-1_0:

Location:
trunk
Files:
95 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/core/levent.c

    r992 r1663  
    33#include "levent.h" 
    44 
    5 // functions dealing with "logical events" 
    6  
    7 unsigned levent_index_for_name(const char *name) { 
    8     unsigned i; 
    9     // TODO could check for id=-1 or id=0, both show up at end of table ? 
    10     for (i=0; levent_table[i].name; i++) { 
    11         // case insensitive might be better 
    12         if (strcmp(levent_table[i].name,name) == 0) { 
    13             return i; 
    14         } 
     5/* function dealing with "logical events"*/ 
     6unsigned levent_index_for_name(const char *name) 
     7{ 
     8  unsigned i; 
     9  // TODO could check for id=-1 or id=0, both show up at end of table ? 
     10  for (i=0; levent_table[i].name; i++) { 
     11    // case insensitive might be better 
     12    if (strcmp(levent_table[i].name,name) == 0) { 
     13        return i; 
    1514    } 
    16     return LEVENT_INVALID_INDEX; 
     15  } 
     16  return LEVENT_INVALID_INDEX; 
    1717} 
    1818 
    19 unsigned levent_index_for_id(unsigned id) { 
    20     unsigned i; 
    21     // TODO could check for id=-1 or id=0, both show up at end of table ? 
    22     for (i=0; levent_table[i].name; i++) { 
    23         // case insensitive might be better 
    24         if (id == levent_table[i].id) { 
    25             return i; 
    26         } 
     19unsigned levent_index_for_id(unsigned id) 
     20{ 
     21  unsigned i; 
     22  // TODO could check for id=-1 or id=0, both show up at end of table ? 
     23  for (i=0; levent_table[i].name; i++) { 
     24    // case insensitive might be better 
     25    if (id == levent_table[i].id) { 
     26        return i; 
    2727    } 
    28     return LEVENT_INVALID_INDEX; 
     28  } 
     29  return LEVENT_INVALID_INDEX; 
    2930} 
    3031 
    31 unsigned levent_count(void) { 
    32     static unsigned num_levents = 0; 
    33     if(!num_levents) { 
    34         levent_def *ev; 
    35         // TODO could check for id=-1 or id=0, both show up at end of table ? 
    36         for (ev = levent_table; ev->name; ev++) { 
    37             num_levents++; 
    38         } 
     32unsigned levent_count(void) 
     33{ 
     34  static unsigned num_levents = 0; 
     35  if(!num_levents) { 
     36    levent_def *ev; 
     37    // TODO could check for id=-1 or id=0, both show up at end of table ? 
     38    for (ev = levent_table; ev->name; ev++) { 
     39      num_levents++; 
    3940    } 
    40     return num_levents; 
     41  } 
     42  return num_levents; 
    4143} 
    4244 
    43 unsigned levent_id_for_name(const char *name) { 
    44     unsigned i = levent_index_for_name(name); 
    45     if (i!=LEVENT_INVALID_INDEX) 
    46         return levent_table[i].id; 
    47     else 
    48         return 0; // or -1 ? both appear at the end of the event list 
     45unsigned levent_id_for_name(const char *name) 
     46{ 
     47  unsigned i = levent_index_for_name(name); 
     48  if (i!=LEVENT_INVALID_INDEX) 
     49    return levent_table[i].id; 
     50  else 
     51    return 0; // or -1 ? both appear at the end of the event list 
    4952} 
    5053 
    51 const char * levent_name_for_id(unsigned id) { 
    52     unsigned i = levent_index_for_id(id); 
    53     if (i!=LEVENT_INVALID_INDEX) 
    54         return levent_table[i].name; 
    55     else 
    56         return NULL; 
     54const char * levent_name_for_id(unsigned id) 
     55{ 
     56  unsigned i = levent_index_for_id(id); 
     57  if (i!=LEVENT_INVALID_INDEX) 
     58    return levent_table[i].name; 
     59  else 
     60    return NULL; 
    5761} 
    5862 
    5963// note, slow linear search every time 
    60 int levent_post_to_ui_by_name(const char *name) { 
    61     unsigned id=levent_id_for_name(name); 
    62     if(id) { 
    63         PostLogicalEventToUI(id,0); 
    64         return 1; 
    65     } 
    66     return 0; 
     64int levent_post_to_ui_by_name(const char *name) 
     65{ 
     66        unsigned id=levent_id_for_name(name); 
     67        if(id) { 
     68                PostLogicalEventToUI(id,0); 
     69                return 1; 
     70        } 
     71        return 0; 
    6772} 
    6873 
    6974void levent_set_record(void) { 
    70     levent_post_to_ui_by_name("PressRecButton"); 
    71     levent_post_to_ui_by_name("UnpressRecButton"); 
     75        levent_post_to_ui_by_name("PressRecButton"); 
     76        levent_post_to_ui_by_name("UnpressRecButton"); 
    7277} 
    7378 
    7479void levent_set_play(void) { 
    75     levent_post_to_ui_by_name("PressPBButton"); 
    76     levent_post_to_ui_by_name("UnpressPBButton"); 
     80        levent_post_to_ui_by_name("PressPBButton"); 
     81        levent_post_to_ui_by_name("UnpressPBButton"); 
    7782} 
  • trunk/core/luascript.c

    r1632 r1663  
    134134static void lua_count_hook(lua_State *L, lua_Debug *ar) 
    135135{ 
    136   run_hook_count++; 
    137   if( L->nCcalls > L->baseCcalls || !yield_hook_enabled ) 
     136    run_hook_count++; 
     137    if( L->nCcalls > L->baseCcalls || !yield_hook_enabled ) 
    138138    return; 
    139   if(run_hook_count >= yield_max_count || get_tick_count() - run_start_tick >= yield_max_ms) 
     139    if(run_hook_count >= yield_max_count || get_tick_count() - run_start_tick >= yield_max_ms) 
    140140    lua_yield( L, 0 ); 
    141141} 
     
    862862} 
    863863 
     864// begin lua draw fuctions 
    864865unsigned char script_colors[][2]  = { 
    865866 
     
    901902                                        {COLOR_HISTO_B_PLAY,        COLOR_HISTO_B},             //  12  blue_light  - placeholder 
    902903 
    903                                         {COLOR_BLACK,               COLOR_BLACK},                           //  13  grey        - placeholder (there's no universal grey) 
    904                                         {COLOR_BLACK,               COLOR_BLACK},                           //  14  grey_dark   - placeholder (there's no universal grey) 
     904                                        {COLOR_BLACK,               COLOR_BLACK},               //  13  grey        - placeholder (there's no universal grey) 
     905                                        {COLOR_BLACK,               COLOR_BLACK},               //  14  grey_dark   - placeholder (there's no universal grey) 
    905906                                        {COLOR_WHITE,               COLOR_WHITE},               //  15  grey_light  - placeholder (there's no universal grey) 
    906907 
     
    10041005  return 1; 
    10051006} 
     1007// end lua draw functions 
    10061008 
    10071009static int luaCB_autostarted( lua_State* L ) 
     
    10681070static int luaCB_set_movie_status( lua_State* L ) 
    10691071{ 
    1070   int to; 
    10711072  switch(luaL_checknumber( L, 1 )) { 
    10721073    case 1: 
     
    18641865{ 
    18651866  unsigned *argbuf=NULL; 
    1866   unsigned i; 
    18671867  unsigned n_args = lua_gettop(L)-1; 
    18681868  void *fptr; 
     
    19131913  const char *evpname; 
    19141914  unsigned *argbuf; 
    1915   unsigned i; 
    19161915  unsigned n_args = lua_gettop(L); 
    19171916 
     
    19451944static int luaCB_reboot( lua_State* L ) 
    19461945{ 
    1947         lua_pushboolean(L, reboot(luaL_optstring( L, 1, NULL ))); 
    1948         return 1; 
     1946    lua_pushboolean(L, reboot(luaL_optstring( L, 1, NULL ))); 
     1947    return 1; 
    19491948} 
    19501949 
     
    21982197} 
    21992198 
    2200  
    22012199static void register_func( lua_State* L, const char *name, void *func) { 
    22022200  lua_pushcfunction( L, func ); 
  • trunk/include/asmsafe.h

    r994 r1663  
    11#ifndef ASMSAFE_H 
    22#define ASMSAFE_H 
    3  
    43/* 
    54macros to safely call C functions from most inline ASM 
     
    98usage 
    109    asm volatile ( 
    11         ... 
    12         ASM_SAFE("BL my_func\n") 
    13         ... 
     10... 
     11    ASM_SAFE("BL my_func\n") 
     12    ... 
    1413    ) 
    1514 
     
    3635    "LDR R0,[SP],#4\n" \ 
    3736    "MSR CPSR_cxsf,R0\n" \ 
    38     "LDMFD SP!, {R0-R12,LR}\n" 
     37    "LDMFD SP!, {R0-R12,LR}\n"  
    3938 
    4039#define ASM_SAFE(asmcode) \ 
     
    4342    ASM_SAFE_LEAVE 
    4443 
    45 #endif    // ASMSAFE_H 
     44#endif // ASMSAFE_H 
  • trunk/include/camera.h

    r1656 r1663  
    2020//---------------------------------------------------------- 
    2121 
    22 #undef  CAM_DRYOS                               // Camera is DryOS-based 
    23 #undef  CAM_PROPSET                             // Camera's properties group (the generation) 
    24 #undef  CAM_DRYOS_2_3_R39                       // Define for cameras with DryOS release R39 or greater 
    25 #undef  CAM_DRYOS_2_3_R47                       // Define for cameras with DryOS release R47 or greater 
    26  
    27 #undef  CAM_SWIVEL_SCREEN                       // Camera has rotated LCD screen 
    28 #define CAM_USE_ZOOM_FOR_MF         1           // Zoom lever can be used for manual focus adjustments 
    29 #undef  CAM_ADJUSTABLE_ALT_BUTTON               // ALT-button can be set from menu 
    30 #define CAM_REMOTE                  1           // Camera supports USB-remote 
    31 #undef  SYNCHABLE_REMOTE_NOT_ENABLED            // Disable support for synchable remote switch (in kbd.c) TODO only used by one camera ??? 
    32 #define CAM_SYNCH                   1           // Camera supports SDM precision synch 
    33 #undef  CAM_MULTIPART                           // Camera supports SD-card multipartitioning 
    34 #define CAM_HAS_ZOOM_LEVER          1           // Camera has dedicated zoom buttons 
    35 #undef  CAM_DRAW_EXPOSITION                     // Output expo-pair on screen (for cameras which (sometimes) don't do that) 
    36 #define CAM_HAS_ERASE_BUTTON        1           // Camera has dedicated erase button 
    37 #define CAM_HAS_IRIS_DIAPHRAGM      1           // Camera has real diaphragm mechanism (http://en.wikipedia.org/wiki/Diaphragm_%28optics%29) 
    38 #undef  CAM_HAS_ND_FILTER                       // Camera has build-in ND filter 
    39 #define CAM_CAN_SD_OVER_NOT_IN_MF   1           // Camera allows subject distance (focus) override when not in manual focus mode 
    40 #undef  CAM_CAN_SD_OVER_IN_AF_LOCK              // Camera allows subject distance (focus) override when in AF Lock mode 
    41 #define CAM_CAN_SD_OVERRIDE         1           // Camera allows to do subject distance override 
    42 #define CAM_HAS_MANUAL_FOCUS        1           // Camera has manual focus mode 
    43 #define CAM_HAS_USER_TV_MODES       1           // Camera has tv-priority or manual modes with ability to set tv value 
    44 #undef  CAM_SHOW_OSD_IN_SHOOT_MENU              // On some cameras Canon shoot menu has additional functionality and useful in this case to see CHDK OSD in this mode 
    45 #define CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO  1 // Camera can unlock optical zoom in video (if it is locked) 
    46 #undef  CAM_FEATURE_FEATHER                     // Cameras with "feather" or touch wheel. 
    47 #define CAM_HAS_IS                  1           // Camera has image stabilizer 
    48 #undef  CAM_HAS_JOGDIAL                         // Camera has a "jog dial" 
    49  
    50 #undef  CAM_CONSOLE_LOG_ENABLED                 // Development: internal camera stdout -> A/stdout.txt 
    51 #define CAM_CHDK_HAS_EXT_VIDEO_MENU 1           // In CHDK for this camera realized adjustable video compression 
    52 #undef  CAM_CAN_MUTE_MICROPHONE                 // Camera has function to mute microphone 
    53  
    54 #define CAM_EMUL_KEYPRESS_DELAY     40          // Delay to interpret <alt>-button press as longpress 
    55 #define CAM_EMUL_KEYPRESS_DURATION  5           // Length of keypress emulation 
    56  
    57 #define CAM_MENU_BORDERWIDTH        30          // Defines the width of the border on each side of the CHDK menu. The CHDK menu will have this 
     22    #undef  CAM_DRYOS                           // Camera is DryOS-based 
     23    #undef  CAM_PROPSET                         // Camera's properties group (the generation) 
     24    #undef  CAM_DRYOS_2_3_R31                   // Define for cameras with DryOS release R31 or greater -> G10 
     25    #undef  CAM_DRYOS_2_3_R39                   // Define for cameras with DryOS release R39 or greater 
     26    #undef  CAM_DRYOS_2_3_R47                   // Define for cameras with DryOS release R47 or greater -> Cameras can boot from FAT32 
     27 
     28    #undef  CAM_HAS_CMOS                        // Camera has CMOS sensor 
     29    #undef  CAM_SWIVEL_SCREEN                   // Camera has rotated LCD screen 
     30    #define CAM_USE_ZOOM_FOR_MF             1   // Zoom lever can be used for manual focus adjustments 
     31    #undef  CAM_ADJUSTABLE_ALT_BUTTON           // ALT-button can be set from menu 
     32    #define CAM_REMOTE                      1   // Camera supports USB-remote 
     33    #undef  SYNCHABLE_REMOTE_NOT_ENABLED        // Disable support for synchable remote switch (in kbd.c) TODO only used by one camera ??? 
     34    #define CAM_SYNCH                       1   // Camera supports SDM precision synch 
     35    #undef  CAM_MULTIPART                       // Camera supports SD-card multipartitioning 
     36    #define CAM_HAS_ZOOM_LEVER              1   // Camera has dedicated zoom buttons 
     37    #undef  CAM_DRAW_EXPOSITION                 // Output expo-pair on screen (for cameras which (sometimes) don't do that) 
     38    #define CAM_HAS_ERASE_BUTTON            1   // Camera has dedicated erase button 
     39    #define CAM_HAS_IRIS_DIAPHRAGM          1   // Camera has real diaphragm mechanism (http://en.wikipedia.org/wiki/Diaphragm_%28optics%29) 
     40    #undef  CAM_HAS_ND_FILTER                   // Camera has build-in ND filter 
     41    #define CAM_CAN_SD_OVER_NOT_IN_MF       1   // Camera allows subject distance (focus) override when not in manual focus mode 
     42    #undef  CAM_CAN_SD_OVER_IN_AF_LOCK          // Camera allows subject distance (focus) override when in AF Lock mode 
     43    #define CAM_CAN_SD_OVERRIDE             1   // Camera allows to do subject distance override 
     44    #define CAM_HAS_MANUAL_FOCUS            1   // Camera has manual focus mode 
     45    #define CAM_HAS_USER_TV_MODES           1   // Camera has tv-priority or manual modes with ability to set tv value 
     46    #undef  CAM_SHOW_OSD_IN_SHOOT_MENU          // On some cameras Canon shoot menu has additional functionality and useful in this case to see CHDK OSD in this mode 
     47    #define CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO 1 // Camera can unlock optical zoom in video (if it is locked) 
     48    #undef  CAM_FEATURE_FEATHER                 // Cameras with "feather" or touch wheel. 
     49    #define CAM_HAS_IS                      1   // Camera has image stabilizer 
     50    #undef  CAM_HAS_JOGDIAL                     // Camera has a "jog dial" 
     51 
     52    #undef  CAM_CONSOLE_LOG_ENABLED             // Development: internal camera stdout -> A/stdout.txt 
     53    #define CAM_CHDK_HAS_EXT_VIDEO_MENU     1   // In CHDK for this camera realized adjustable video compression 
     54    #undef  CAM_CAN_MUTE_MICROPHONE             // Camera has function to mute microphone 
     55 
     56    #define CAM_EMUL_KEYPRESS_DELAY         40  // Delay to interpret <alt>-button press as longpress 
     57    #define CAM_EMUL_KEYPRESS_DURATION      5   // Length of keypress emulation 
     58 
     59    #define CAM_MENU_BORDERWIDTH            30  // Defines the width of the border on each side of the CHDK menu. The CHDK menu will have this 
    5860                                                // many pixels left blank to the on each side. Should not be less than 10 to allow room for the 
    5961                                                // scroll bar on the right. 
    60  
    61 #undef  CAM_DETECT_SCREEN_ERASE                 // Define this to add 'guard' pixel to the screen bitmap to help detect if the firmware has erase the screen 
     62    #define CAM_DETECT_SCREEN_ERASE         1   // Define this to add 'guard' pixel to the screen bitmap to help detect if the firmware has erase the screen 
    6263                                                // If the guard pixel changes the CHDK ALT menu is forced to redraw. 
    6364                                                // Take care not to place CHDK OSD elements over the guard pixel. 
    6465                                                // The guard pixel is the first pixel of the top row in the screen bitmap. 
    6566 
    66 #undef  CAM_TOUCHSCREEN_UI                      // Define to enable touch screen U/I (e.g. IXUS 310 HS) 
    67 #define CAM_TS_BUTTON_BORDER        0           // Define this to leave a border on each side of the OSD display for touch screen buttons. 
     67    #undef  CAM_TOUCHSCREEN_UI                  // Define to enable touch screen U/I (e.g. IXUS 310 HS) 
     68    #define CAM_TS_BUTTON_BORDER            0   // Define this to leave a border on each side of the OSD display for touch screen buttons. 
    6869                                                // Used on the IXUS 310 to stop the OSD from overlapping the on screen buttons on each side 
    69 #define CAM_DISP_ALT_TEXT           1           // Display the '<ALT>' message at the bottom of the screen in ALT mode (IXUS 310 changes button color instead) 
    70  
    71 #undef  CAM_AF_SCAN_DURING_VIDEO_RECORD         // CHDK can make single AF scan during video record 
    72 #undef  CAM_HAS_VIDEO_BUTTON                    // Camera can take stills in video mode, and vice versa 
    73 #undef  CAM_EV_IN_VIDEO                         // CHDK can change exposure in video mode 
    74 #define CAM_VIDEO_CONTROL           1           // pause / unpause video recordings 
    75 #undef  CAM_VIDEO_QUALITY_ONLY                  // Override Video Bitrate is not supported 
    76  
    77 #define ZOOM_OVERRIDE               0           // Shall zoom-override be used? default 0 becoz not implemented right now 
    78  
    79 #undef  CAM_REAR_CURTAIN                        // Camera do not have front/rear curtain flash sync in menu 
    80 #undef  CAM_BRACKETING                          // Cameras that have bracketing (focus & ev) in original firmware already, most likely s- & g-series (propcase for digic III not found yet!) 
    81 #undef  CAM_EXT_TV_RANGE                        // CHDK can make exposure time longer than 64s 
    82 #define CAM_CHDK_PTP                1           // include CHDK PTP support 
    83  
    84 #define CAM_UNCACHED_BIT            0x10000000  // bit indicating the uncached memory 
    85  
    86 #define CAM_MAKE                    "Canon" 
    87 #define CAM_SENSOR_BITS_PER_PIXEL   10          // Bits per pixel. 10 is standard, 12 is supported except for curves 
    88 #define CAM_WHITE_LEVEL             ((1<<CAM_SENSOR_BITS_PER_PIXEL)-1)      // 10bpp = 1023 ((1<<10)-1), 12bpp = 4095 ((1<<12)-1) 
    89 #define CAM_BLACK_LEVEL             ((1<<(CAM_SENSOR_BITS_PER_PIXEL-5))-1)  // 10bpp = 31 ((1<<5)-1),    12bpp = 127 ((1<<7)-1) 
    90  
    91 #define CAM_BITMAP_PALETTE          1           // which color set is used for this camera 
    92  
    93 // Older cameras had a screen/bitmap buffer that was 360 pixels wide (or 480 for wide screen models) 
    94 // CHDK was built around this 360 pixel wide display model 
    95 // Newer cameras have a 720 pixel wide bitmap (960 for wide screen cameras) 
    96 // To accomadate this the CHDK co-ordinate system assumes a 360/480 wide buffer and the 
    97 // pixel drawing routines draw every pixel twice to scale the image up to the actual buffer size 
    98 // Define CAM_USES_ASPECT_CORRECTION with a value of 1 to enable this scaled display 
    99 #define CAM_USES_ASPECT_CORRECTION  0 
    100 #define CAM_SCREEN_WIDTH            360         // Width of bitmap screen in CHDK co-ordinates (360 or 480) 
    101 #define CAM_SCREEN_HEIGHT           240         // Height of bitmap screen in CHDK co-ordinates (always 240 on all cameras so far) 
    102 #define CAM_BITMAP_WIDTH            360         // Actual width of bitmap screen in bytes (may be larger than displayed area) 
    103 #define CAM_BITMAP_HEIGHT           240         // Actual height of bitmap screen in rows (240 or 270) 
    104  
    105 #define EDGE_HMARGIN                0           // define sup and inf screen margins on edge overlay without overlay.  Necessary to save memory buffer space. sx200is needs values other than 0 
    106 // end of section by nandoid 
    107  
    108 #undef CAM_QUALITY_OVERRIDE                     // define this in platform_camera.h to enable 'Super Fine' JPEG compression mode 
     70    #define CAM_DISP_ALT_TEXT               1   // Display the '<ALT>' message at the bottom of the screen in ALT mode (IXUS 310 changes button color instead) 
     71 
     72    #undef  CAM_AF_SCAN_DURING_VIDEO_RECORD     // CHDK can make single AF scan during video record 
     73    #undef  CAM_HAS_VIDEO_BUTTON                // Camera can take stills in video mode, and vice versa 
     74    #undef  CAM_EV_IN_VIDEO                     // CHDK can change exposure in video mode 
     75    #define CAM_VIDEO_CONTROL               1   // pause / unpause video recordings 
     76    #undef  CAM_VIDEO_QUALITY_ONLY              // Override Video Bitrate is not supported 
     77    #undef  CAM_CHDK_HAS_EXT_VIDEO_TIME         // Camera can override time limit of video record -> sx220/230 
     78 
     79    #define ZOOM_OVERRIDE                   0   // Shall zoom-override be used? default 0 becoz not implemented right now 
     80 
     81    #undef  CAM_REAR_CURTAIN                    // Camera do not have front/rear curtain flash sync in menu 
     82    #undef  CAM_BRACKETING                      // Cameras that have bracketing (focus & ev) in original firmware already, most likely s- & g-series (propcase for digic III not found yet!) 
     83    #undef  CAM_EXT_TV_RANGE                    // CHDK can make exposure time longer than 64s 
     84    #define CAM_CHDK_PTP                    1   // include CHDK PTP support 
     85 
     86    #define CAM_UNCACHED_BIT                0x10000000 // bit indicating the uncached memory 
     87 
     88    #define CAM_MAKE                        "Canon" 
     89    #define CAM_SENSOR_BITS_PER_PIXEL       10  // Bits per pixel. 10 is standard, 12 is supported except for curves 
     90    #define CAM_WHITE_LEVEL                 ((1<<CAM_SENSOR_BITS_PER_PIXEL)-1)      // 10bpp = 1023 ((1<<10)-1), 12bpp = 4095 ((1<<12)-1) 
     91    #define CAM_BLACK_LEVEL                 ((1<<(CAM_SENSOR_BITS_PER_PIXEL-5))-1)  // 10bpp = 31 ((1<<5)-1),    12bpp = 127 ((1<<7)-1) 
     92 
     93    #define CAM_BITMAP_PALETTE              1   // which color set is used for this camera 
     94 
     95    #undef  CAM_HAS_VARIABLE_ASPECT             // can switch between 16:9 and 4:3 
     96 
     97    // Older cameras had a screen/bitmap buffer that was 360 pixels wide (or 480 for wide screen models) 
     98    // CHDK was built around this 360 pixel wide display model 
     99    // Newer cameras have a 720 pixel wide bitmap (960 for wide screen cameras) 
     100    // To accomadate this the CHDK co-ordinate system assumes a 360/480 wide buffer and the 
     101    // pixel drawing routines draw every pixel twice to scale the image up to the actual buffer size 
     102    // Define CAM_USES_ASPECT_CORRECTION with a value of 1 to enable this scaled display 
     103    #define CAM_USES_ASPECT_CORRECTION      0 
     104    #define CAM_SCREEN_WIDTH                360 // Width of bitmap screen in CHDK co-ordinates (360 or 480) 
     105    #define CAM_SCREEN_HEIGHT               240 // Height of bitmap screen in CHDK co-ordinates (always 240 on all cameras so far) 
     106    #define CAM_BITMAP_WIDTH                360 // Actual width of bitmap screen in bytes (may be larger than displayed area) 
     107    #define CAM_BITMAP_HEIGHT               240 // Actual height of bitmap screen in rows (240 or 270) 
     108 
     109    #define EDGE_HMARGIN                    0   // define sup and inf screen margins on edge overlay without overlay.  Necessary to save memory buffer space. sx200is needs values other than 0 
     110 
     111    #undef CAM_QUALITY_OVERRIDE                 // define this in platform_camera.h to enable 'Super Fine' JPEG compression mode 
    109112                                                // used to allow super fine JPEG option on cameras where this has been removed 
    110113                                                // from the Canon menu. Note: may not actually work on all cameras. 
    111114 
    112 #undef CAM_ZEBRA_ASPECT_ADJUST                  // zebra needs to account for real bitmap size being different from what lib.c reports 
     115    #undef  CAM_ZEBRA_ASPECT_ADJUST             // zebra needs to account for real bitmap size being different from what lib.c reports 
    113116                                                // also used by some cameras with normal bitmap layouts for memory saving ? 
    114 #undef CAM_ZEBRA_NOBUF                          // zebra draws directly on bitmap buffer. 
    115 #undef CAM_HAS_VARIABLE_ASPECT                  // can switch between 16:9 and 4:3 (only used by zebra code) 
    116  
    117 #undef CAM_DATE_FOLDER_NAMING                   // set if camera uses date based folder naming (Option "Create Folder" in Canon Menu) and get_target_dir_name is implemented 
    118  
    119 #undef CAM_KEY_CLICK_DELAY                      // additional delay between press and release for scripted click 
    120 #define CAM_KEY_PRESS_DELAY         20          // delay after a press - TODO can we combine this with above ? 
    121 #define CAM_KEY_RELEASE_DELAY       20          // delay after a release - TODO do we really need to wait after release ? 
    122  
    123 #undef  CAM_STARTUP_CRASH_FILE_OPEN_FIX         // enable fix for camera intermittently crash at startup when opening the conf / font files 
     117    #undef  CAM_ZEBRA_NOBUF                     // zebra draws directly on bitmap buffer. Requires above as well 
     118     
     119    #undef  CAM_DATE_FOLDER_NAMING              // set if camera uses date based folder naming (Option "Create Folder" in Canon Menu) and get_target_dir_name is implemented 
     120     
     121    #undef  CAM_KEY_CLICK_DELAY                 // additional delay between press and release for scripted click 
     122    #define CAM_KEY_PRESS_DELAY             20  // delay after a press - TODO can we combine this with above ? 
     123    #define CAM_KEY_RELEASE_DELAY           20  // delay after a release - TODO do we really need to wait after release ? 
     124 
     125    #undef  CAM_STARTUP_CRASH_FILE_OPEN_FIX     // enable fix for camera intermittently crash at startup when opening the conf / font files 
    124126                                                // Some cameras throw "ASSERT!! FsIoNotify.c Line xxx    Task name: SpyTask" in ROMLOG 
    125                                                 // see http://chdk.setepontos.com/index.php?topic=6179.0 
    126  
    127 // RAW & DNG related values 
    128 #define DNG_SUPPORT                 1           // Camera supports DNG format for saving of RAW images 
    129 #define DEFAULT_RAW_EXT             1           // extension to use for raw (see raw_exts in conf.c) 
    130 #undef  CAM_RAW_ROWPIX                          // Number of pixels in RAW row (physical size of the sensor Note : as of July 2011, this value can be found in stub_entry.S for dryos cameras) 
    131 #undef  CAM_RAW_ROWS                            // Number of rows in RAW (physical size of the sensor       Note : as of July 2011, this value can be found in stub_entry.S for dryos cameras) 
    132 #undef  CAM_JPEG_WIDTH                          // Default crop size (width) stored in DNG (to match camera JPEG size. From dimensions of the largest size jpeg your camera produces) 
    133 #undef  CAM_JPEG_HEIGHT                         // Default crop size (height) stored in DNG (to match camera JPEG size. From dimensions of the largest size jpeg your camera produces) 
    134 #undef  CAM_ACTIVE_AREA_X1                      // Define usable area of the sensor - needs to be divisible by 4 - calibrate using a CHDK RAW image converted with rawconvert.exe (eg :rawconvert -12to8 -pgm -w=4480 -h=3348 photo.crw photo.pgm) 
    135 #undef  CAM_ACTIVE_AREA_Y1                      // Define usable area of the sensor - needs to be divisible by 2 - " 
    136 #undef  CAM_ACTIVE_AREA_X2                      // Define usable area of the sensor - needs to be divisible by 4 - " 
    137 #undef  CAM_ACTIVE_AREA_Y2                      // Define usable area of the sensor - needs to be divisible by 2 = " 
    138 #undef  cam_CFAPattern                          // Camera Bayer sensor data layout (DNG colors are messed up if not correct - should be either 0x01000201 = [Green Blue Red Green]  or 0x02010100 = [Red  Green  Green  Blue] 
    139 #undef  CAM_COLORMATRIX1                        // DNG color profile matrix 
    140 #undef  cam_CalibrationIlluminant1              // DNG color profile illuminant - set it to 17 for standard light A 
    141 #undef  CAM_DNG_EXPOSURE_BIAS                   // Specify DNG exposure bias value (to override default of -0.5 in the dng.c code) 
    142 #undef  DNG_EXT_FROM                            // Extension in the cameras known extensions to replace with .DNG to allow DNG 
     127     
     128    // RAW & DNG related values 
     129    #define DNG_SUPPORT                     1   // Camera supports DNG format for saving of RAW images 
     130    #define DEFAULT_RAW_EXT                 1   // extension to use for raw (see raw_exts in conf.c) 
     131    #undef  CAM_RAW_ROWPIX                      // Number of pixels in RAW row (physical size of the sensor Note : as of July 2011, this value can be found in stub_entry.S for dryos cameras) 
     132    #undef  CAM_RAW_ROWS                        // Number of rows in RAW (physical size of the sensor       Note : as of July 2011, this value can be found in stub_entry.S for dryos cameras) 
     133    #undef  CAM_JPEG_WIDTH                      // Default crop size (width) stored in DNG (to match camera JPEG size. From dimensions of the largest size jpeg your camera produces) 
     134    #undef  CAM_JPEG_HEIGHT                     // Default crop size (height) stored in DNG (to match camera JPEG size. From dimensions of the largest size jpeg your camera produces) 
     135    #undef  CAM_ACTIVE_AREA_X1                  // Define usable area of the sensor - needs to be divisible by 4 - calibrate using a CHDK RAW image converted with rawconvert.exe (eg :rawconvert -12to8 -pgm -w=4480 -h=3348 photo.crw photo.pgm) 
     136    #undef  CAM_ACTIVE_AREA_Y1                  // Define usable area of the sensor - needs to be divisible by 2 - " 
     137    #undef  CAM_ACTIVE_AREA_X2                  // Define usable area of the sensor - needs to be divisible by 4 - " 
     138    #undef  CAM_ACTIVE_AREA_Y2                  // Define usable area of the sensor - needs to be divisible by 2 = " 
     139    #undef  cam_CFAPattern                      // Camera Bayer sensor data layout (DNG colors are messed up if not correct - should be either 0x01000201 = [Green Blue Red Green]  or 0x02010100 = [Red  Green  Green  Blue] 
     140    #undef  CAM_COLORMATRIX1                    // DNG color profile matrix 
     141    #undef  cam_CalibrationIlluminant1          // DNG color profile illuminant - set it to 17 for standard light A 
     142    #undef  CAM_DNG_EXPOSURE_BIAS               // Specify DNG exposure bias value (to override default of -0.5 in the dng.c code) 
     143    #undef  DNG_EXT_FROM                        // Extension in the cameras known extensions to replace with .DNG to allow DNG 
    143144                                                // files to be transfered over standard PTP. Only applicable to older cameras 
    144145 
    145 #undef  CAM_DNG_LENS_INFO                       // Define this to include camera lens information in DNG files 
     146    #undef  CAM_DNG_LENS_INFO                   // Define this to include camera lens information in DNG files 
    146147                                                // Value should be an array of 4 DNG 'RATIONAL' values specifying 
    147148                                                //   - min focal length in mm 
     
    153154                                                // Each pair of integers is one 'RATIONAL' value (numerator,denominator) 
    154155 
    155 #undef  PARAM_CAMERA_NAME                        // parameter number for GetParameterData to get camera name 
    156 #undef  PARAM_DISPLAY_MODE1                      // param number for LCD display mode when camera in playback 
    157 #undef  PARAM_DISPLAY_MODE2                      // param number for LCD display mode when camera in record view hold mode 
    158 #undef  CAM_FIRMWARE_MEMINFO                     // Use 'GetMemInfo' (dryos) or 'memPartInfoGet'/'memPartFindMax' (vxworks) 
    159                                                  // function in firmware to get free memory details 
    160                                                  // GetMemInfo should be found correctly by the gensig/finsig signature 
    161                                                  // finder for all dryos based cameras. 
    162  
    163 #undef CAM_NO_MEMPARTINFO                        // VXWORKS camera does not have memPartInfoGet, fall back to memPartFindMax 
    164  
    165  
    166 #undef CAM_DRIVE_MODE_FROM_TIMER_MODE            // use PROPCASE_TIMER_MODE to check for multiple shot custom timer. 
    167                                                  // Used to enabled bracketing in custom timer, required on many recent cameras 
    168                                                  // see http://chdk.setepontos.com/index.php/topic,3994.405.html 
    169  
    170 #undef CAM_AV_OVERRIDE_IRIS_FIX                  // for cameras that require _MoveIrisWithAv function to override Av (for bracketing). 
    171  
    172 #undef CAM_DISABLE_RAW_IN_LOW_LIGHT_MODE         // For cameras with 'low light' mode that does not work with raw define this 
    173 #undef CAM_DISABLE_RAW_IN_HQ_BURST               // For cameras with 'HQ Burst' mode that does not work with raw define this 
    174 #undef CAM_DISABLE_RAW_IN_HANDHELD_NIGHT_SCN     // For cameras with 'HandHeld Night Scene' mode that does not work with raw define this 
    175  
    176 #undef CAM_LOAD_CUSTOM_COLORS                   // Define to enable loading CHDK custom colors into the camera color palette 
     156    #undef  PARAM_CAMERA_NAME                   // parameter number for GetParameterData to get camera name 
     157    #undef  PARAM_DISPLAY_MODE1                 // param number for LCD display mode when camera in playback 
     158    #undef  PARAM_DISPLAY_MODE2                 // param number for LCD display mode when camera in record view hold mode 
     159    #undef  CAM_FIRMWARE_MEMINFO                // Use 'GetMemInfo' (dryos) or 'memPartInfoGet'/'memPartFindMax' (vxworks) 
     160                                                // function in firmware to get free memory details 
     161                                                // GetMemInfo should be found correctly by the gensig/finsig signature 
     162                                                // finder for all dryos based cameras. 
     163 
     164    #undef  CAM_NO_MEMPARTINFO                  // VXWORKS camera does not have memPartInfoGet, fall back to memPartFindMax 
     165 
     166    #undef  CAM_DRIVE_MODE_FROM_TIMER_MODE      // use PROPCASE_TIMER_MODE to check for multiple shot custom timer. 
     167                                                // Used to enabled bracketing in custom timer, required on many recent cameras 
     168                                                // see http://chdk.setepontos.com/index.php/topic,3994.405.html 
     169 
     170    #undef CAM_AV_OVERRIDE_IRIS_FIX             // for cameras that require _MoveIrisWithAv function to override Av (for bracketing). 
     171 
     172    #undef CAM_DISABLE_RAW_IN_LOW_LIGHT_MODE    // For cameras with 'low light' mode that does not work with raw define this 
     173    #undef CAM_DISABLE_RAW_IN_HQ_BURST          // For cameras with 'HQ Burst' mode that does not work with raw define this 
     174    #undef CAM_DISABLE_RAW_IN_HANDHELD_NIGHT_SCN // For cameras with 'HandHeld Night Scene' mode that does not work with raw define this 
     175     
     176    #undef  CAM_HAS_GPS                         // for cameras with GPS reseiver: includes the GPS coordinates in in DNG file 
     177 
     178    #undef  CHDK_COLOR_BASE                     // Start color index for CHDK colors loaded into camera palette. 
     179 
     180    #undef  CAM_LOAD_CUSTOM_COLORS              // Define to enable loading CHDK custom colors into the camera color palette 
    177181                                                // requires load_chdk_palette() and vid_get_bitmap_active_palette() to be defined 
    178182                                                // correctly for the camera along with 
    179 #undef CAM_USE_COLORED_ICONS                    // If the color palette contains enough shades of red, green, yellow and grey 
     183    #undef  CAM_USE_COLORED_ICONS               // If the color palette contains enough shades of red, green, yellow and grey 
    180184                                                // defined then enable this use the better icons (from CHDK-DE). See gui_batt.c 
    181185                                                // and gui_space.c. 
    182186 
    183 #define CAM_USB_EVENTID         0x902           // Levent ID for USB control. Changed to 0x202 in DryOS R49 so needs to be overridable. 
    184  
    185 #undef CAM_NEED_SET_ZOOM_DELAY                  // Define to add a delay after setting the zoom position before resetting the focus position in shooting_set_zoom 
    186  
    187 #define CAMERA_MIN_DIST         0               // Define min distance that can be set in _MoveFocusLensToDistance (allow override - e.g. G12 min dist = 1) 
    188 #define CAMERA_MAX_DIST         65535           // Define max distance that can be set in _MoveFocusLensToDistance (allow override for superzooms - SX30/SX40) 
     187    #define CAM_USB_EVENTID         0x902       // Levent ID for USB control. Changed to 0x202 in DryOS R49 so needs to be overridable. 
     188 
     189    #undef  CAM_NEED_SET_ZOOM_DELAY             // Define to add a delay after setting the zoom position before resetting the focus position in shooting_set_zoom  
     190 
     191    #undef  USE_REAL_AUTOISO                    // Define this to use real-iso instead of marketing-iso as values of autoiso mechanizm 
     192    #undef  OVEREXP_COMPENSATE_OVERALL          // Define this to make overexposure_compensation work for all scenes, instead of day-light only 
     193 
     194    #define CAMERA_MIN_DIST         0           // Define min distance that can be set in _MoveFocusLensToDistance (allow override - e.g. G12 min dist = 1) 
     195    #define CAMERA_MAX_DIST         65535       // Define max distance that can be set in _MoveFocusLensToDistance (allow override for superzooms - SX30/SX40) 
    189196 
    190197//---------------------------------------------------------- 
    191 // Override Default values for Camera if necessary 
     198// Overridden values for each camera 
    192199//---------------------------------------------------------- 
    193200 
     
    202209// the CHDK horizontal (X) co-ordinates 
    203210#if CAM_USES_ASPECT_CORRECTION 
    204 #define ASPECT_XCORRECTION(x)   ((x)<<1)    // See comments for CAM_USES_ASPECT_CORRECTION above 
     211    #define ASPECT_XCORRECTION(x)   ((x)<<1)    // See comments for CAM_USES_ASPECT_CORRECTION above 
    205212#else 
    206 #define ASPECT_XCORRECTION(x)   (x)         // See comments for CAM_USES_ASPECT_CORRECTION above 
     213    #define ASPECT_XCORRECTION(x)   (x)         // See comments for CAM_USES_ASPECT_CORRECTION above 
    207214#endif 
    208215 
    209216// curves only work in 10bpp for now 
    210217#if CAM_SENSOR_BITS_PER_PIXEL != 10 
    211 #undef OPT_CURVES 
     218    #undef OPT_CURVES 
    212219#endif 
    213220 
    214221#ifndef OPT_PTP 
    215 #undef CAM_CHDK_PTP 
     222    #undef CAM_CHDK_PTP 
    216223#endif 
    217224 
  • trunk/include/conf.h

    r1621 r1663  
    55#include "script.h" 
    66 
    7 #define USER_MENU_ITEMS 14 
     7#define USER_MENU_ITEMS     14 
    88#define CONF_STR_LEN        100 
    99 
     
    5454    int raw_prefix; 
    5555    int raw_ext; 
    56     int raw_save_first_only;    //for series shooting 
     56    int raw_save_first_only; //for series shooting 
    5757    int raw_nr; 
    58     int sub_batch_prefix;    // output of batch subtracts 
     58    int sub_batch_prefix; // output of batch subtracts 
    5959    int sub_batch_ext; 
    6060    int sub_in_dark_value;    // values <= to this are not subtracted, i.e. the dark value of your darkframe 
     
    143143 
    144144    color histo_color; 
    145     color histo_color2;    // markers/border 
     145    color histo_color2; // markers/border 
    146146    color osd_color; 
    147147    color osd_color_warn; 
     
    187187 
    188188    int use_zoom_mf; 
    189     long alt_mode_button;    // for S-series 
     189    long alt_mode_button; //for S-series 
    190190    int alt_prevent_shutdown; 
    191191 
     
    197197    int video_quality; 
    198198    int video_bitrate; 
    199  
     199       
    200200    int tv_bracket_value; 
    201201    int av_bracket_value; 
     
    215215    int tv_enum_type; 
    216216    int av_override_value; 
    217  
     217     
    218218    int nd_filter_state; 
    219  
     219     
    220220    int iso_override_value; 
    221221    int iso_override_koef; 
     
    263263    int values_show_luminance; 
    264264 
    265     int debug_shortcut_action;  // 0=none, 1=dump, 2=page display 
    266     int debug_display;          // 0=none, 1=props, 2=flash param, 3=tasks 
     265    int debug_shortcut_action;   // 0=none, 1=dump, 2=page display 
     266    int debug_display;           // 0=none, 1=props, 2=flash param, 3=tasks 
    267267    int debug_propcase_page;     // save propcase page 
    268     int debug_lua_restart_on_error;    // 0=no, 1=yes 
     268    int debug_lua_restart_on_error; // 0=no, 1=yes 
    269269    int debug_misc_vals_show;    // 0=no, 1=yes 
    270270 
    271     int script_startup;    // remote autostart 
    272     int remote_enable;    // remote enable 
     271    int script_startup;          // remote autostart 
     272    int remote_enable;           // remote enable 
    273273    int user_menu_enable; 
    274274    int user_menu_vars[USER_MENU_ITEMS]; 
     
    335335#define SHOOTING_PROGRESS_DONE          3 
    336336 
     337 
    337338// video quality defaults. Ideally, these should match the camera default settings 
    338 #define VIDEO_DEFAULT_QUALITY   84    // ? where does 84 come from 
     339#define VIDEO_DEFAULT_QUALITY   84  // ? where does 84 come from 
    339340#define VIDEO_MAX_QUALITY       99 
    340 #define VIDEO_DEFAULT_BITRATE   3    // should be 1 for all cams 
     341#define VIDEO_DEFAULT_BITRATE   3   // should be 1 for all cams 
     342 
     343extern void user_menu_restore(); 
    341344 
    342345extern int state_kbd_script_run; 
     
    344347extern int state_save_raw_nth_only; 
    345348 
    346 extern void script_autostart();    // remote autostart 
     349extern void script_autostart();     // remote autostart 
    347350extern void conf_save(); 
    348351extern void conf_restore(); 
     
    356359// reyalp: putting these in conf, since the conf values are lookups for them 
    357360// prefixes and extentions available for raw images (index with conf.raw_prefix etc) 
    358 #define NUM_IMG_PREFIXES 3    // IMG_ CRW_ SND_ (could add ETC_ SDR_ AUT_ MVI_ MRK_) 
    359 #define NUM_IMG_EXTS 5    // .JPG .CRW .CR2 .THM .WAV (could add .AVI .MRK) 
     361#define NUM_IMG_PREFIXES 3  // IMG_ CRW_ SND_ (could add ETC_ SDR_ AUT_ MVI_ MRK_) 
     362#define NUM_IMG_EXTS 5      // .JPG .CRW .CR2 .THM .WAV (could add .AVI .MRK) 
    360363extern const char* img_prefixes[NUM_IMG_PREFIXES]; 
    361364extern const char* img_exts[NUM_IMG_EXTS]; 
  • trunk/include/gui.h

    r1621 r1663  
    22#define GUI_H 
    33 
    4 typedef unsigned int      coord; 
    5 typedef unsigned short    color; 
     4typedef unsigned int    coord; 
     5typedef unsigned short  color; 
    66 
    7 #define MAKE_COLOR(bg, fg)    ((color)((((char)(bg))<<8)|((char)(fg)))) 
     7#define MAKE_COLOR(bg, fg)  ((color)((((char)(bg))<<8)|((char)(fg)))) 
    88#define FG_COLOR(color)     ((unsigned char)(color & 0xFF)) 
    99#define BG_COLOR(color)     ((unsigned char)(color >> 8)) 
  • trunk/include/keyboard.h

    r1344 r1663  
    22#define KEYBOARD_H 
    33 
    4 #define KEY_UP            1 
    5 #define KEY_DOWN          2 
    6 #define KEY_LEFT          3 
    7 #define KEY_RIGHT         4 
    8 #define KEY_SET           5 
    9 #define KEY_SHOOT_HALF    6 
    10 #define KEY_SHOOT_FULL    7     // includes KEY_SHOOT_HALF press/release. See also KEY_SHOOT_FULL_ONLY. 
    11 #define KEY_ZOOM_IN       8 
    12 #define KEY_ZOOM_OUT      9 
    13 #define KEY_MENU          10 
    14 #define KEY_DISPLAY       11 
    15 #define KEY_PRINT         12    // S-series: Shortcut 
    16 #define KEY_ERASE         13    // S-series: Func 
    17 #define KEY_ISO           14    // S-series 
    18 #define KEY_FLASH         15    // S-series 
    19 #define KEY_MF            16    // S-series 
    20 #define KEY_MACRO         17    // S-series 
    21 #define KEY_VIDEO         18    // S-series 
    22 #define KEY_TIMER         19    // S-series 
    23 #define KEY_EXPO_CORR     20    // G-series 
    24 #define KEY_MICROPHONE    21 
    25 #define KEY_FACE          22    // SX100IS 
    26 #define KEY_DUMMY         23    // dummy key for pressing to disable energy saving in alt mode 
     4#define KEY_UP          1 
     5#define KEY_DOWN        2 
     6#define KEY_LEFT        3 
     7#define KEY_RIGHT       4 
     8#define KEY_SET         5 
     9#define KEY_SHOOT_HALF  6 
     10#define KEY_SHOOT_FULL       // includes KEY_SHOOT_HALF press/release. See also KEY_SHOOT_FULL_ONLY. 
     11#define KEY_ZOOM_IN     8 
     12#define KEY_ZOOM_OUT    9 
     13#define KEY_MENU        10 
     14#define KEY_DISPLAY     11 
     15#define KEY_PRINT       12      //S-series: Shortcut 
     16#define KEY_ERASE       13      //S-series: Func 
     17#define KEY_ISO         14      //S-series 
     18#define KEY_FLASH       15      //S-series 
     19#define KEY_MF          16      //S-series 
     20#define KEY_MACRO       17      //S-series 
     21#define KEY_VIDEO       18      //S-series 
     22#define KEY_TIMER       19      //S-series 
     23#define KEY_EXPO_CORR   20      //G-series 
     24#define KEY_MICROPHONE  21 
     25#define KEY_FACE        22      //SX100IS 
     26#define KEY_DUMMY       23      //dummy key for pressing to disable energy saving in alt mode 
    2727 
    2828// SX30 
    29 #define KEY_ZOOM_IN1      24    // SX30 has three zoom speeds each way 
    30 #define KEY_ZOOM_IN2      25 
    31 #define KEY_ZOOM_IN3      26 
    32 #define KEY_ZOOM_OUT1     27 
    33 #define KEY_ZOOM_OUT2     28 
    34 #define KEY_ZOOM_OUT3     29 
    35 #define KEY_ZOOM_ASSIST   30    // SX30 new button 
     29#define KEY_ZOOM_IN1    24      // SX30 has three zoom speeds each way 
     30#define KEY_ZOOM_IN2    25 
     31#define KEY_ZOOM_IN3    26 
     32#define KEY_ZOOM_OUT1   27 
     33#define KEY_ZOOM_OUT2   28 
     34#define KEY_ZOOM_OUT3   29 
     35#define KEY_ZOOM_ASSIST 30      // SX30 new button 
    3636 
    3737// G12 
    38 #define KEY_AE_LOCK               31    // G12 AE/FE Lock button 
    39 #define KEY_METERING      32    // G12 metering mode button 
     38#define KEY_AE_LOCK             31      // G12 AE/FE Lock button 
     39#define KEY_METERING    32      // G12 metering mode button 
    4040 
    41 //SX220 
    42 #define KEY_PLAYBACK      33 
    43 #define KEY_LEFT_SOFT     34    // jogdial keys have two steps 
    44 #define KEY_RIGHT_SOFT    35 
    45 #define KEY_UP_SOFT               36 
    46 #define KEY_DOWN_SOFT     37 
     41//SX220  
     42#define KEY_PLAYBACK    33  
     43#define KEY_LEFT_SOFT   34    // jogdial keys have two steps  
     44#define KEY_RIGHT_SOFT  35  
     45#define KEY_UP_SOFT     36  
     46#define KEY_DOWN_SOFT   37   
    4747 
    4848#define KEY_SHOOT_FULL_ONLY 38  // As KEY_SHOOT_FULL but press/release KEY_SHOOT_HALF is not included 
    4949 
    50 #define JOGDIAL_LEFT      100 
    51 #define JOGDIAL_RIGHT     101 
     50#define JOGDIAL_LEFT    100 
     51#define JOGDIAL_RIGHT   101 
    5252#define FRONTDIAL_LEFT    102 
    5353#define FRONTDIAL_RIGHT   103 
  • trunk/include/lauxlib.h

    r515 r1663  
    2828#endif 
    2929 
    30  
    3130/* extra error code for `luaL_load' */ 
    3231#define LUA_ERRFILE     (LUA_ERRERR+1) 
    33  
    3432 
    3533typedef struct luaL_Reg { 
     
    3735  lua_CFunction func; 
    3836} luaL_Reg; 
    39  
    40  
    4137 
    4238LUALIB_API void (luaI_openlib) (lua_State *L, const char *libname, 
     
    8985                                         const char *fname, int szhint); 
    9086 
    91  
    92  
    93  
    9487/* 
    9588** =============================================================== 
     
    9891*/ 
    9992 
    100 #define luaL_argcheck(L, cond,numarg,extramsg)  \ 
    101                 ((void)((cond) || luaL_argerror(L, (numarg), (extramsg)))) 
    102 #define luaL_checkstring(L,n)   (luaL_checklstring(L, (n), NULL)) 
    103 #define luaL_optstring(L,n,d)   (luaL_optlstring(L, (n), (d), NULL)) 
    104 #define luaL_checkint(L,n)      ((int)luaL_checkinteger(L, (n))) 
    105 #define luaL_optint(L,n,d)      ((int)luaL_optinteger(L, (n), (d))) 
    106 #define luaL_checklong(L,n)     ((long)luaL_checkinteger(L, (n))) 
    107 #define luaL_optlong(L,n,d)     ((long)luaL_optinteger(L, (n), (d))) 
     93#define luaL_argcheck(L, cond,numarg,extramsg)  \ 
     94        ((void)((cond) || luaL_argerror(L, (numarg), (extramsg)))) 
     95#define luaL_checkstring(L,n)   (luaL_checklstring(L, (n), NULL)) 
     96#define luaL_optstring(L,n,d)   (luaL_optlstring(L, (n), (d), NULL)) 
     97#define luaL_checkint(L,n)      ((int)luaL_checkinteger(L, (n))) 
     98#define luaL_optint(L,n,d)      ((int)luaL_optinteger(L, (n), (d))) 
     99#define luaL_checklong(L,n)     ((long)luaL_checkinteger(L, (n))) 
     100#define luaL_optlong(L,n,d)     ((long)luaL_optinteger(L, (n), (d))) 
    108101 
    109 #define luaL_typename(L,i)      lua_typename(L, lua_type(L,(i))) 
     102#define luaL_typename(L,i)  lua_typename(L, lua_type(L,(i))) 
    110103 
    111104#define luaL_dofile(L, fn) \ 
    112         (luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0)) 
     105    (luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0)) 
    113106 
    114107#define luaL_dostring(L, s) \ 
    115         (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0)) 
     108    (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0)) 
    116109 
    117110#define luaL_getmetatable(L,n)  (lua_getfield(L, LUA_REGISTRYINDEX, (n))) 
     
    125118*/ 
    126119 
    127  
    128  
    129120typedef struct luaL_Buffer { 
    130   char *p;                      /* current position in buffer */ 
    131   int lvl;  /* number of strings in the stack (level) */ 
     121  char *p;      /* current position in buffer */ 
     122  int lvl;      /* number of strings in the stack (level) */ 
    132123  lua_State *L; 
    133124  char buffer[LUAL_BUFFERSIZE]; 
     
    139130 
    140131/* compatibility only */ 
    141 #define luaL_putchar(B,c)       luaL_addchar(B,c) 
     132#define luaL_putchar(B,c)   luaL_addchar(B,c) 
    142133 
    143 #define luaL_addsize(B,n)       ((B)->p += (n)) 
     134#define luaL_addsize(B,n)   ((B)->p += (n)) 
    144135 
    145136LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B); 
     
    150141LUALIB_API void (luaL_pushresult) (luaL_Buffer *B); 
    151142 
    152  
    153143/* }====================================================== */ 
    154  
    155144 
    156145/* compatibility with ref system */ 
     
    168157 
    169158 
    170 #define luaL_reg        luaL_Reg 
     159#define luaL_reg    luaL_Reg 
    171160 
    172161#endif 
    173  
    174  
  • trunk/include/levent.h

    r993 r1663  
    44#define LEVENT_INVALID_INDEX 0xFFFFFFFF 
    55 
    6 /* logical event definition */ 
     6/* logical event definition*/ 
    77typedef struct { 
    88    char *name; /* name of event, may point to empty string */ 
     
    1111} levent_def; 
    1212/* 
    13 table of event definitions in ROM, 
    14 address can be found with tools/find_levent 
    15 terminated by an event with a NULL (not empty string) name pointer. 
     13 table of event definitions in ROM, 
     14 address can be found with tools/find_levent 
     15 terminated by an event with a NULL (not empty string) name pointer. 
    1616*/ 
    1717extern levent_def levent_table[]; 
     
    3838void levent_set_record(void); 
    3939void levent_set_play(void); 
    40  
    4140#endif 
  • trunk/include/lolevel.h

    r1658 r1663  
    4545extern void _SleepTask(long msec); 
    4646extern void __attribute__((noreturn)) _ExitTask(); 
    47 extern int _taskNameToId(char* taskName); // VxWorks only, task's name first letter must be 't', maximum 10 chars total 
     47extern int _taskNameToId(char* taskName); // VxWorks only, task's name first letter must be 't', maximum 10 chars total  
    4848extern const char *_taskName(int taskID); // VxWorks only for now 
    4949extern int _taskIdListGet(int *idlist,int max); // VxWorks only for now 
     
    192192extern int _LEDDrive(int led, int action); 
    193193 
     194 
    194195extern long _LockMainPower(); 
    195196extern long _UnlockMainPower(); 
     
    199200The following two functions post an event such as button press, switch change, cable connection change. 
    200201event: 
    201   A number identifying the event. This number may vary between camera models. 
     202  A number identifying the event. This number may vary between camera models.  
    202203  See levent.c and levent.h for methods to identify events by name. 
    203 unk: 
     204unk:  
    204205  Unknown value, usually 0 in canon code. For jogdial messages, this is number of clicks. 
    205206return value: 
     
    209210extern int  _PostLogicalEventToUI(int event, int unk); 
    210211/* 
    211 Used in the canon code to modify the generation or delivery of events. For example, Canon 
     212Used in the canon code to modify the generation or delivery of events. For example, Canon  
    212213mode override code sets 1 on the desired dial position, and zero on all others. 
    213214event: as described above for PostLogicalEvent* 
     
    285286extern void _ScreenLock(); 
    286287extern void _SetCurrentCaptureModeType(); 
    287 extern unsigned _ExecuteEventProcedure(const char *name,...); 
     288extern unsigned _ExecuteEventProcedure(const char *name, ...); 
    288289// known in CHDK as _RefreshPhysicalScreen 
    289290//extern void _ScreenUnLock(); 
  • trunk/include/lua.h

    r515 r1663  
    66*/ 
    77 
    8  
    98#ifndef lua_h 
    109#define lua_h 
     
    1312#include <stddef.h> 
    1413 
    15  
    1614#include "luaconf.h" 
    1715 
    18  
    19 #define LUA_VERSION     "Lua 5.1" 
    20 #define LUA_RELEASE     "Lua 5.1.3" 
    21 #define LUA_VERSION_NUM 501 
    22 #define LUA_COPYRIGHT   "Copyright (C) 1994-2008 Lua.org, PUC-Rio" 
    23 #define LUA_AUTHORS     "R. Ierusalimschy, L. H. de Figueiredo & W. Celes" 
    24  
     16#define LUA_VERSION     "Lua 5.1" 
     17#define LUA_RELEASE     "Lua 5.1.3" 
     18#define LUA_VERSION_NUM 501 
     19#define LUA_COPYRIGHT   "Copyright (C) 1994-2008 Lua.org, PUC-Rio" 
     20#define LUA_AUTHORS     "R. Ierusalimschy, L. H. de Figueiredo & W. Celes" 
    2521 
    2622/* mark for precompiled code (`<esc>Lua') */ 
    27 #define LUA_SIGNATURE   "\033Lua" 
     23#define LUA_SIGNATURE   "\033Lua" 
    2824 
    2925/* option for multiple returns in `lua_pcall' and `lua_call' */ 
    30 #define LUA_MULTRET     (-1) 
    31  
     26#define LUA_MULTRET (-1) 
    3227 
    3328/* 
    3429** pseudo-indices 
    3530*/ 
    36 #define LUA_REGISTRYINDEX       (-10000) 
    37 #define LUA_ENVIRONINDEX        (-10001) 
    38 #define LUA_GLOBALSINDEX        (-10002) 
    39 #define lua_upvalueindex(i)     (LUA_GLOBALSINDEX-(i)) 
    40  
     31#define LUA_REGISTRYINDEX   (-10000) 
     32#define LUA_ENVIRONINDEX    (-10001) 
     33#define LUA_GLOBALSINDEX    (-10002) 
     34#define lua_upvalueindex(i) (LUA_GLOBALSINDEX-(i)) 
    4135 
    4236/* thread status; 0 is OK */ 
    43 #define LUA_YIELD       1 
    44 #define LUA_ERRRUN      2 
    45 #define LUA_ERRSYNTAX   3 
    46 #define LUA_ERRMEM      4 
    47 #define LUA_ERRERR      5 
    48  
     37#define LUA_YIELD       1 
     38#define LUA_ERRRUN      2 
     39#define LUA_ERRSYNTAX   3 
     40#define LUA_ERRMEM      4 
     41#define LUA_ERRERR      5 
    4942 
    5043typedef struct lua_State lua_State; 
     
    5245typedef int (*lua_CFunction) (lua_State *L); 
    5346 
    54  
    5547/* 
    5648** functions that read/write blocks when loading/dumping Lua chunks 
     
    6052typedef int (*lua_Writer) (lua_State *L, const void* p, size_t sz, void* ud); 
    6153 
    62  
    6354/* 
    6455** prototype for memory-allocation functions 
     
    6657typedef void * (*lua_Alloc) (void *ud, void *ptr, size_t osize, size_t nsize); 
    6758 
    68  
    6959/* 
    7060** basic types 
    7161*/ 
    72 #define LUA_TNONE               (-1) 
    73  
    74 #define LUA_TNIL                0 
    75 #define LUA_TBOOLEAN            1 
    76 #define LUA_TLIGHTUSERDATA      2 
    77 #define LUA_TNUMBER             3 
    78 #define LUA_TSTRING             4 
    79 #define LUA_TTABLE              5 
    80 #define LUA_TFUNCTION           6 
    81 #define LUA_TUSERDATA           7 
    82 #define LUA_TTHREAD             8 
    83  
    84  
     62#define LUA_TNONE           (-1) 
     63 
     64#define LUA_TNIL            0 
     65#define LUA_TBOOLEAN        1 
     66#define LUA_TLIGHTUSERDATA  2 
     67#define LUA_TNUMBER         3 
     68#define LUA_TSTRING         4 
     69#define LUA_TTABLE          5 
     70#define LUA_TFUNCTION       6 
     71#define LUA_TUSERDATA       7 
     72#define LUA_TTHREAD         8 
    8573 
    8674/* minimum Lua stack available to a C function */ 
    87 #define LUA_MINSTACK    20 
    88  
     75#define LUA_MINSTACK        20 
    8976 
    9077/* 
     
    9582#endif 
    9683 
    97  
    9884/* type of numbers in Lua */ 
    9985typedef LUA_NUMBER lua_Number; 
    10086 
    101  
    10287/* type for integer functions */ 
    10388typedef LUA_INTEGER lua_Integer; 
    104  
    105  
    10689 
    10790/* 
     
    11396 
    11497LUA_API lua_CFunction (lua_atpanic) (lua_State *L, lua_CFunction panicf); 
    115  
    11698 
    11799/* 
     
    128110LUA_API void  (lua_xmove) (lua_State *from, lua_State *to, int n); 
    129111 
    130  
    131112/* 
    132113** access functions (stack -> C) 
     
    140121LUA_API const char     *(lua_typename) (lua_State *L, int tp); 
    141122 
    142 LUA_API int            (lua_equal) (lua_State *L, int idx1, int idx2); 
    143 LUA_API int            (lua_rawequal) (lua_State *L, int idx1, int idx2); 
    144 LUA_API int            (lua_lessthan) (lua_State *L, int idx1, int idx2); 
     123LUA_API int             (lua_equal) (lua_State *L, int idx1, int idx2); 
     124LUA_API int             (lua_rawequal) (lua_State *L, int idx1, int idx2); 
     125LUA_API int             (lua_lessthan) (lua_State *L, int idx1, int idx2); 
    145126 
    146127LUA_API lua_Number      (lua_tonumber) (lua_State *L, int idx); 
     
    150131LUA_API size_t          (lua_objlen) (lua_State *L, int idx); 
    151132LUA_API lua_CFunction   (lua_tocfunction) (lua_State *L, int idx); 
    152 LUA_API void           *(lua_touserdata) (lua_State *L, int idx); 
     133LUA_API void           *(lua_touserdata) (lua_State *L, int idx); 
    153134LUA_API lua_State      *(lua_tothread) (lua_State *L, int idx); 
    154135LUA_API const void     *(lua_topointer) (lua_State *L, int idx); 
    155  
    156136 
    157137/* 
     
    171151LUA_API int   (lua_pushthread) (lua_State *L); 
    172152 
    173  
    174153/* 
    175154** get functions (Lua -> stack) 
     
    184163LUA_API void  (lua_getfenv) (lua_State *L, int idx); 
    185164 
    186  
    187165/* 
    188166** set functions (stack -> Lua) 
     
    195173LUA_API int   (lua_setfenv) (lua_State *L, int idx); 
    196174 
    197  
    198175/* 
    199176** `load' and `call' functions (load and run Lua code) 
     
    207184LUA_API int (lua_dump) (lua_State *L, lua_Writer writer, void *data); 
    208185 
    209  
    210186/* 
    211187** coroutine functions 
     
    219195*/ 
    220196 
    221 #define LUA_GCSTOP              0 
    222 #define LUA_GCRESTART           1 
    223 #define LUA_GCCOLLECT           2 
    224 #define LUA_GCCOUNT             3 
    225 #define LUA_GCCOUNTB            4 
    226 #define LUA_GCSTEP              5 
    227 #define LUA_GCSETPAUSE          6 
    228 #define LUA_GCSETSTEPMUL        7 
     197#define LUA_GCSTOP          0 
     198#define LUA_GCRESTART       1 
     199#define LUA_GCCOLLECT       2 
     200#define LUA_GCCOUNT         3 
     201#define LUA_GCCOUNTB        4 
     202#define LUA_GCSTEP          5 
     203#define LUA_GCSETPAUSE      6 
     204#define LUA_GCSETSTEPMUL    7 
    229205 
    230206LUA_API int (lua_gc) (lua_State *L, int what, int data); 
    231  
    232207 
    233208/* 
     
    243218LUA_API lua_Alloc (lua_getallocf) (lua_State *L, void **ud); 
    244219LUA_API void lua_setallocf (lua_State *L, lua_Alloc f, void *ud); 
    245  
    246  
    247220 
    248221/*  
     
    252225*/ 
    253226 
    254 #define lua_pop(L,n)            lua_settop(L, -(n)-1) 
    255  
    256 #define lua_newtable(L)         lua_createtable(L, 0, 0) 
    257  
    258 #define lua_register(L,n,f) (lua_pushcfunction(L, (f)), lua_setglobal(L, (n))) 
    259  
    260 #define lua_pushcfunction(L,f)  lua_pushcclosure(L, (f), 0) 
    261  
    262 #define lua_strlen(L,i)         lua_objlen(L, (i)) 
    263  
    264 #define lua_isfunction(L,n)     (lua_type(L, (n)) == LUA_TFUNCTION) 
    265 #define lua_istable(L,n)        (lua_type(L, (n)) == LUA_TTABLE) 
    266 #define lua_islightuserdata(L,n)        (lua_type(L, (n)) == LUA_TLIGHTUSERDATA) 
    267 #define lua_isnil(L,n)          (lua_type(L, (n)) == LUA_TNIL) 
    268 #define lua_isboolean(L,n)      (lua_type(L, (n)) == LUA_TBOOLEAN) 
    269 #define lua_isthread(L,n)       (lua_type(L, (n)) == LUA_TTHREAD) 
    270 #define lua_isnone(L,n)         (lua_type(L, (n)) == LUA_TNONE) 
    271 #define lua_isnoneornil(L, n)   (lua_type(L, (n)) <= 0) 
    272  
    273 #define lua_pushliteral(L, s)   \ 
    274         lua_pushlstring(L, "" s, (sizeof(s)/sizeof(char))-1) 
    275  
    276 #define lua_setglobal(L,s)      lua_setfield(L, LUA_GLOBALSINDEX, (s)) 
    277 #define lua_getglobal(L,s)      lua_getfield(L, LUA_GLOBALSINDEX, (s)) 
    278  
    279 #define lua_tostring(L,i)       lua_tolstring(L, (i), NULL) 
    280  
    281  
     227#define lua_pop(L,n)            lua_settop(L, -(n)-1) 
     228 
     229#define lua_newtable(L)         lua_createtable(L, 0, 0) 
     230 
     231#define lua_register(L,n,f)     (lua_pushcfunction(L, (f)), lua_setglobal(L, (n))) 
     232 
     233#define lua_pushcfunction(L,f)  lua_pushcclosure(L, (f), 0) 
     234 
     235#define lua_strlen(L,i)         lua_objlen(L, (i)) 
     236 
     237#define lua_isfunction(L,n)     (lua_type(L, (n)) == LUA_TFUNCTION) 
     238#define lua_istable(L,n)        (lua_type(L, (n)) == LUA_TTABLE) 
     239#define lua_islightuserdata(L,n)    (lua_type(L, (n)) == LUA_TLIGHTUSERDATA) 
     240#define lua_isnil(L,n)          (lua_type(L, (n)) == LUA_TNIL) 
     241#define lua_isboolean(L,n)      (lua_type(L, (n)) == LUA_TBOOLEAN) 
     242#define lua_isthread(L,n)       (lua_type(L, (n)) == LUA_TTHREAD) 
     243#define lua_isnone(L,n)         (lua_type(L, (n)) == LUA_TNONE) 
     244#define lua_isnoneornil(L, n)   (lua_type(L, (n)) <= 0) 
     245 
     246#define lua_pushliteral(L, s)   \ 
     247    lua_pushlstring(L, "" s, (sizeof(s)/sizeof(char))-1) 
     248 
     249#define lua_setglobal(L,s)      lua_setfield(L, LUA_GLOBALSINDEX, (s)) 
     250#define lua_getglobal(L,s)      lua_getfield(L, LUA_GLOBALSINDEX, (s)) 
     251 
     252#define lua_tostring(L,i)       lua_tolstring(L, (i), NULL) 
    282253 
    283254/* 
     
    285256*/ 
    286257 
    287 #define lua_open()      luaL_newstate() 
    288  
    289 #define lua_getregistry(L)      lua_pushvalue(L, LUA_REGISTRYINDEX) 
    290  
    291 #define lua_getgccount(L)       lua_gc(L, LUA_GCCOUNT, 0) 
    292  
    293 #define lua_Chunkreader         lua_Reader 
    294 #define lua_Chunkwriter         lua_Writer 
    295  
     258#define lua_open()          luaL_newstate() 
     259 
     260#define lua_getregistry(L)  lua_pushvalue(L, LUA_REGISTRYINDEX) 
     261 
     262#define lua_getgccount(L)   lua_gc(L, LUA_GCCOUNT, 0) 
     263 
     264#define lua_Chunkreader     lua_Reader 
     265#define lua_Chunkwriter     lua_Writer 
    296266 
    297267/* hack */ 
    298 LUA_API void lua_setlevel       (lua_State *from, lua_State *to); 
    299  
     268LUA_API void lua_setlevel   (lua_State *from, lua_State *to); 
    300269 
    301270/* 
     
    305274*/ 
    306275 
    307  
    308276/* 
    309277** Event codes 
    310278*/ 
    311 #define LUA_HOOKCALL    0 
    312 #define LUA_HOOKRET     1 
    313 #define LUA_HOOKLINE    2 
    314 #define LUA_HOOKCOUNT   3 
     279#define LUA_HOOKCALL    0 
     280#define LUA_HOOKRET     1 
     281#define LUA_HOOKLINE    2 
     282#define LUA_HOOKCOUNT   3 
    315283#define LUA_HOOKTAILRET 4 
    316284 
    317  
    318285/* 
    319286** Event masks 
    320287*/ 
    321 #define LUA_MASKCALL    (1 << LUA_HOOKCALL) 
    322 #define LUA_MASKRET     (1 << LUA_HOOKRET) 
    323 #define LUA_MASKLINE    (1 << LUA_HOOKLINE) 
    324 #define LUA_MASKCOUNT   (1 << LUA_HOOKCOUNT) 
     288#define LUA_MASKCALL    (1 << LUA_HOOKCALL) 
     289#define LUA_MASKRET     (1 << LUA_HOOKRET) 
     290#define LUA_MASKLINE    (1 << LUA_HOOKLINE) 
     291#define LUA_MASKCOUNT   (1 << LUA_HOOKCOUNT) 
    325292 
    326293typedef struct lua_Debug lua_Debug;  /* activation record */ 
    327  
    328294 
    329295/* Functions to be called by the debuger in specific events */ 
    330296typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar); 
    331  
    332297 
    333298LUA_API int lua_getstack (lua_State *L, int level, lua_Debug *ar); 
     
    343308LUA_API int lua_gethookcount (lua_State *L); 
    344309 
    345  
    346310struct lua_Debug { 
    347   int event; 
    348   const char *name;     /* (n) */ 
    349   const char *namewhat; /* (n) `global', `local', `field', `method' */ 
    350   const char *what;     /* (S) `Lua', `C', `main', `tail' */ 
    351   const char *source;   /* (S) */ 
    352   int currentline;      /* (l) */ 
    353   int nups;             /* (u) number of upvalues */ 
    354   int linedefined;      /* (S) */ 
    355   int lastlinedefined;  /* (S) */ 
    356   char short_src[LUA_IDSIZE]; /* (S) */ 
    357   /* private part */ 
    358   int i_ci;  /* active function */ 
     311    int event; 
     312    const char *name;           /* (n) */ 
     313    const char *namewhat;       /* (n) `global', `local', `field', `method' */ 
     314    const char *what;           /* (S) `Lua', `C', `main', `tail' */ 
     315    const char *source;         /* (S) */ 
     316    int currentline;            /* (l) */ 
     317    int nups;                   /* (u) number of upvalues */ 
     318    int linedefined;            /* (S) */ 
     319    int lastlinedefined;        /* (S) */ 
     320    char short_src[LUA_IDSIZE]; /* (S) */ 
     321    /* private part */ 
     322    int i_ci;                   /* active function */ 
    359323}; 
    360324 
    361325/* }====================================================================== */ 
    362  
    363326 
    364327/****************************************************************************** 
     
    385348******************************************************************************/ 
    386349 
    387  
    388350#endif 
  • trunk/include/luaconf.h

    r515 r1663  
    55*/ 
    66 
    7  
    87#ifndef lconfig_h 
    98#define lconfig_h 
     
    1817*/ 
    1918 
    20  
    2119/* 
    2220@@ LUA_ANSI controls the use of non-ansi features. 
     
    2826#endif 
    2927 
    30  
    3128#if !defined(LUA_ANSI) && defined(_WIN32) 
    3229#define LUA_WIN 
     
    3532#if defined(LUA_USE_LINUX) 
    3633#define LUA_USE_POSIX 
    37 #define LUA_USE_DLOPEN          /* needs an extra library: -ldl */ 
    38 #define LUA_USE_READLINE        /* needs some extra libraries */ 
     34#define LUA_USE_DLOPEN      /* needs an extra library: -ldl */ 
     35#define LUA_USE_READLINE    /* needs some extra libraries */ 
    3936#endif 
    4037 
    4138#if defined(LUA_USE_MACOSX) 
    4239#define LUA_USE_POSIX 
    43 #define LUA_DL_DYLD             /* does not need extra library */ 
    44 #endif 
    45  
    46  
     40#define LUA_DL_DYLD         /* does not need extra library */ 
     41#endif 
    4742 
    4843/* 
     
    5853#endif 
    5954 
    60  
    6155/* 
    6256@@ LUA_PATH and LUA_CPATH are the names of the environment variables that 
     
    6862#define LUA_PATH        "LUA_PATH" 
    6963#define LUA_CPATH       "LUA_CPATH" 
    70 #define LUA_INIT        "LUA_INIT" 
    71  
     64#define LUA_INIT        "LUA_INIT" 
    7265 
    7366/* 
     
    8578** path of the directory of the executable file of the current process. 
    8679*/ 
    87 #define LUA_LDIR        "!\\lua\\" 
    88 #define LUA_CDIR        "!\\" 
     80#define LUA_LDIR    "!\\lua\\" 
     81#define LUA_CDIR    "!\\" 
    8982#define LUA_PATH_DEFAULT  \ 
    90                 ".\\?.lua;"  LUA_LDIR"?.lua;"  LUA_LDIR"?\\init.lua;" \ 
    91                              LUA_CDIR"?.lua;"  LUA_CDIR"?\\init.lua" 
     83        ".\\?.lua;"  LUA_LDIR"?.lua;"  LUA_LDIR"?\\init.lua;" \ 
     84                    LUA_CDIR"?.lua;"  LUA_CDIR"?\\init.lua" 
    9285#define LUA_CPATH_DEFAULT \ 
    93         ".\\?.dll;"  LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll" 
    94  
    95 #else 
    96 #define LUA_ROOT        "/usr/local/" 
    97 #define LUA_LDIR        LUA_ROOT "share/lua/5.1/" 
    98 #define LUA_CDIR        LUA_ROOT "lib/lua/5.1/" 
     86    ".\\?.dll;"  LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll" 
     87 
     88#else 
     89#define LUA_ROOT    "/usr/local/" 
     90#define LUA_LDIR    LUA_ROOT "share/lua/5.1/" 
     91#define LUA_CDIR    LUA_ROOT "lib/lua/5.1/" 
    9992#define LUA_PATH_DEFAULT  \ 
    100                 "./?.lua;"  LUA_LDIR"?.lua;"  LUA_LDIR"?/init.lua;" \ 
    101                             LUA_CDIR"?.lua;"  LUA_CDIR"?/init.lua" 
     93        "./?.lua;"  LUA_LDIR"?.lua;"  LUA_LDIR"?/init.lua;" \ 
     94                    LUA_CDIR"?.lua;"  LUA_CDIR"?/init.lua" 
    10295#define LUA_CPATH_DEFAULT \ 
    103         "./?.so;"  LUA_CDIR"?.so;" LUA_CDIR"loadall.so" 
    104 #endif 
    105  
     96    "./?.so;"  LUA_CDIR"?.so;" LUA_CDIR"loadall.so" 
     97#endif 
    10698 
    10799/* 
     
    111103*/ 
    112104#if defined(_WIN32) 
    113 #define LUA_DIRSEP      "\\" 
    114 #else 
    115 #define LUA_DIRSEP      "/" 
    116 #endif 
    117  
     105#define LUA_DIRSEP  "\\" 
     106#else 
     107#define LUA_DIRSEP  "/" 
     108#endif 
    118109 
    119110/* 
     
    129120** in file/directory names.) Probably you do not need to change them. 
    130121*/ 
    131 #define LUA_PATHSEP     ";" 
    132 #define LUA_PATH_MARK   "?" 
    133 #define LUA_EXECDIR     "!" 
    134 #define LUA_IGMARK      "-" 
    135  
     122#define LUA_PATHSEP     ";" 
     123#define LUA_PATH_MARK   "?" 
     124#define LUA_EXECDIR     "!" 
     125#define LUA_IGMARK      "-" 
    136126 
    137127/* 
     
    140130** machines, ptrdiff_t gives a good choice between int or long.) 
    141131*/ 
    142 #define LUA_INTEGER     int 
    143  
     132#define LUA_INTEGER     int 
    144133 
    145134/* 
     
    161150#else 
    162151 
    163 #define LUA_API         extern 
     152#define LUA_API     extern 
    164153 
    165154#endif 
    166155 
    167156/* more often than not the libs go together with the core */ 
    168 #define LUALIB_API      LUA_API 
    169  
     157#define LUALIB_API  LUA_API 
    170158 
    171159/* 
     
    179167*/ 
    180168#if defined(luaall_c) 
    181 #define LUAI_FUNC       static 
    182 #define LUAI_DATA       /* empty */ 
     169#define LUAI_FUNC   static 
     170#define LUAI_DATA   /* empty */ 
    183171 
    184172#elif defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \ 
     
    186174/* reyalp: hidden is irrelevant if not dynamically linked*/ 
    187175#if defined(HDK_VERSION) 
    188 #define LUAI_FUNC       extern 
    189 #else 
    190 #define LUAI_FUNC       __attribute__((visibility("hidden"))) extern 
    191 #endif 
    192 #define LUAI_DATA       LUAI_FUNC 
    193  
    194 #else 
    195 #define LUAI_FUNC       extern 
    196 #define LUAI_DATA       extern 
    197 #endif 
    198  
    199  
     176#define LUAI_FUNC   extern 
     177#else 
     178#define LUAI_FUNC   __attribute__((visibility("hidden"))) extern 
     179#endif 
     180#define LUAI_DATA   LUAI_FUNC 
     181 
     182#else 
     183#define LUAI_FUNC   extern 
     184#define LUAI_DATA   extern 
     185#endif 
    200186 
    201187/* 
     
    203189** CHANGE it if you want a different appearance. 
    204190*/ 
    205 #define LUA_QL(x)       "'" x "'" 
    206 #define LUA_QS          LUA_QL("%s") 
    207  
     191#define LUA_QL(x)   "'" x "'" 
     192#define LUA_QS      LUA_QL("%s") 
    208193 
    209194/* 
     
    213198*/ 
    214199#define LUA_IDSIZE      60 
    215  
    216200 
    217201/* 
     
    231215#if defined(LUA_USE_ISATTY) 
    232216#include <unistd.h> 
    233 #define lua_stdin_is_tty()      isatty(0) 
     217#define lua_stdin_is_tty()  isatty(0) 
    234218#elif defined(LUA_WIN) 
    235219#include <io.h> 
    236220#include <stdio.h> 
    237 #define lua_stdin_is_tty()      _isatty(_fileno(stdin)) 
    238 #else 
    239 #define lua_stdin_is_tty()      1  /* assume stdin is a tty */ 
    240 #endif 
    241  
     221#define lua_stdin_is_tty()  _isatty(_fileno(stdin)) 
     222#else 
     223#define lua_stdin_is_tty()  1  /* assume stdin is a tty */ 
     224#endif 
    242225 
    243226/* 
     
    247230** prompts dynamically, assigning to globals _PROMPT/_PROMPT2.) 
    248231*/ 
    249 #define LUA_PROMPT              "> " 
    250 #define LUA_PROMPT2             ">> " 
    251  
     232#define LUA_PROMPT      "> " 
     233#define LUA_PROMPT2     ">> " 
    252234 
    253235/* 
     
    256238** your system is not able to detect that name automatically. 
    257239*/ 
    258 #define LUA_PROGNAME            "lua" 
    259  
     240#define LUA_PROGNAME    "lua" 
    260241 
    261242/* 
     
    264245** CHANGE it if you need longer lines. 
    265246*/ 
    266 #define LUA_MAXINPUT    512 
    267  
     247#define LUA_MAXINPUT    512 
    268248 
    269249/* 
     
    281261#define lua_readline(L,b,p)     ((void)L, ((b)=readline(p)) != NULL) 
    282262#define lua_saveline(L,idx) \ 
    283         if (lua_strlen(L,idx) > 0)  /* non-empty line? */ \ 
    284           add_history(lua_tostring(L, idx));  /* add it to history */ 
     263    if (lua_strlen(L,idx) > 0)  /* non-empty line? */ \ 
     264    add_history(lua_tostring(L, idx));  /* add it to history */ 
    285265#define lua_freeline(L,b)       ((void)L, free(b)) 
    286266#else 
    287267#define lua_readline(L,b,p)     \ 
    288         ((void)L, fputs(p, stdout), fflush(stdout),  /* show prompt */ \ 
    289         fgets(b, LUA_MAXINPUT, stdin) != NULL)  /* get line */ 
     268    ((void)L, fputs(p, stdout), fflush(stdout),  /* show prompt */ \ 
     269    fgets(b, LUA_MAXINPUT, stdin) != NULL)  /* get line */ 
    290270#define lua_saveline(L,idx)     { (void)L; (void)idx; } 
    291271#define lua_freeline(L,b)       { (void)L; (void)b; } 
     
    295275 
    296276/* }================================================================== */ 
    297  
    298277 
    299278/* 
     
    304283** this value dynamically. 
    305284*/ 
    306 #define LUAI_GCPAUSE    200  /* 200% (wait memory to double before next GC) */ 
    307  
     285#define LUAI_GCPAUSE    200  /* 200% (wait memory to double before next GC) */ 
    308286 
    309287/* 
     
    317295#define LUAI_GCMUL      200 /* GC runs 'twice the speed' of memory allocation */ 
    318296 
    319  
    320  
    321297/* 
    322298@@ LUA_COMPAT_GETN controls compatibility with old getn behavior. 
     
    369345*/ 
    370346#undef LUA_COMPAT_OPENLIB 
    371  
    372  
    373347 
    374348/* 
     
    381355#if defined(LUA_USE_APICHECK) 
    382356#include <assert.h> 
    383 #define luai_apicheck(L,o)      { (void)L; assert(o); } 
    384 #else 
    385 #define luai_apicheck(L,o)      { (void)L; } 
    386 #endif 
    387  
     357#define luai_apicheck(L,o)  { (void)L; assert(o); } 
     358#else 
     359#define luai_apicheck(L,o)  { (void)L; } 
     360#endif 
    388361 
    389362/* 
     
    394367/* avoid overflows in comparison */ 
    395368#if INT_MAX-20 < 32760 
    396 #define LUAI_BITSINT    16 
     369#define LUAI_BITSINT    16 
    397370#elif INT_MAX > 2147483640L 
    398371/* int has at least 32 bits */ 
    399 #define LUAI_BITSINT    32 
     372#define LUAI_BITSINT    32 
    400373#else 
    401374#error "you must define LUA_BITSINT with number of bits in an integer" 
    402375#endif 
    403  
    404376 
    405377/* 
     
    416388*/ 
    417389#if LUAI_BITSINT >= 32 
    418 #define LUAI_UINT32     unsigned int 
    419 #define LUAI_INT32      int 
    420 #define LUAI_MAXINT32   INT_MAX 
    421 #define LUAI_UMEM       size_t 
    422 #define LUAI_MEM        ptrdiff_t 
     390#define LUAI_UINT32     unsigned int 
     391#define LUAI_INT32      int 
     392#define LUAI_MAXINT32   INT_MAX 
     393#define LUAI_UMEM       size_t 
     394#define LUAI_MEM        ptrdiff_t 
    423395#else 
    424396/* 16-bit ints */ 
    425 #define LUAI_UINT32     unsigned long 
    426 #define LUAI_INT32      long 
    427 #define LUAI_MAXINT32   LONG_MAX 
    428 #define LUAI_UMEM       unsigned long 
    429 #define LUAI_MEM        long 
    430 #endif 
    431  
     397#define LUAI_UINT32     unsigned long 
     398#define LUAI_INT32      long 
     399#define LUAI_MAXINT32   LONG_MAX 
     400#define LUAI_UMEM       unsigned long 
     401#define LUAI_MEM        long 
     402#endif 
    432403 
    433404/* 
     
    437408** exhausting memory. 
    438409*/ 
    439 #define LUAI_MAXCALLS   20000 
    440  
     410#define LUAI_MAXCALLS   20000 
    441411 
    442412/* 
     
    447417** functions to consume unlimited stack space. 
    448418*/ 
    449 #define LUAI_MCS_AUX    ((int)(INT_MAX / (4*sizeof(LUA_NUMBER)))) 
    450 #define LUAI_MAXCSTACK  (LUAI_MCS_AUX > SHRT_MAX ? SHRT_MAX : LUAI_MCS_AUX) 
    451  
    452  
     419#define LUAI_MCS_AUX    ((int)(INT_MAX / (4*sizeof(LUA_NUMBER)))) 
     420#define LUAI_MAXCSTACK  (LUAI_MCS_AUX > SHRT_MAX ? SHRT_MAX : LUAI_MCS_AUX) 
    453421 
    454422/* 
     
    465433*/ 
    466434 
    467  
    468435/* 
    469436@@ LUAI_MAXCCALLS is the maximum depth for nested C calls (short) and 
    470437@* syntactical nested non-terminals in a program. 
    471438*/ 
    472 #define LUAI_MAXCCALLS          200 
    473  
     439#define LUAI_MAXCCALLS      200 
    474440 
    475441/* 
     
    477443@* (must be smaller than 250). 
    478444*/ 
    479 #define LUAI_MAXVARS            200 
    480  
     445#define LUAI_MAXVARS        200 
    481446 
    482447/* 
     
    484449@* (must be smaller than 250). 
    485450*/ 
    486 #define LUAI_MAXUPVALUES        60 
    487  
     451#define LUAI_MAXUPVALUES    60 
    488452 
    489453/* 
    490454@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system. 
    491455*/ 
    492 #define LUAL_BUFFERSIZE         512 /*BUFSIZ*/ 
     456#define LUAL_BUFFERSIZE     512 /*BUFSIZ*/ 
    493457 
    494458/* }================================================================== */ 
    495  
    496  
    497  
    498459 
    499460/* 
     
    507468 
    508469//#define LUA_NUMBER_DOUBLE 
    509 #define LUA_NUMBER      int 
     470#define LUA_NUMBER      int 
    510471 
    511472/* 
     
    513474@* over a number. 
    514475*/ 
    515 #define LUAI_UACNUMBER  int 
    516  
     476#define LUAI_UACNUMBER  int 
    517477 
    518478/* 
     
    523483@@ lua_str2number converts a string to a number. 
    524484*/ 
    525 #define LUA_NUMBER_SCAN         "%d" 
    526 #define LUA_NUMBER_FMT          "%d" 
    527 #define lua_number2str(s,n)     sprintf((s), LUA_NUMBER_FMT, (n)) 
    528 #define LUAI_MAXNUMBER2STR      15 
    529 #define lua_str2number(s,p)     strtol((s), (p), 10) 
    530  
     485#define LUA_NUMBER_SCAN     "%d" 
     486#define LUA_NUMBER_FMT      "%d" 
     487#define lua_number2str(s,n) sprintf((s), LUA_NUMBER_FMT, (n)) 
     488#define LUAI_MAXNUMBER2STR  15 
     489#define lua_str2number(s,p) strtol((s), (p), 10) 
    531490 
    532491/* 
     
    535494#if defined(LUA_CORE) 
    536495//#include <math.h> 
    537 #define luai_numadd(a,b)        ((a)+(b)) 
    538 #define luai_numsub(a,b)        ((a)-(b)) 
    539 #define luai_nummul(a,b)        ((a)*(b)) 
    540 #define luai_numdiv(a,b)        ((a)/(b)) 
    541 #define luai_nummod(a,b)        ((a)%(b)) 
    542 #define luai_numpow(a,b)        (luai_ipow(a,b)) 
    543 #define luai_numunm(a)          (-(a)) 
    544 #define luai_numeq(a,b)         ((a)==(b)) 
    545 #define luai_numlt(a,b)         ((a)<(b)) 
    546 #define luai_numle(a,b)         ((a)<=(b)) 
    547 #define luai_numisnan(a)        (!luai_numeq((a), (a))) 
     496#define luai_numadd(a,b)    ((a)+(b)) 
     497#define luai_numsub(a,b)    ((a)-(b)) 
     498#define luai_nummul(a,b)    ((a)*(b)) 
     499#define luai_numdiv(a,b)    ((a)/(b)) 
     500#define luai_nummod(a,b)    ((a)%(b)) 
     501#define luai_numpow(a,b)    (luai_ipow(a,b)) 
     502#define luai_numunm(a)      (-(a)) 
     503#define luai_numeq(a,b)     ((a)==(b)) 
     504#define luai_numlt(a,b)     ((a)<(b)) 
     505#define luai_numle(a,b)     ((a)<=(b)) 
     506#define luai_numisnan(a)    (!luai_numeq((a), (a))) 
    548507#endif 
    549508 
     
    570529 
    571530#define lua_number2int(i,d)   __asm fld d   __asm fistp i 
    572 #define lua_number2integer(i,n)         lua_number2int(i, n) 
     531#define lua_number2integer(i,n)     lua_number2int(i, n) 
    573532 
    574533/* the next trick should work on any Pentium, but sometimes clashes 
     
    579538#define lua_number2int(i,d) \ 
    580539  { volatile union luai_Cast u; u.l_d = (d) + 6755399441055744.0; (i) = u.l_l; } 
    581 #define lua_number2integer(i,n)         lua_number2int(i, n) 
    582  
    583 #endif 
    584  
     540#define lua_number2integer(i,n)     lua_number2int(i, n) 
     541 
     542#endif 
    585543 
    586544/* this option always works, but may be slow */ 
     
    601559** union.) Probably you do not need to change this. 
    602560*/ 
    603 #define LUAI_USER_ALIGNMENT_T   union { double u; void *s; long l; } 
    604  
     561#define LUAI_USER_ALIGNMENT_T   union { double u; void *s; long l; } 
    605562 
    606563/* 
     
    614571#if defined(__cplusplus) 
    615572/* C++ exceptions */ 
    616 #define LUAI_THROW(L,c) throw(c) 
    617 #define LUAI_TRY(L,c,a) try { a } catch(...) \ 
    618         { if ((c)->status == 0) (c)->status = -1; } 
    619 #define luai_jmpbuf     int  /* dummy variable */ 
     573#define LUAI_THROW(L,c) throw(c) 
     574#define LUAI_TRY(L,c,a) try { a } catch(...) \ 
     575    { if ((c)->status == 0) (c)->status = -1; } 
     576#define luai_jmpbuf int  /* dummy variable */ 
    620577 
    621578#elif defined(LUA_USE_ULONGJMP) 
    622579/* in Unix, try _longjmp/_setjmp (more efficient) */ 
    623 #define LUAI_THROW(L,c) _longjmp((c)->b, 1) 
    624 #define LUAI_TRY(L,c,a) if (_setjmp((c)->b) == 0) { a } 
    625 #define luai_jmpbuf     jmp_buf 
     580#define LUAI_THROW(L,c) _longjmp((c)->b, 1) 
     581#define LUAI_TRY(L,c,a) if (_setjmp((c)->b) == 0) { a } 
     582#define luai_jmpbuf     jmp_buf 
    626583 
    627584#else 
    628585/* default handling with long jumps */ 
    629 #define LUAI_THROW(L,c) longjmp((c)->b, 1) 
    630 #define LUAI_TRY(L,c,a) if (setjmp((c)->b) == 0) { a } 
    631 #define luai_jmpbuf     jmp_buf 
    632  
    633 #endif 
    634  
     586#define LUAI_THROW(L,c) longjmp((c)->b, 1) 
     587#define LUAI_TRY(L,c,a) if (setjmp((c)->b) == 0) { a } 
     588#define luai_jmpbuf     jmp_buf 
     589 
     590#endif 
    635591 
    636592/* 
     
    639595** CHANGE it if you need more captures. This limit is arbitrary. 
    640596*/ 
    641 #define LUA_MAXCAPTURES         32 
    642  
     597#define LUA_MAXCAPTURES     32 
    643598 
    644599/* 
     
    654609#if defined(LUA_USE_MKSTEMP) 
    655610#include <unistd.h> 
    656 #define LUA_TMPNAMBUFSIZE       32 
    657 #define lua_tmpnam(b,e) { \ 
    658         strcpy(b, "/tmp/lua_XXXXXX"); \ 
    659         e = mkstemp(b); \ 
    660         if (e != -1) close(e); \ 
    661         e = (e == -1); } 
    662  
    663 #else 
    664 #define LUA_TMPNAMBUFSIZE       L_tmpnam 
    665 #define lua_tmpnam(b,e)         { e = (tmpnam(b) == NULL); } 
    666 #endif 
    667  
    668 #endif 
    669  
     611#define LUA_TMPNAMBUFSIZE   32 
     612#define lua_tmpnam(b,e) { \ 
     613    strcpy(b, "/tmp/lua_XXXXXX"); \ 
     614    e = mkstemp(b); \ 
     615    if (e != -1) close(e); \ 
     616    e = (e == -1); } 
     617 
     618#else 
     619#define LUA_TMPNAMBUFSIZE   L_tmpnam 
     620#define lua_tmpnam(b,e)     { e = (tmpnam(b) == NULL); } 
     621#endif 
     622 
     623#endif 
    670624 
    671625/* 
     
    676630#if defined(LUA_USE_POPEN) 
    677631 
    678 #define lua_popen(L,c,m)        ((void)L, fflush(NULL), popen(c,m)) 
    679 #define lua_pclose(L,file)      ((void)L, (pclose(file) != -1)) 
     632#define lua_popen(L,c,m)    ((void)L, fflush(NULL), popen(c,m)) 
     633#define lua_pclose(L,file)  ((void)L, (pclose(file) != -1)) 
    680634 
    681635#elif defined(LUA_WIN) 
    682636 
    683 #define lua_popen(L,c,m)        ((void)L, _popen(c,m)) 
    684 #define lua_pclose(L,file)      ((void)L, (_pclose(file) != -1)) 
    685  
    686 #else 
    687  
    688 #define lua_popen(L,c,m)        ((void)((void)c, m),  \ 
    689                 luaL_error(L, LUA_QL("popen") " not supported"), (FILE*)0) 
    690 #define lua_pclose(L,file)              ((void)((void)L, file), 0) 
     637#define lua_popen(L,c,m)    ((void)L, _popen(c,m)) 
     638#define lua_pclose(L,file)  ((void)L, (_pclose(file) != -1)) 
     639 
     640#else 
     641 
     642#define lua_popen(L,c,m)    ((void)((void)c, m),  \ 
     643        luaL_error(L, LUA_QL("popen") " not supported"), (FILE*)0) 
     644#define lua_pclose(L,file)  ((void)((void)L, file), 0) 
    691645 
    692646#endif 
     
    721675** a multiple of the maximum alignment required for your machine. 
    722676*/ 
    723 #define LUAI_EXTRASPACE         0 
    724  
     677#define LUAI_EXTRASPACE     0 
    725678 
    726679/* 
     
    729682** extra when a thread is created/deleted/resumed/yielded. 
    730683*/ 
    731 #define luai_userstateopen(L)           ((void)L) 
    732 #define luai_userstateclose(L)          ((void)L) 
    733 #define luai_userstatethread(L,L1)      ((void)L) 
    734 #define luai_userstatefree(L)           ((void)L) 
    735 #define luai_userstateresume(L,n)       ((void)L) 
    736 #define luai_userstateyield(L,n)        ((void)L) 
    737  
     684#define luai_userstateopen(L)       ((void)L) 
     685#define luai_userstateclose(L)      ((void)L) 
     686#define luai_userstatethread(L,L1)  ((void)L) 
     687#define luai_userstatefree(L)       ((void)L) 
     688#define luai_userstateresume(L,n)   ((void)L) 
     689#define luai_userstateyield(L,n)    ((void)L) 
    738690 
    739691/* 
     
    747699#if defined(LUA_USELONGLONG) 
    748700 
    749 #define LUA_INTFRMLEN           "ll" 
    750 #define LUA_INTFRM_T            long long 
    751  
    752 #else 
    753  
    754 #define LUA_INTFRMLEN           "l" 
    755 #define LUA_INTFRM_T            long 
    756  
    757 #endif 
    758  
    759  
     701#define LUA_INTFRMLEN       "ll" 
     702#define LUA_INTFRM_T        long long 
     703 
     704#else 
     705 
     706#define LUA_INTFRMLEN       "l" 
     707#define LUA_INTFRM_T        long 
     708 
     709#endif 
    760710 
    761711/* =================================================================== */ 
     
    766716*/ 
    767717 
    768  
    769  
    770 #endif 
    771  
    772  
     718#endif 
     719 
     720 
  • trunk/include/lualib.h

    r515 r1663  
    55*/ 
    66 
    7  
    87#ifndef lualib_h 
    98#define lualib_h 
     
    1110#include "lua.h" 
    1211 
     12/* Key to file-handle type */ 
     13#define LUA_FILEHANDLE  "FILE*" 
    1314 
    14 /* Key to file-handle type */ 
    15 #define LUA_FILEHANDLE          "FILE*" 
    16  
    17  
    18 #define LUA_COLIBNAME   "coroutine" 
     15#define LUA_COLIBNAME   "coroutine" 
    1916LUALIB_API int (luaopen_base) (lua_State *L); 
    2017 
    21 #define LUA_TABLIBNAME  "table" 
     18#define LUA_TABLIBNAME  "table" 
    2219LUALIB_API int (luaopen_table) (lua_State *L); 
    2320 
    24 #define LUA_IOLIBNAME   "io" 
     21#define LUA_IOLIBNAME   "io" 
    2522LUALIB_API int (luaopen_io) (lua_State *L); 
    2623 
    27 #define LUA_OSLIBNAME   "os" 
     24#define LUA_OSLIBNAME   "os" 
    2825LUALIB_API int (luaopen_os) (lua_State *L); 
    2926 
    30 #define LUA_STRLIBNAME  "string" 
     27#define LUA_STRLIBNAME  "string" 
    3128LUALIB_API int (luaopen_string) (lua_State *L); 
    3229 
    33 #define LUA_MATHLIBNAME "math" 
     30#define LUA_MATHLIBNAME "math" 
    3431LUALIB_API int (luaopen_math) (lua_State *L); 
    3532 
    36 #define LUA_DBLIBNAME   "debug" 
     33#define LUA_DBLIBNAME   "debug" 
    3734LUALIB_API int (luaopen_debug) (lua_State *L); 
    3835 
    39 #define LUA_LOADLIBNAME "package" 
     36#define LUA_LOADLIBNAME "package" 
    4037LUALIB_API int (luaopen_package) (lua_State *L); 
    41  
    4238 
    4339/* open all previous libraries */ 
    4440LUALIB_API void (luaL_openlibs) (lua_State *L);  
    4541 
    46  
    47  
    4842#ifndef lua_assert 
    49 #define lua_assert(x)   ((void)0) 
     43#define lua_assert(x)   ((void)0) 
    5044#endif 
    5145 
    52  
    5346#endif 
  • trunk/include/modelist.h

    r1620 r1663  
    11#ifndef MODELIST_H 
    22#define MODELIST_H 
    3  
    43/* 
    54CHDK capture mode constants. 
    65WARNING: This file is used with gen_modelist_lua.sed to generate modelist.lua 
    7 WARNING: These are used for platform independent script values. 
     6WARNING: These are used for platform independent script values.  
    87Changing order or inserting new values will break script compatibility. 
    98ADD NEW VALUES AT THE END! 
     
    4140    MODE_AV                 , 
    4241    MODE_M                  , // note, use only for true manual modes that allow direct control of Tv/Av 
    43     MODE_PORTRAIT           , 
     42    MODE_PORTRAIT           ,  
    4443    MODE_NIGHT_SCENE        , // "night scene" mode. Note, this can be a dail position, or under the scene menu (SCN_NIGHT_SCENE). 
    4544    MODE_LANDSCAPE          , 
     
    9897    MODE_LOWLIGHT           , // g11 
    9998    MODE_SCN_NOSTALGIC      , // s90 
    100     MODE_SCN_SMART_SHUTTER    , // sx30/g12 (Smart Shutter, Smile detection mode) 
    101     MODE_SCN_LOWLIGHT        , // sx30 
     99    MODE_SCN_SMART_SHUTTER  , // sx30/g12 (Smart Shutter, Smile detection mode) 
     100    MODE_SCN_LOWLIGHT       , // sx30 
    102101    MODE_SCN_SUPER_VIVID    , // sx30 
    103     MODE_SCN_POSTER_EFFECT    , // sx30 
     102    MODE_SCN_POSTER_EFFECT  , // sx30 
    104103    MODE_SCN_FISHEYE        , // sx30 
    105     MODE_SCN_MINIATURE        , // sx30 
     104    MODE_SCN_MINIATURE      , // sx30 
    106105    MODE_SCN_HDR            , // g12 (HDR scene mode) 
    107106    MODE_VIDEO_MINIATURE    , // g12 (miniature effect video mode) 
    108107    MODE_VIDEO_IFRAME_MOVIE , // sx220 
    109     MODE_VIDEO_MOVIE_DIGEST    , // sx220 (the camera automatically record a short video clip (up to approximately 4 seconds) every time you shoot a still image.) 
     108    MODE_VIDEO_MOVIE_DIGEST , // sx220 (the camera automatically record a short video clip (up to approximately 4 seconds) every time you shoot  
    110109    MODE_SCN_HIGHSPEED_BURST, // sx220 
    111     MODE_SCN_BEST_IMAGE        , // sx220 
    112     MODE_SCN_TOY_CAMERA    , // sx220 
    113     MODE_SCN_MONOCHROME    , // sx220 
     110    MODE_SCN_BEST_IMAGE     , // sx220 
     111    MODE_SCN_TOY_CAMERA     , // sx220 
     112    MODE_SCN_MONOCHROME     , // sx220 
    114113    MODE_SCN_WINK_SELF_TIMER, // sx30/g12 (Smart Shutter, Wink Self Timer mode) 
    115114    MODE_SCN_FACE_SELF_TIMER, // sx30/g12 (Smart Shutter, Face Self Timer mode) 
    116     MODE_VIDEO_SUPER_SLOW   ,   // IXUS 310 HS Super Slow Motion Movie 
     115    MODE_VIDEO_SUPER_SLOW   , // IXUS 310 HS Super Slow Motion Movie 
    117116    MODE_SMART_SHUTTER      , // ixus1000_sd4500 - the following are not under SCN 
    118117    MODE_HIGHSPEED_BURST    , 
     
    127126    MODE_FIREWORK           , // ixus1000 end 
    128127    MODE_LIVE               , // A3300is 
    129     MODE_DISCREET                        , // A3300is 
     128    MODE_DISCREET          , // A3300is 
    130129}; 
    131130 
  • trunk/include/platform.h

    r1661 r1663  
    2525#elif CAM_PROPSET == 3 
    2626    #include "propset3.h" 
    27 #elif CAM_PROPSET == 2    // most digic3 cameras 
     27#elif CAM_PROPSET == 2      // most digic3 cameras 
    2828    #include "propset2.h" 
    29 #elif CAM_PROPSET == 1    // most digic2 cameras 
     29#elif CAM_PROPSET == 1      // most digic2 cameras 
    3030    #include "propset1.h" 
    3131#else 
     
    3333#endif 
    3434 
    35 #define MIN_DIST                CAMERA_MIN_DIST     // Defined in camera.h (can be overridden in platform_camera.h) 
    36 #define MAX_DIST                CAMERA_MAX_DIST     // Defined in camera.h (can be overridden in platform_camera.h) 
    37 #define INFINITY_DIST           0xFFFFFFFF          // Value to send to firmware to select 'infinity' focus 
    38 #define MAX_DIST_HYPER_FOCAL    999999 
     35#define MIN_DIST                    CAMERA_MIN_DIST     // Defined in camera.h (can be overridden in platform_camera.h) 
     36#define MAX_DIST                    CAMERA_MAX_DIST     // Defined in camera.h (can be overridden in platform_camera.h) 
     37#define INFINITY_DIST               0xFFFFFFFF          // Value to send to firmware to select 'infinity' focus 
     38#define MAX_DIST_HYPER_FOCAL        999999 
    3939 
    4040//******************** 
     
    4242//******************** 
    4343 
    44 #define MODE_SCREEN_MASK        0x0C00 
    45 #define MODE_SCREEN_OPENED      0x0400 
    46 #define MODE_SCREEN_ROTATED     0x0800 
     44#define MODE_SCREEN_MASK            0x0C00 
     45#define MODE_SCREEN_OPENED          0x0400 
     46#define MODE_SCREEN_ROTATED         0x0800 
    4747 
    4848/* Keyboard repeat and initial delays */ 
     
    5050#define KBD_INITIAL_DELAY 300 
    5151 
    52 // Video recording current status constants, see movie_status variable 
    53 #define VIDEO_RECORD_NEVER_STARTED    0 
    54 #define VIDEO_RECORD_STOPPED          1 
    55 #define VIDEO_RECORD_IN_PROGRESS      4 
    56  
    57 //Optical & digital zoom status constants, see zoom_status variable 
    58 #define ZOOM_OPTICAL_MIN              1 
    59 #define ZOOM_OPTICAL_MAX              2 
    60 #define ZOOM_OPTICAL_MEDIUM           3 
    61 #define ZOOM_OPTICAL_IN               4 
    62 #define ZOOM_OPTICAL_OUT              5 
    63 #define ZOOM_OPTICAL_REACHED_MIN      7 
    64  
    65 #define ZOOM_DIGITAL_MAX              9 
    66 #define ZOOM_DIGITAL_MEDIUM           10 
    67 #define ZOOM_DIGITAL_IN               11 
    68 #define ZOOM_DIGITAL_OUT              12 
    69 #define ZOOM_DIGITAL_REACHED_MAX      13 
    70  
    71 typedef struct { 
    72     unsigned short hackmode; // platform independent mode values from MODE_xxx enum 
    73     unsigned short canonmode; // PROPCASE_SHOOTING_MODE value 
     52// Video recording current status constants, see movie_status variable  
     53#define VIDEO_RECORD_NEVER_STARTED   
     54#define VIDEO_RECORD_STOPPED         
     55#define VIDEO_RECORD_IN_PROGRESS    4 
     56 
     57//Optical & digital zoom status constants, see zoom_status variable  
     58#define ZOOM_OPTICAL_MIN            1 
     59#define ZOOM_OPTICAL_MAX            2 
     60#define ZOOM_OPTICAL_MEDIUM         3 
     61#define ZOOM_OPTICAL_IN             4 
     62#define ZOOM_OPTICAL_OUT            5 
     63#define ZOOM_OPTICAL_REACHED_MIN    7 
     64 
     65#define ZOOM_DIGITAL_MAX            9 
     66#define ZOOM_DIGITAL_MEDIUM         10 
     67#define ZOOM_DIGITAL_IN             11 
     68#define ZOOM_DIGITAL_OUT            12 
     69#define ZOOM_DIGITAL_REACHED_MAX    13 
     70 
     71typedef struct { 
     72    unsigned short hackmode;   // platform independent mode values from MODE_xxx enum 
     73    unsigned short canonmode;  // PROPCASE_SHOOTING_MODE value 
    7474} CapturemodeMap; 
    7575 
    7676typedef struct { 
    77     short id; // hacks id 
    78     short prop_id; // Canons id 
     77    short id;       // hacks id 
     78    short prop_id;  // Canons id 
    7979    char name[8]; 
    8080    short shutter_dfs_value; // shutter speed to use dark frame substraction 
     
    8282 
    8383typedef struct { 
    84     short id; // hacks id 
    85     short prop_id; // Canons id 
     84    short id;       // hacks id 
     85    short prop_id;  // Canons id 
    8686    char name[8]; 
    8787    long usec; 
     
    8989 
    9090typedef struct { 
    91     short id; // hacks id 
    92     short prop_id; // Canons id 
     91    short id;       // hacks id 
     92    short prop_id;  // Canons id 
    9393    char name[8]; 
    9494} ApertureSize; 
     
    120120#define SHOW_HALF      2 
    121121 
     122 
    122123typedef struct { 
    123124    short av96; 
     
    145146    short iso_market; 
    146147    short bv96_measured; 
    147     short bv96_seted;//Ev96_internal-Sv96 
    148     short ev96_seted; //Tv96+Av96 
    149     short ev96_measured; //Bv96+Sv96 
    150     short dev96;// Ev96_external-Ev96_internal 
    151     short dev96_canon;// Canon OverExposure 
    152     int b; //average scene luminance 
     148    short bv96_seted;       //Ev96_internal-Sv96 
     149    short ev96_seted;       //Tv96+Av96 
     150    short ev96_measured;    //Bv96+Sv96 
     151    short dev96;            // Ev96_external-Ev96_internal 
     152    short dev96_canon;      // Canon OverExposure 
     153    int b;                  //average scene luminance  
    153154} EXPO_TYPE; 
    154155 
     
    183184long get_exposure_counter(); 
    184185long get_file_next_counter(); 
    185 #if defined(CAM_DATE_FOLDER_NAMING) 
    186 void get_target_dir_name(char*); 
     186#if defined(CAM_DATE_FOLDER_NAMING)  
     187    void get_target_dir_name(char*); 
    187188#else 
    188 long get_target_dir_num(); 
     189    long get_target_dir_num(); 
    189190#endif 
    190191long get_target_file_num(); 
     
    285286int shooting_get_user_tv_id(); 
    286287#if defined(CAM_DRAW_EXPOSITION) 
    287 char* shooting_get_tv_str(); 
     288    char* shooting_get_tv_str(); 
    288289#endif 
    289290short shooting_get_tv96_from_shutter_speed(float t); 
     
    308309int shooting_get_user_av_id(); 
    309310#if defined(CAM_DRAW_EXPOSITION) 
    310 char* shooting_get_av_str(); 
     311    char* shooting_get_av_str(); 
    311312#endif 
    312313void shooting_set_user_av_by_id(int v); 
     
    398399 
    399400// returns 0 if in play, nonzero if rec 
    400 int rec_mode_active(void); 
     401int rec_mode_active(void);  
    401402 
    402403// not used. Right now this is just to preserve code from earlier version of mode_get() 
     
    508509void reverse_bytes_order2(char* from, char* to, int count); 
    509510// convert old version calls to new version (to minimise code changes) 
    510 #define reverse_bytes_order(start, count) reverse_bytes_order2(start,start,count) 
     511#define reverse_bytes_order(start, count)   reverse_bytes_order2(start,start,count) 
    511512void save_ext_for_dng(void); 
    512513void change_ext_to_dng(void); 
     
    523524void  SetLogicalEventActive(unsigned event, unsigned state); 
    524525void SetScriptMode(unsigned mode); 
    525  
    526526/* 
    527527 call C function with argument list created at runtime. 
     
    538538#define started() debug_led(1) 
    539539#define finished() debug_led(0) 
    540  
    541540 
    542541#ifdef CAM_CHDK_PTP 
     
    611610 
    612611#ifdef OPT_EXMEM_MALLOC 
    613 extern void exmem_malloc_init(void); 
     612    extern void exmem_malloc_init(void); 
    614613#endif 
    615614 
  • trunk/include/propset4.h

    r1457 r1663  
    88*/ 
    99 
    10 #define PROPCASE_AF_LOCK                         11             // 0 = AF not locked, 1 = AF locked 
     10#define PROPCASE_AF_LOCK                         11     // 0 = AF not locked, 1 = AF locked 
    1111#define PROPCASE_FLASH_SYNC_CURTAIN              64 
    1212#define PROPCASE_SUBJECT_DIST2                   65 
     
    1818#define PROPCASE_SHOOTING_MODE                   49 
    1919#define PROPCASE_QUALITY                         57 
    20 #define PROPCASE_DIGITAL_ZOOM_MODE               91             // Digital Zoom Mode/State 0 = off/standard, 2 = 1.7x, 3 = 2.1x 
    21 #define PROPCASE_DIGITAL_ZOOM_STATE              94             // Digital Zoom Mode/State 0 = Digital Zoom off, 1 = Digital Zoom on 
     20#define PROPCASE_DIGITAL_ZOOM_MODE               91     // Digital Zoom Mode/State 0 = off/standard, 2 = 1.7x, 3 = 2.1x 
     21#define PROPCASE_DIGITAL_ZOOM_STATE              94     // Digital Zoom Mode/State 0 = Digital Zoom off, 1 = Digital Zoom on 
    2222#define PROPCASE_DIGITAL_ZOOM_POSITION           95 
    2323#define PROPCASE_DRIVE_MODE                      102 
     
    3737 
    3838// SX30 & G12 values 
    39 #define PROPCASE_AE_LOCK                                                 3              // 0 = AE not locked, 1 = AE locked 
    40 #define PROPCASE_AF_FRAME                                                8              // 1 = FlexiZone, 2 = Face AiAF / Tracking AF 
    41 #define PROPCASE_CONTINUOUS_AF                                   12             // 0 = Continuous AF off, 1 = Continuous AF on 
    42 #define PROPCASE_SERVO_AF                                                299    // 0 = Servo AF off, 1 = Servo AF on 
     39#define PROPCASE_AE_LOCK                         3       // 0 = AE not locked, 1 = AE locked 
     40#define PROPCASE_AF_FRAME                        8       // 1 = FlexiZone, 2 = Face AiAF / Tracking AF 
     41#define PROPCASE_CONTINUOUS_AF                   12      // 0 = Continuous AF off, 1 = Continuous AF on 
     42#define PROPCASE_SERVO_AF                        299     // 0 = Servo AF off, 1 = Servo AF on 
    4343#define PROPCASE_METERING_MODE                   157 
    4444#define PROPCASE_OPTICAL_ZOOM_POSITION           199 
     
    4646#define PROPCASE_EV_CORRECTION_2                 211 
    4747#define PROPCASE_IS_FLASH_READY                  212 
    48 #define PROPCASE_RESOLUTION                      222    // 0 = L, 1 = M1, 2 = M2, 4 = S, 7 = Low Light (G12) 
     48#define PROPCASE_RESOLUTION                      222     // 0 = L, 1 = M1, 2 = M2, 4 = S, 7 = Low Light (G12) 
    4949#define PROPCASE_ORIENTATION_SENSOR              223 
    5050#define PROPCASE_TIMER_MODE                      227 
  • trunk/include/setjmp.h

    r515 r1663  
    1616 * All else recovered by under/over(flow) handling. 
    1717 */ 
    18 #define _JBLEN  13 
     18#define _JBLEN  13 
    1919#endif 
    2020 
     
    2828/* 
    2929 * onsstack,sigmask,sp,pc,psl,d2-d7,a2-a6, 
    30  * fp2-fp7      for 68881. 
     30 * fp2-fp7  for 68881. 
    3131 * All else recovered by under/over(flow) handling. 
    3232 */ 
    33 #define _JBLEN  34 
     33#define _JBLEN  34 
    3434#endif 
    3535 
     
    5252 * All else recovered by under/over(flow) handling. 
    5353 */ 
    54 #define _JBLEN  9 
     54#define _JBLEN  9 
    5555#endif 
    5656 
  • trunk/include/vxworks.h

    r875 r1663  
    2323/******************************************************************************/ 
    2424// Task control block 
    25 struct task_t 
    26 { 
    27     unsigned int unknown1[13]; 
    28     char *name; 
    29     unsigned int options; 
    30     unsigned int state; 
    31     unsigned int priority; 
    32     unsigned int unknown2[12]; 
    33     void *entry; 
    34     void *stack_base; 
    35     void *stack_limit; 
    36     void *stack_end; 
    37     unsigned int error_num; 
    38     unsigned int exit_code; 
    39     unsigned int unknown3[7]; 
    40     void *task_std_fp[3];           // pointers to FILE structures 
    41     unsigned int task_std_fd[3];    // std file descriptors 
    42     unsigned int unknown4[24]; 
     25struct task_t { 
     26    unsigned int    unknown1[13]; 
     27    char            *name; 
     28    unsigned int    options; 
     29    unsigned int    state; 
     30    unsigned int    priority; 
     31    unsigned int    unknown2[12]; 
     32    void            *entry; 
     33    void            *stack_base; 
     34    void            *stack_limit; 
     35    void            *stack_end; 
     36    unsigned int    error_num; 
     37    unsigned int    exit_code; 
     38    unsigned int    unknown3[7]; 
     39    void            *task_std_fp[3];    // pointers to FILE structures 
     40    unsigned int    task_std_fd[3];     // std file descriptors 
     41    unsigned int    unknown4[24]; 
    4342    context_t context; 
    44     unsigned int unknown5[11]; 
     43    unsigned int    unknown5[11]; 
    4544}; 
    4645typedef struct task_t task_t; 
    4746/******************************************************************************/ 
     47 
    4848#endif 
  • trunk/lib/armutil/callfunc.S

    r864 r1663  
    6969    LDMFD   SP!, {R4-R5,LR} 
    7070    BX      LR 
    71  
  • trunk/lib/lua/loslib.c

    r871 r1663  
    298298#ifndef CAM_DRYOS_2_3_R39 
    299299    setfield(L,"dev",st.st_dev);                /* device ID number */ 
    300  
    301300//    setfield(L,"ino",st.st_ino);              /* no inodes in fat, always -1 */ 
    302301    setfield(L,"mode",st.st_mode);      /* file mode (see below) */ 
     
    311310    setfield(L,"size",st.st_size);      /* size of file, in bytes */ 
    312311#ifndef CAM_DRYOS_2_3_R39 
    313         setfield(L,"atime",st.st_atime);        /* time of last access */ 
     312    setfield(L,"atime",st.st_atime);    /* time of last access */ 
    314313#endif 
    315314    setfield(L,"mtime",st.st_mtime);    /* time of last modification */ 
  • trunk/lib/ubasic/camera_functions.c

    r1428 r1663  
    450450} 
    451451 
    452  
    453452int script_key_is_pressed( int keyid ) 
    454453{ 
     
    456455        return 0; 
    457456} 
    458  
    459457 
    460458int shot_histogram_get_range(int from, int to) 
  • trunk/platform/a3300/platform_camera.h

    r1656 r1663  
    7474    #define CAM_VIDEO_QUALITY_ONLY          1 
    7575 
    76         #define CAM_DETECT_SCREEN_ERASE             1 
    77  
    7876    #define CAM_DATE_FOLDER_NAMING          1 
    7977 
  • trunk/platform/a410/lib.c

    r1226 r1663  
    1 #include "../generic/lib.c" 
    21 
    32int get_flash_params_count(void){ 
    43 return 94; //should be ok 
    54} 
     5 
     6void shutdown() 
     7{ 
     8    volatile long *p = (void*)0xc02200a0; 
     9         
     10    asm( 
     11         "MRS     R1, CPSR\n" 
     12         "AND     R0, R1, #0x80\n" 
     13         "ORR     R1, R1, #0x80\n" 
     14         "MSR     CPSR_cf, R1\n" 
     15         :::"r1","r0"); 
     16         
     17    *p = 0x44; 
     18 
     19    while(1); 
     20} 
     21 
     22#define LED_PR 0xc0220084 
     23void debug_led(int state) 
     24{ 
     25    volatile long *p=(void*)LED_PR; 
     26    if (state) 
     27        p[0]=0x46; 
     28    else 
     29        p[0]=0x44; 
     30} 
     31 
     32#define LED_AF 0xc0220080 
     33void __attribute__((weak)) camera_set_led(int led, int state, int bright) 
     34{ 
     35  int leds[] = {12,16,4,8,4,0,4}; 
     36  if(led < 4 || led > 10 || led == 6) return; 
     37  volatile long *p=(void*)LED_AF + leds[led-4]; 
     38    if (state) 
     39        p[0]=0x46; 
     40    else 
     41        p[0]=0x44; 
     42} 
  • trunk/platform/a410/platform_camera.h

    r1656 r1663  
    7373        #undef  CAM_BRACKETING //no bracketing in fw 
    7474    #define CAM_EXT_TV_RANGE                1 
    75         #define CAM_DETECT_SCREEN_ERASE         1 
    7675//      #define CAM_NO_MEMPARTINFO              1 
    7776//  #define CAM_MULTIPART                   1 
  • trunk/platform/a430/Makefile

    r1641 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/a430/lib.c

    r1628 r1663  
    1 #include "../generic/lib.c" 
    21 
    32int get_flash_params_count(void){ 
    43 return 108; 
    54} 
     5 
     6void shutdown() 
     7{ 
     8    volatile long *p = (void*)0xc02200a0; 
     9         
     10    asm( 
     11         "MRS     R1, CPSR\n" 
     12         "AND     R0, R1, #0x80\n" 
     13         "ORR     R1, R1, #0x80\n" 
     14         "MSR     CPSR_cf, R1\n" 
     15         :::"r1","r0"); 
     16         
     17    *p = 0x44; 
     18 
     19    while(1); 
     20} 
     21 
     22#define LED_PR 0xc0220084 
     23void debug_led(int state) 
     24{ 
     25    volatile long *p=(void*)LED_PR; 
     26    if (state) 
     27        p[0]=0x46; 
     28    else 
     29        p[0]=0x44; 
     30} 
     31 
     32#define LED_AF 0xc0220080 
     33void __attribute__((weak)) camera_set_led(int led, int state, int bright) 
     34{ 
     35  int leds[] = {12,16,4,8,4,0,4}; 
     36  if(led < 4 || led > 10 || led == 6) return; 
     37  volatile long *p=(void*)LED_AF + leds[led-4]; 
     38    if (state) 
     39        p[0]=0x46; 
     40    else 
     41        p[0]=0x44; 
     42} 
  • trunk/platform/a450/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/a450/lib.c

    r515 r1663  
    1 #include "../generic/lib.c" 
    21 
    32int get_flash_params_count(void){ 
    43 return 111; 
    54} 
     5 
     6void shutdown() 
     7{ 
     8    volatile long *p = (void*)0xc02200a0; 
     9         
     10    asm( 
     11         "MRS     R1, CPSR\n" 
     12         "AND     R0, R1, #0x80\n" 
     13         "ORR     R1, R1, #0x80\n" 
     14         "MSR     CPSR_cf, R1\n" 
     15         :::"r1","r0"); 
     16         
     17    *p = 0x44; 
     18 
     19    while(1); 
     20} 
     21 
     22#define LED_PR 0xc0220084 
     23void debug_led(int state) 
     24{ 
     25    volatile long *p=(void*)LED_PR; 
     26    if (state) 
     27        p[0]=0x46; 
     28    else 
     29        p[0]=0x44; 
     30} 
     31 
     32#define LED_AF 0xc0220080 
     33void __attribute__((weak)) camera_set_led(int led, int state, int bright) 
     34{ 
     35  int leds[] = {12,16,4,8,4,0,4}; 
     36  if(led < 4 || led > 10 || led == 6) return; 
     37  volatile long *p=(void*)LED_AF + leds[led-4]; 
     38    if (state) 
     39        p[0]=0x46; 
     40    else 
     41        p[0]=0x44; 
     42} 
  • trunk/platform/a460/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/a460/lib.c

    r515 r1663  
    1 #include "../generic/lib.c" 
    21 
    32int get_flash_params_count(void){ 
    43 return 111; 
    54} 
     5 
     6void shutdown() 
     7{ 
     8    volatile long *p = (void*)0xc02200a0; 
     9         
     10    asm( 
     11         "MRS     R1, CPSR\n" 
     12         "AND     R0, R1, #0x80\n" 
     13         "ORR     R1, R1, #0x80\n" 
     14         "MSR     CPSR_cf, R1\n" 
     15         :::"r1","r0"); 
     16         
     17    *p = 0x44; 
     18 
     19    while(1); 
     20} 
     21 
     22#define LED_PR 0xc0220084 
     23void debug_led(int state) 
     24{ 
     25    volatile long *p=(void*)LED_PR; 
     26    if (state) 
     27        p[0]=0x46; 
     28    else 
     29        p[0]=0x44; 
     30} 
     31 
     32#define LED_AF 0xc0220080 
     33void __attribute__((weak)) camera_set_led(int led, int state, int bright) 
     34{ 
     35  int leds[] = {12,16,4,8,4,0,4}; 
     36  if(led < 4 || led > 10 || led == 6) return; 
     37  volatile long *p=(void*)LED_AF + leds[led-4]; 
     38    if (state) 
     39        p[0]=0x46; 
     40    else 
     41        p[0]=0x44; 
     42} 
  • trunk/platform/a530/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/a540/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/a540/lib.c

    r515 r1663  
    1 #include "../generic/lib.c" 
    21 
    32int get_flash_params_count(void){ // from 710 added  
    43 return 108; //seems to be ok 
    54}  
     5 
     6void shutdown() 
     7{ 
     8    volatile long *p = (void*)0xc02200a0; 
     9         
     10    asm( 
     11         "MRS     R1, CPSR\n" 
     12         "AND     R0, R1, #0x80\n" 
     13         "ORR     R1, R1, #0x80\n" 
     14         "MSR     CPSR_cf, R1\n" 
     15         :::"r1","r0"); 
     16         
     17    *p = 0x44; 
     18 
     19    while(1); 
     20} 
     21 
     22#define LED_PR 0xc0220084 
     23void debug_led(int state) 
     24{ 
     25    volatile long *p=(void*)LED_PR; 
     26    if (state) 
     27        p[0]=0x46; 
     28    else 
     29        p[0]=0x44; 
     30} 
     31 
     32#define LED_AF 0xc0220080 
     33void __attribute__((weak)) camera_set_led(int led, int state, int bright) 
     34{ 
     35  int leds[] = {12,16,4,8,4,0,4}; 
     36  if(led < 4 || led > 10 || led == 6) return; 
     37  volatile long *p=(void*)LED_AF + leds[led-4]; 
     38    if (state) 
     39        p[0]=0x46; 
     40    else 
     41        p[0]=0x44; 
     42} 
  • trunk/platform/a550/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/a550/lib.c

    r515 r1663  
    1 #include "../generic/lib.c" 
    21 
    32int get_flash_params_count(void){ 
    43 return 111; 
    54} 
     5 
     6void shutdown() 
     7{ 
     8    volatile long *p = (void*)0xc02200a0; 
     9         
     10    asm( 
     11         "MRS     R1, CPSR\n" 
     12         "AND     R0, R1, #0x80\n" 
     13         "ORR     R1, R1, #0x80\n" 
     14         "MSR     CPSR_cf, R1\n" 
     15         :::"r1","r0"); 
     16         
     17    *p = 0x44; 
     18 
     19    while(1); 
     20} 
     21 
     22#define LED_PR 0xc0220084 
     23void debug_led(int state) 
     24{ 
     25    volatile long *p=(void*)LED_PR; 
     26    if (state) 
     27        p[0]=0x46; 
     28    else 
     29        p[0]=0x44; 
     30} 
     31 
     32#define LED_AF 0xc0220080 
     33void __attribute__((weak)) camera_set_led(int led, int state, int bright) 
     34{ 
     35  int leds[] = {12,16,4,8,4,0,4}; 
     36  if(led < 4 || led > 10 || led == 6) return; 
     37  volatile long *p=(void*)LED_AF + leds[led-4]; 
     38    if (state) 
     39        p[0]=0x46; 
     40    else 
     41        p[0]=0x44; 
     42} 
  • trunk/platform/a560/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/a570/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/a610/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/a610/lib.c

    r515 r1663  
    1 #include "../generic/lib.c" 
    21 
    32int get_flash_params_count(void){ 
    43 return 94; 
    54} 
     5 
     6void shutdown() 
     7{ 
     8    volatile long *p = (void*)0xc02200a0; 
     9         
     10    asm( 
     11         "MRS     R1, CPSR\n" 
     12         "AND     R0, R1, #0x80\n" 
     13         "ORR     R1, R1, #0x80\n" 
     14         "MSR     CPSR_cf, R1\n" 
     15         :::"r1","r0"); 
     16         
     17    *p = 0x44; 
     18 
     19    while(1); 
     20} 
     21 
     22#define LED_PR 0xc0220084 
     23void debug_led(int state) 
     24{ 
     25    volatile long *p=(void*)LED_PR; 
     26    if (state) 
     27        p[0]=0x46; 
     28    else 
     29        p[0]=0x44; 
     30} 
     31 
     32#define LED_AF 0xc0220080 
     33void __attribute__((weak)) camera_set_led(int led, int state, int bright) 
     34{ 
     35  int leds[] = {12,16,4,8,4,0,4}; 
     36  if(led < 4 || led > 10 || led == 6) return; 
     37  volatile long *p=(void*)LED_AF + leds[led-4]; 
     38    if (state) 
     39        p[0]=0x46; 
     40    else 
     41        p[0]=0x44; 
     42} 
  • trunk/platform/a620/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/a620/lib.c

    r515 r1663  
    1 #include "../generic/lib.c" 
    21 
    32int get_flash_params_count(void){ 
    43 return 94; 
    54} 
     5 
     6void shutdown() 
     7{ 
     8    volatile long *p = (void*)0xc02200a0; 
     9         
     10    asm( 
     11         "MRS     R1, CPSR\n" 
     12         "AND     R0, R1, #0x80\n" 
     13         "ORR     R1, R1, #0x80\n" 
     14         "MSR     CPSR_cf, R1\n" 
     15         :::"r1","r0"); 
     16         
     17    *p = 0x44; 
     18 
     19    while(1); 
     20} 
     21 
     22#define LED_PR 0xc0220084 
     23void debug_led(int state) 
     24{ 
     25    volatile long *p=(void*)LED_PR; 
     26    if (state) 
     27        p[0]=0x46; 
     28    else 
     29        p[0]=0x44; 
     30} 
     31 
     32#define LED_AF 0xc0220080 
     33void __attribute__((weak)) camera_set_led(int led, int state, int bright) 
     34{ 
     35  int leds[] = {12,16,4,8,4,0,4}; 
     36  if(led < 4 || led > 10 || led == 6) return; 
     37  volatile long *p=(void*)LED_AF + leds[led-4]; 
     38    if (state) 
     39        p[0]=0x46; 
     40    else 
     41        p[0]=0x44; 
     42} 
  • trunk/platform/a630/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/a630/lib.c

    r515 r1663  
    1 #include "../generic/lib.c" 
    21 
    32int get_flash_params_count(void){ 
    43 return 110; 
    54} 
     5 
     6void shutdown() 
     7{ 
     8    volatile long *p = (void*)0xc02200a0; 
     9         
     10    asm( 
     11         "MRS     R1, CPSR\n" 
     12         "AND     R0, R1, #0x80\n" 
     13         "ORR     R1, R1, #0x80\n" 
     14         "MSR     CPSR_cf, R1\n" 
     15         :::"r1","r0"); 
     16         
     17    *p = 0x44; 
     18 
     19    while(1); 
     20} 
     21 
     22#define LED_PR 0xc0220084 
     23void debug_led(int state) 
     24{ 
     25    volatile long *p=(void*)LED_PR; 
     26    if (state) 
     27        p[0]=0x46; 
     28    else 
     29        p[0]=0x44; 
     30} 
     31 
     32#define LED_AF 0xc0220080 
     33void __attribute__((weak)) camera_set_led(int led, int state, int bright) 
     34{ 
     35  int leds[] = {12,16,4,8,4,0,4}; 
     36  if(led < 4 || led > 10 || led == 6) return; 
     37  volatile long *p=(void*)LED_AF + leds[led-4]; 
     38    if (state) 
     39        p[0]=0x46; 
     40    else 
     41        p[0]=0x44; 
     42} 
  • trunk/platform/a640/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/a640/lib.c

    r515 r1663  
    1 #include "../generic/lib.c" 
    21 
    32int get_flash_params_count(void){ 
    43 return 110; 
    54} 
     5 
     6void shutdown() 
     7{ 
     8    volatile long *p = (void*)0xc02200a0; 
     9         
     10    asm( 
     11         "MRS     R1, CPSR\n" 
     12         "AND     R0, R1, #0x80\n" 
     13         "ORR     R1, R1, #0x80\n" 
     14         "MSR     CPSR_cf, R1\n" 
     15         :::"r1","r0"); 
     16         
     17    *p = 0x44; 
     18 
     19    while(1); 
     20} 
     21 
     22#define LED_PR 0xc0220084 
     23void debug_led(int state) 
     24{ 
     25    volatile long *p=(void*)LED_PR; 
     26    if (state) 
     27        p[0]=0x46; 
     28    else 
     29        p[0]=0x44; 
     30} 
     31 
     32#define LED_AF 0xc0220080 
     33void __attribute__((weak)) camera_set_led(int led, int state, int bright) 
     34{ 
     35  int leds[] = {12,16,4,8,4,0,4}; 
     36  if(led < 4 || led > 10 || led == 6) return; 
     37  volatile long *p=(void*)LED_AF + leds[led-4]; 
     38    if (state) 
     39        p[0]=0x46; 
     40    else 
     41        p[0]=0x44; 
     42} 
  • trunk/platform/a700/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
     
    2424        rm -f $(OBJS) libplatform.a 
    2525 
    26  
  • trunk/platform/a700/lib.c

    r515 r1663  
    1 #include "../generic/lib.c" 
    21 
    32int get_flash_params_count(void){ 
    43 return 108; 
    54} 
     5 
     6void shutdown() 
     7{ 
     8    volatile long *p = (void*)0xc02200a0; 
     9         
     10    asm( 
     11         "MRS     R1, CPSR\n" 
     12         "AND     R0, R1, #0x80\n" 
     13         "ORR     R1, R1, #0x80\n" 
     14         "MSR     CPSR_cf, R1\n" 
     15         :::"r1","r0"); 
     16         
     17    *p = 0x44; 
     18 
     19    while(1); 
     20} 
     21 
     22#define LED_PR 0xc0220084 
     23void debug_led(int state) 
     24{ 
     25    volatile long *p=(void*)LED_PR; 
     26    if (state) 
     27        p[0]=0x46; 
     28    else 
     29        p[0]=0x44; 
     30} 
     31 
     32#define LED_AF 0xc0220080 
     33void __attribute__((weak)) camera_set_led(int led, int state, int bright) 
     34{ 
     35  int leds[] = {12,16,4,8,4,0,4}; 
     36  if(led < 4 || led > 10 || led == 6) return; 
     37  volatile long *p=(void*)LED_AF + leds[led-4]; 
     38    if (state) 
     39        p[0]=0x46; 
     40    else 
     41        p[0]=0x44; 
     42} 
  • trunk/platform/a710/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/a710/lib.c

    r515 r1663  
    1 #include "../generic/lib.c" 
    21 
    32int get_flash_params_count(void){ 
    43 return 110; 
    54} 
     5 
     6void shutdown() 
     7{ 
     8    volatile long *p = (void*)0xc02200a0; 
     9         
     10    asm( 
     11         "MRS     R1, CPSR\n" 
     12         "AND     R0, R1, #0x80\n" 
     13         "ORR     R1, R1, #0x80\n" 
     14         "MSR     CPSR_cf, R1\n" 
     15         :::"r1","r0"); 
     16         
     17    *p = 0x44; 
     18 
     19    while(1); 
     20} 
     21 
     22#define LED_PR 0xc0220084 
     23void debug_led(int state) 
     24{ 
     25    volatile long *p=(void*)LED_PR; 
     26    if (state) 
     27        p[0]=0x46; 
     28    else 
     29        p[0]=0x44; 
     30} 
     31 
     32#define LED_AF 0xc0220080 
     33void __attribute__((weak)) camera_set_led(int led, int state, int bright) 
     34{ 
     35  int leds[] = {12,16,4,8,4,0,4}; 
     36  if(led < 4 || led > 10 || led == 6) return; 
     37  volatile long *p=(void*)LED_AF + leds[led-4]; 
     38    if (state) 
     39        p[0]=0x46; 
     40    else 
     41        p[0]=0x44; 
     42} 
  • trunk/platform/d10/platform_camera.h

    r1658 r1663  
    4545    #undef  CAM_HAS_USER_TV_MODES 
    4646    #define CAM_SHOW_OSD_IN_SHOOT_MENU      1 
    47     #define CAM_DETECT_SCREEN_ERASE               1 
     47 
    4848    // TODO this doesn't seem to be working 
    4949    #define CAM_AF_SCAN_DURING_VIDEO_RECORD 1 
  • trunk/platform/g10/platform_camera.h

    r1658 r1663  
    104104                                                    // Used to enabled bracketing in custom timer, required on many recent cameras 
    105105                                                    // see http://chdk.setepontos.com/index.php/topic,3994.405.html 
    106          
    107         #define CAM_DETECT_SCREEN_ERASE 1                               // http://chdk.setepontos.com/index.php?topic=6705.msg71062#msg71062     
     106 
     107    #define CAM_FIRMWARE_MEMINFO            1       // Use 'GetMemInfo' to get free memory size. 
    108108 
    109109    #define CAM_USE_COLORED_ICONS               1       // Enable using the CHDK-DE colored icons. 
  • trunk/platform/g12/platform_camera.h

    r1656 r1663  
    4747    #define CAM_UNCACHED_BIT                0x40000000  // S90 @FF8875FC(via ExMem.FreeCacheable) 
    4848    #define CAM_SHOW_OSD_IN_SHOOT_MENU      1 
    49     #define CAM_DETECT_SCREEN_ERASE         1   // Turn on guard pixels to detect screen erase and redraw CHDK buttons and menus 
    5049 
    5150    #undef DEFAULT_RAW_EXT 
  • trunk/platform/g7/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/g9/platform_camera.h

    r1656 r1663  
    3232    #define CAM_AF_SCAN_DURING_VIDEO_RECORD 1 
    3333    #define CAM_HAS_JOGDIAL                 1 
    34         // #define CAM_CONSOLE_LOG_ENABLED                      1 
    3534    #define CAM_BRACKETING                  1 
    3635    #define CAM_MULTIPART                   1 
  • trunk/platform/generic/lib.c

    r1023 r1663  
    11#include "platform.h" 
    2  
    3 void shutdown() 
    4 { 
    5     volatile long *p = (void*)0xc02200a0; 
    6          
    7     asm( 
    8          "MRS     R1, CPSR\n" 
    9          "AND     R0, R1, #0x80\n" 
    10          "ORR     R1, R1, #0x80\n" 
    11          "MSR     CPSR_cf, R1\n" 
    12          :::"r1","r0"); 
    13          
    14     *p = 0x44; 
    15  
    16     while(1); 
    17 } 
    18  
    19  
    20 #define LED_PR 0xc0220084 
    21  
    22 void debug_led(int state) 
    23 { 
    24     volatile long *p=(void*)LED_PR; 
    25     if (state) 
    26         p[0]=0x46; 
    27     else 
    28         p[0]=0x44; 
    29 } 
    30 #define LED_AF 0xc0220080 
    31  
    32 void __attribute__((weak)) camera_set_led(int led, int state, int bright) 
    33  
    34 { 
    35   int leds[] = {12,16,4,8,4,0,4}; 
    36   if(led < 4 || led > 10 || led == 6) return; 
    37   volatile long *p=(void*)LED_AF + leds[led-4]; 
    38     if (state) 
    39         p[0]=0x46; 
    40     else 
    41         p[0]=0x44; 
    42 } 
  • trunk/platform/ixus1000_sd4500/platform_camera.h

    r1656 r1663  
    122122   #define CAM_AF_SCAN_DURING_VIDEO_RECORD  1 
    123123 
    124    #define CAM_DETECT_SCREEN_ERASE 1                         // http://chdk.setepontos.com/index.php?topic=6705.msg71062#msg71062        
    125     
    126124   #define CAM_STARTUP_CRASH_FILE_OPEN_FIX  1     // enable workaround for camera crash at startup when opening the conf / font files 
    127125                                                    // see http://chdk.setepontos.com/index.php?topic=6179.0 
  • trunk/platform/ixus100_sd780/platform_camera.h

    r1656 r1663  
    109109                                                // Used to enabled bracketing in custom timer, required on many recent cameras 
    110110                                                // see http://chdk.setepontos.com/index.php/topic,3994.405.html 
    111                                                                                                  
    112         #define CAM_DETECT_SCREEN_ERASE 1                       // http://chdk.setepontos.com/index.php?topic=6705.msg71062#msg71062     
    113  
    114111        #define REMOTE_SYNC_STATUS_LED  0xC0220128              // specifies an LED that turns on while camera waits for USB remote to sync 
    115112 
  • trunk/platform/ixus120_sd940/platform_camera.h

    r1656 r1663  
    102102                                                // see http://chdk.setepontos.com/index.php/topic,3994.405.html 
    103103 
    104         #define CAM_DETECT_SCREEN_ERASE 1                       // http://chdk.setepontos.com/index.php?topic=6705.msg71062#msg71062     
    105                                          
    106104    #define CAM_USE_COLORED_ICONS  1       // Enable using the CHDK-DE colored icons. 
    107105 
  • trunk/platform/ixus200_sd980/platform_camera.h

    r1656 r1663  
    9090                                                    // see http://chdk.setepontos.com/index.php?topic=6179.0 
    9191 
    92     // #define CAM_DATE_FOLDER_NAMING          0x100 //Value found in the last function, which is called in GetImageFolder. (first compare) 
     92    #define CAM_DATE_FOLDER_NAMING          0x100 //Value found in the last function, which is called in GetImageFolder. (first compare) 
    9393 
    9494    #define CAM_DRIVE_MODE_FROM_TIMER_MODE  1   // use PROPCASE_TIMER_MODE to check for multiple shot custom timer. 
  • trunk/platform/ixus200_sd980/shooting.c

    r1632 r1663  
    126126} 
    127127 
     128#if defined(CAM_DATE_FOLDER_NAMING) 
     129void get_target_dir_name(char *out) { 
     130    extern void _GetImageFolder(char*,int,int,int); 
     131    out[0] = 'A'; 
     132    _GetImageFolder(out+1,get_file_next_counter(),CAM_DATE_FOLDER_NAMING,time(NULL)); 
     133    out[15] = '\0'; 
     134} 
     135#else 
    128136long get_target_dir_num() { 
    129         long n; 
     137    long n; 
    130138 
    131         n = get_file_next_counter(); 
    132         n = (n>>18)&0x3FF; 
    133         return n; 
     139    n = get_file_next_counter(); 
     140    n = (n>>18)&0x3FF; 
     141    return n; 
    134142} 
     143#endif 
    135144 
    136145int circle_of_confusion = 5; 
  • trunk/platform/ixus220_elph300hs/platform_camera.h

    r1656 r1663  
    9494 
    9595    #define CAM_HAS_CMOS                    1 
    96  
    97         #define CAM_DETECT_SCREEN_ERASE                 1 
    9896         
    9997        #define REMOTE_SYNC_STATUS_LED  0xC0220130              // specifies an LED that turns on while camera waits for USB remote to sync 
  • trunk/platform/ixus300_sd4000/kbd.c

    r1568 r1663  
    269269} 
    270270 
    271 // Base values in playback 
     271// Base values in Play Mode 
    272272// physw_status[0] = 0x800C91F      // 1 
    273273// physw_status[1] = 0xFFE          // 2 (Mode Switch: Auto) 
     
    279279// physw_status[2] 0x20000 SD-Card READONLY 
    280280static KeyMap keymap[] = { 
    281     { 0, KEY_UP         , 0x00000004 },    // finsig2 
    282     { 0, KEY_DOWN       , 0x00000001 },    // finsig2 
    283     { 0, KEY_LEFT       , 0x00000008 },    // finsig2 
    284     { 0, KEY_RIGHT      , 0x00000002 },    // finsig2 
    285     { 1, KEY_SET        , 0x00000040 },    // finsig2 
    286     { 0, KEY_SHOOT_FULL , 0x00000900 },    // 0x00000800(KEY_SHOOT_FULL) + 0x00000100 (KEY_SHOOT_HALF), ToDo: still not shure if correct (related to problems with shoot_full?), finsig2 
    287     { 0, KEY_SHOOT_FULL_ONLY , 0x00000800 }, 
    288     { 0, KEY_SHOOT_HALF , 0x00000100 },    // finsig2 
    289     { 1, KEY_ZOOM_IN    , 0x00000010 },    // finsig2 
    290     { 1, KEY_ZOOM_OUT   , 0x00000020 },    // finsig2 
    291     { 1, KEY_MENU       , 0x00000080 },    // finsig2 
     281    { 0, KEY_UP         , 0x00000004 }, 
     282    { 0, KEY_DOWN       , 0x00000001 }, 
     283    { 0, KEY_LEFT       , 0x00000008 }, 
     284    { 0, KEY_RIGHT      , 0x00000002 }, 
     285    { 1, KEY_SET        , 0x00000040 }, 
     286    { 0, KEY_SHOOT_FULL , 0x00000900 },   // 0x00000800 (KEY_SHOOT_FULL_ONLY) + 0x00000100 (KEY_SHOOT_HALF) 
     287    { 0, KEY_SHOOT_FULL_ONLY, 0x00000800 }, 
     288    { 0, KEY_SHOOT_HALF , 0x00000100 }, 
     289    { 1, KEY_ZOOM_IN    , 0x00000010 }, 
     290    { 1, KEY_ZOOM_OUT   , 0x00000020 }, 
     291    { 1, KEY_MENU       , 0x00000080 }, 
    292292    { 0, KEY_PRINT      , 0x0000000C },   // ALT Key workaround: KEY_UP + KEY_LEFT (camera has no print key) 
    293293    { 0, 0, 0 } 
  • trunk/platform/ixus300_sd4000/lib.c

    r1642 r1663  
    4848//ROM:FF997634                 CMP     R4, #0x94 <--- 
    4949int get_flash_params_count(void) { 
    50     return 148;     // 0x94 = 148, finsig2 
     50    return 148;     // 0x94 = 148 
    5151} 
    5252 
  • trunk/platform/ixus300_sd4000/platform_camera.h

    r1656 r1663  
    135135     
    136136    #define CAM_STARTUP_CRASH_FILE_OPEN_FIX 1     // cameras intermittently crashing on startup with "ASSERT!! FsIoNotify.c Line 457   Task name: SpyTask" in ROMLOG, ToDo: working ? 
    137  
    138     #define CAM_DETECT_SCREEN_ERASE     1           // ToDo: CHDK OSD flicker more often, OSD redrawn is more reliable 
  • trunk/platform/ixus300_sd4000/sub/100d/lib.c

    r1377 r1663  
    6363***/ 
    6464long hook_raw_size() { 
    65     return 0xF32880;    // 15935616, finsig2 
     65    return 0xF32880;    // 15935616 
    6666} 
    6767 
     
    110110// ROM:FF919AD4    LDR     R0, =0x40471000 <--- 
    111111void *vid_get_bitmap_fb() { 
    112     return (void*)0x40471000;    // ROM:FF919AD4 or ROM:FFA347DC or ROM:FF85B154, finsig2 
     112    return (void*)0x40471000;    // ROM:FF919AD4 or ROM:FFA347DC or ROM:FF85B154 
    113113} 
    114114 
     
    121121***/ 
    122122void *vid_get_viewport_fb() { 
    123     return (void*)0x40587700;    // ROM:FFB25ED8 or ROM:FFB25DFC, finsig2 
     123    return (void*)0x40587700;    // ROM:FFB25ED8 or ROM:FFB25DFC 
    124124} 
    125125 
     
    127127// possible future use 
    128128void *vid_get_viewport_fb_d() { 
    129     return (void*)(*(int*)0x2AA4);    // ROM:FF874770 0x2A50 + 0x54, value changes between 0x404ef900 and 0x40f210a0 in playback, record ist always 0x40f210a0 
     129    return (void*)(*(int*)0x2AA4);    // ROM:FF874770 0x2A50 + 0x54 
    130130} 
    131131 
     
    134134// ROM:FFA04F84    ADR     R1, a9999       ; "9999" 
    135135char *camera_jpeg_count_str() { 
    136     return (char*)0xA15B8;    // finsig2 
     136    return (char*)0xA15B8; 
    137137} 
  • trunk/platform/ixus310_elph500hs/platform_camera.h

    r1656 r1663  
    6767                                                // stop the palette from overlapping the on screen buttons on each side 
    6868    #undef  CAM_DISP_ALT_TEXT                    // Turn off <ALT> at bottom of screen in Alt mode - changes button color instead 
    69     #define CAM_DETECT_SCREEN_ERASE         1   // Turn on guard pixels to detect screen erase and redraw CHDK buttons and menus 
     69 
    7070    #define CAM_TOUCHSCREEN_UI              1       // Enable touch screen U/I 
    7171 
  • trunk/platform/ixus40_sd300/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/ixus50_sd400/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/ixus55_sd450/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/ixus60_sd600/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/ixus60_sd600/lib.c

    r515 r1663  
    1 #include "../generic/lib.c" 
    21 
    32int get_flash_params_count(void){ 
    43 return 90; 
    54} 
     5 
     6void shutdown() 
     7{ 
     8    volatile long *p = (void*)0xc02200a0; 
     9         
     10    asm( 
     11         "MRS     R1, CPSR\n" 
     12         "AND     R0, R1, #0x80\n" 
     13         "ORR     R1, R1, #0x80\n" 
     14         "MSR     CPSR_cf, R1\n" 
     15         :::"r1","r0"); 
     16         
     17    *p = 0x44; 
     18 
     19    while(1); 
     20} 
     21 
     22#define LED_PR 0xc0220084 
     23void debug_led(int state) 
     24{ 
     25    volatile long *p=(void*)LED_PR; 
     26    if (state) 
     27        p[0]=0x46; 
     28    else 
     29        p[0]=0x44; 
     30} 
     31 
     32#define LED_AF 0xc0220080 
     33void __attribute__((weak)) camera_set_led(int led, int state, int bright) 
     34{ 
     35  int leds[] = {12,16,4,8,4,0,4}; 
     36  if(led < 4 || led > 10 || led == 6) return; 
     37  volatile long *p=(void*)LED_AF + leds[led-4]; 
     38    if (state) 
     39        p[0]=0x46; 
     40    else 
     41        p[0]=0x44; 
     42} 
  • trunk/platform/ixus65_sd630/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/ixus65_sd630/lib.c

    r515 r1663  
    1 #include "../generic/lib.c" 
    21 
    32int get_flash_params_count(void){ 
    43 return 90; 
    54} 
     5 
     6void shutdown() 
     7{ 
     8    volatile long *p = (void*)0xc02200a0; 
     9         
     10    asm( 
     11         "MRS     R1, CPSR\n" 
     12         "AND     R0, R1, #0x80\n" 
     13         "ORR     R1, R1, #0x80\n" 
     14         "MSR     CPSR_cf, R1\n" 
     15         :::"r1","r0"); 
     16         
     17    *p = 0x44; 
     18 
     19    while(1); 
     20} 
     21 
     22#define LED_PR 0xc0220084 
     23void debug_led(int state) 
     24{ 
     25    volatile long *p=(void*)LED_PR; 
     26    if (state) 
     27        p[0]=0x46; 
     28    else 
     29        p[0]=0x44; 
     30} 
     31 
     32#define LED_AF 0xc0220080 
     33void __attribute__((weak)) camera_set_led(int led, int state, int bright) 
     34{ 
     35  int leds[] = {12,16,4,8,4,0,4}; 
     36  if(led < 4 || led > 10 || led == 6) return; 
     37  volatile long *p=(void*)LED_AF + leds[led-4]; 
     38    if (state) 
     39        p[0]=0x46; 
     40    else 
     41        p[0]=0x44; 
     42} 
  • trunk/platform/ixus70_sd1000/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/ixus750_sd550/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/ixus750_sd550/sub/100h/lib.c

    r1527 r1663  
    5555    return (char*)0x72588; 
    5656} 
    57  
    58 void _EnterToCompensationEVF() {} // Dummy function. To be removed after stub is found. See stubs_entry_2.S. 
    59 void _ExitFromCompensationEVF() {} // Dummy function. To be removed after stub is found. See stubs_entry_2.S. 
  • trunk/platform/ixus750_sd550/sub/100h/stubs_entry_2.S

    r1181 r1663  
    11#include "stubs_asm.h" 
     2#define NULL_SUB 0xFF8118C0 
    23 
    3 NHSTUB(UniqueLedOn, 0xFF82df20) 
    4 NHSTUB(UniqueLedOff, 0xFF82df64) 
    5 NHSTUB(free, 0xFFAD6A08) 
    6 NHSTUB(VbattGet, 0xFF82c54c) 
     4// Override stubs_entry.S 
     5NHSTUB(EnterToCompensationEVF,      NULL_SUB) 
     6NHSTUB(ExitFromCompensationEVF,     NULL_SUB) 
     7NHSTUB(VbattGet,                    0xFF82c54c) 
     8NHSTUB(WriteSDCard,                 0xFF87ED54) 
     9NHSTUB(free,                        0xFFAD6A08) 
    710 
    8 NHSTUB(GetDrive_ClusterSize, 0xFF86F2EC) 
    9 NHSTUB(GetDrive_TotalClusters, 0xFF86F328) 
    10 NHSTUB(GetDrive_FreeClusters, 0xFF86F364) 
    11 NHSTUB(WriteSDCard, 0xFF87ED54) 
    12 NHSTUB(iosDevFind, 0xFFAD4B68) 
     11// These don't exist 
     12NHSTUB(SetZoomActuatorSpeedPercent, NULL_SUB) 
    1313 
    14 //null stubs 
    15 NHSTUB(SetZoomActuatorSpeedPercent, 0xFF82e080) 
    16 NHSTUB(GetBatteryTemperature, 0xFF82D5AC) 
    17 NHSTUB(GetCCDTemperature, 0xFF82D598) 
    18 NHSTUB(GetOpticalTemperature, 0xFF82D584) 
    19 NHSTUB(PT_PlaySound, 0xFF957E18) 
    20  
    21  
    22  
    23  
    24  
    25 //NHSTUB(EnterToCompensationEVF, 0xFFFFFFFF) // Stub not found. When found, remove dummy function from lib.c. 
    26 //NHSTUB(ExitFromCompensationEVF, 0xFFFFFFFF) // Stub not found. When found, remove dummy function from lib.c. 
    27 NHSTUB(DoAFLock, 0xff94ae54) 
    28 NHSTUB(UnlockAF, 0xff94ae94) 
    29 NHSTUB(SetScriptMode,0xFF95E63C) // by find_eventproc name @ 0xFF983394 
     14// Additional 
     15NHSTUB(SetScriptMode,               0xFF95E63C) 
     16NHSTUB(UniqueLedOn,                 0xFF82df20) 
     17NHSTUB(UniqueLedOff,                0xFF82df64) 
  • trunk/platform/ixus75_sd750/Makefile

    r560 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/ixus800_sd700/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/ixus850_sd800/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/ixus900_sd900/Makefile

    r959 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/ixus950_sd850/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/ixusizoom_sd30/Makefile

    r621 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/ixusizoom_sd30/lib.c

    r621 r1663  
    1 #include "../generic/lib.c" 
    21 
    32int get_flash_params_count(void){ 
    43 return 90; 
    54} 
     5 
     6void shutdown() 
     7{ 
     8    volatile long *p = (void*)0xc02200a0; 
     9         
     10    asm( 
     11         "MRS     R1, CPSR\n" 
     12         "AND     R0, R1, #0x80\n" 
     13         "ORR     R1, R1, #0x80\n" 
     14         "MSR     CPSR_cf, R1\n" 
     15         :::"r1","r0"); 
     16         
     17    *p = 0x44; 
     18 
     19    while(1); 
     20} 
     21 
     22#define LED_PR 0xc0220084 
     23void debug_led(int state) 
     24{ 
     25    volatile long *p=(void*)LED_PR; 
     26    if (state) 
     27        p[0]=0x46; 
     28    else 
     29        p[0]=0x44; 
     30} 
     31 
     32#define LED_AF 0xc0220080 
     33void __attribute__((weak)) camera_set_led(int led, int state, int bright) 
     34{ 
     35  int leds[] = {12,16,4,8,4,0,4}; 
     36  if(led < 4 || led > 10 || led == 6) return; 
     37  volatile long *p=(void*)LED_AF + leds[led-4]; 
     38    if (state) 
     39        p[0]=0x46; 
     40    else 
     41        p[0]=0x44; 
     42} 
  • trunk/platform/s2is/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/s3is/Makefile

    r515 r1663  
    1414 
    1515kbd.o: kbd.c ../generic/kbd.c 
    16 lib.o: lib.c ../generic/lib.c 
     16lib.o: lib.c 
    1717main.o: main.c ../generic/main.c 
    1818shooting.o: shooting.c ../generic/shooting.c 
  • trunk/platform/sx100is/platform_camera.h

    r1656 r1663  
    5959    #define CAM_MULTIPART                   1 
    6060    #define CAM_EXT_TV_RANGE                1 
    61     #define CAM_DETECT_SCREEN_ERASE     1 
    6261         
    6362//      #define REMOTE_SYNC_STATUS_LED  0xC0xxyyyy              // specifies an LED that turns on while camera waits for USB remote to sync 
  • trunk/platform/sx130is/lib.c

    r1642 r1663  
    9393#include "lolevel.h" 
    9494 
    95  
    9695/* 
    9796void vid_bitmap_refresh() 
  • trunk/platform/sx130is/platform_camera.h

    r1656 r1663  
    9393                                                // see http://chdk.setepontos.com/index.php/topic,3994.405.html 
    9494 
    95         #define CAM_DETECT_SCREEN_ERASE     1       // Turn on guard pixels to detect screen erase and redraw CHDK buttons and menus 
    96  
    97  
    9895    #define CAM_USE_COLORED_ICONS       1 
    9996 
  • trunk/platform/sx20/platform_camera.h

    r1658 r1663  
    100100    #undef  CAMERA_MAX_DIST 
    101101    #define CAMERA_MAX_DIST                 66490   // Override max subject distance 
    102  
    103     #define CAM_DETECT_SCREEN_ERASE     1       // Turn on guard pixels to detect screen erase and redraw CHDK buttons and menus 
    104  
    105102//      #define REMOTE_SYNC_STATUS_LED  0xC0xxyyyy              // specifies an LED that turns on while camera waits for USB remote to sync 
    106103         
  • trunk/platform/sx220hs/platform_camera.h

    r1656 r1663  
    2121// don't override them again in here. 
    2222 
    23     #define CAM_DETECT_SCREEN_ERASE         1 
    2423    #define CAM_DISABLE_RAW_IN_LOW_LIGHT_MODE   1 
    2524    #define DNG_VERT_RLE_BADPIXELS          1 
  • trunk/platform/sx230hs/platform_camera.h

    r1656 r1663  
    110110    #define CAM_HAS_GPS                     1 
    111111 
    112         #define CAM_DETECT_SCREEN_ERASE                 1 
    113112 
    114113    #define CAM_USE_COLORED_ICONS           1   // Enable using the CHDK-DE colored icons. 
  • trunk/platform/sx30/platform_camera.h

    r1658 r1663  
    3939    #define CAM_UNCACHED_BIT                0x40000000 
    4040    #define CAM_SHOW_OSD_IN_SHOOT_MENU      1 
    41     #define CAM_DETECT_SCREEN_ERASE         1   // Turn on guard pixels to detect screen erase and redraw CHDK buttons and menus 
    4241 
    4342    #undef DEFAULT_RAW_EXT 
  • trunk/platform/sx40hs/platform_camera.h

    r1658 r1663  
    4242    #undef  CAM_USE_ZOOM_FOR_MF 
    4343    #define CAM_SHOW_OSD_IN_SHOOT_MENU          1 
    44     #define CAM_DETECT_SCREEN_ERASE             1   // Turn on guard pixels to detect screen erase and redraw CHDK buttons and menus 
    4544 
    4645    #undef DEFAULT_RAW_EXT 
Note: See TracChangeset for help on using the changeset viewer.