Assembla home | Assembla project page
 

Changeset 479

Show
Ignore:
Timestamp:
08/12/08 12:52:17 (2 years ago)
Author:
phyrephox
Message:

+ added taskviewer by reyalp http://chdk.setepontos.com/index.php/topic,2110.msg19622.html#msg19622
+ added Fishpeppers Boot Logo from here: http://chdk.setepontos.com/index.php/topic,2122.0.html
+ raw subtract for filebrowser by reyalp - http://chdk.setepontos.com/index.php/topic,2099.msg19362.html#msg19362
* makefile changes:

added several docs in the /docs dir, these are "catted" together during compilation -> one big readme file's gonna be put into the zip. Also includes camera specific notes, if existing (placeholders for now) (thx for helping with this, Hacki).

* Ixus 860is / SD870 - fixed ubasic_set_led (diff provided by FE50)
* patched symboldmod and changed splashscreen a little (diff sent in by CHDKLover)
* added toggle in scripts menu: now the saving of script params can be turned on/off (default: off)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/juciphox/CHDK/LANG/english.lng

    r473 r479  
    121121 79 "Debug" 
    122122 
    123  80 "Show PropCases" 
     123// 80 "Show PropCases" 
     124 80 "Debug data display" 
    124125 81 "PropCase Page" 
    125126 82 "Show Misc. Values" 
    126127 83 "Memory Browser" 
    127  84 "Dump RAM on ALT +/- Press" 
     128// 84 "Dump RAM on ALT +/- Press" 
     129 84 "ALT +/- debug action" 
    128130 85 "Make Card Bootable..." 
    129131 
     
    378380 
    379381272 "Show OSD in Review Mode" 
    380 273 "Show Parameter Data" 
     382//273 "Show Parameter Data" 
     383273 "Task List start" 
    381384 
    382385274 "Subject distance from lens" 
     
    538541400 "Zoom Time-out 0.1s" 
    539542401 "Startup sound" 
     543402 "Raw subtract prefix" 
     544403 "Raw subtract extension" 
     545404 "Subtract input dark value" 
     546405 "Subtract output dark value" 
     547406 "from" 
     548407 "...%d more files" 
     549408 "Subtract" 
     550409 "Sub from marked" 
     551410 "Save params" 
  • branches/juciphox/CHDK/LANG/german.lng

    r473 r479  
    545545400 "Zoom Time-out 0.1s" 
    546546401 "Startup sound" 
     547402 "Raw subtract prefix" 
     548403 "Raw subtract extension" 
     549404 "Subtract input dark value" 
     550405 "Subtract output dark value" 
     551406 "from" 
     552407 "...%d more files" 
     553408 "Subtract" 
     554409 "Sub from marked" 
     555410 "Save params" 
  • branches/juciphox/Makefile

    r473 r479  
    9696        cp $(topdir)bin/$(PLATFORM)-$(PLATFORMSUB).FIR $(topdir)bin/PS.FIR 
    9797        zip -9j $(topdir)bin/$(VER)-$(PLATFORM)-$(PLATFORMSUB)-$(BUILD_NUMBER)_complete.zip $(topdir)bin/PS.FIR > $(DEVNULL) 
    98         zip -9j $(topdir)bin/$(VER)-$(PLATFORM)-$(PLATFORMSUB)-$(BUILD_NUMBER)_complete.zip $(topdir)doc/vxworks/readme.txt 
     98        cat $(topdir)doc/1_intro.txt $(topdir)/platform/$(PLATFORM)/notes.txt $(topdir)doc/2_vxworks.txt $(topdir)doc/3_faq.txt $(topdir)doc/4_urls.txt $(topdir)doc/5_gpl.txt > $(topdir)doc/readme.txt 
     99        zip -9j $(topdir)bin/$(VER)-$(PLATFORM)-$(PLATFORMSUB)-$(BUILD_NUMBER)_complete.zip $(topdir)doc/readme.txt 
    99100        rm -f $(topdir)bin/$(PLATFORM)-$(PLATFORMSUB).FIR 
    100101        rm -f $(topdir)bin/PS.FIR 
    101102  endif 
    102103  ifeq ($(PLATFORMOS),dryos) 
    103         zip -9j $(topdir)bin/$(VER)-$(PLATFORM)-$(PLATFORMSUB)-$(BUILD_NUMBER)_complete.zip $(topdir)doc/dryos/readme.txt 
     104        cat $(topdir)doc/1_intro.txt $(topdir)/platform/$(PLATFORM)/notes.txt $(topdir)doc/2_dryos.txt $(topdir)doc/3_faq.txt $(topdir)doc/4_urls.txt $(topdir)doc/5_gpl.txt > $(topdir)doc/readme.txt 
     105        zip -9j $(topdir)bin/$(VER)-$(PLATFORM)-$(PLATFORMSUB)-$(BUILD_NUMBER)_complete.zip $(topdir)doc/readme.txt 
    104106        #cp $(topdir)bin/$(PLATFORM)-$(PLATFORMSUB).FI2 $(topdir)bin/PS.FI2 
    105107        #zip -9jc $(topdir)bin/$(VER)-$(PLATFORM)-$(PLATFORMSUB)-$(BUILD_NUMBER)_complete.zip $(topdir)bin/PS.FI2 > $(DEVNULL) 
  • branches/juciphox/core/conf.c

    r473 r479  
    5151int debug_vals_show; 
    5252int debug_pardata_show; 
     53 
     54// reyalp: putting these in conf, since the conf values are lookups for them 
     55// prefixes and extentions available for raw images (index with conf.raw_prefix etc) 
     56const char* img_prefixes[NUM_IMG_PREFIXES]={ "IMG_", "CRW_", "SND_" /*, "AUT_", "ETC_","SDR_", "MVI_", "MRK_"*/}; 
     57const char* img_exts[NUM_IMG_EXTS]={ ".JPG", ".CRW", ".CR2", ".THM", ".WAV"/*, ".AVI", ".MRK"*/}; 
     58// ugh 
     59const char *video_bitrate_strings[VIDEO_BITRATE_STEPS]={ "0.25x", "0.5x","0.75x", "1x", "1.25x", "1.5x", "1.75x", "2x", "2.5x", "3x"}; 
    5360 
    5461//------------------------------------------------------------------- 
     
    117124     if (conf.clear_video) 
    118125        { 
    119         conf.video_mode = 0; 
    120         conf.video_quality = 84
    121         conf.video_bitrate = 3
    122     shooting_video_bitrate_change(conf.video_bitrate); 
     126        conf.video_mode = 0; 
     127        conf.video_quality = VIDEO_DEFAULT_QUALITY
     128        conf.video_bitrate = VIDEO_DEFAULT_BITRATE
     129        shooting_video_bitrate_change(conf.video_bitrate); 
    123130        } 
    124131} 
     
    159166    CONF_INFO( 32, conf.ricoh_ca1_mode,         CONF_DEF_VALUE, i:0, NULL), 
    160167    CONF_INFO( 33, conf.flashlight,             CONF_DEF_VALUE, i:0, NULL), 
    161     CONF_INFO( 34, conf.ns_enable_memdump,      CONF_DEF_VALUE, i:0, NULL), 
     168//    CONF_INFO( 34, conf.ns_enable_memdump,      CONF_DEF_VALUE, i:0, NULL), 
     169    CONF_INFO( 34, conf.debug_shortcut_action,  CONF_DEF_VALUE, i:0, NULL), // backwards compatible 
    162170    CONF_INFO( 35, conf.raw_in_dir,             CONF_DEF_VALUE, i:0, NULL), 
    163171    CONF_INFO( 36, conf.raw_prefix,             CONF_DEF_VALUE, i:RAW_PREFIX_CRW, NULL), 
     
    221229 
    222230    CONF_INFO( 99, conf.video_mode,             CONF_DEF_VALUE, i:0, NULL), 
    223     CONF_INFO(100, conf.video_quality,          CONF_DEF_VALUE, i:84,NULL), 
    224     CONF_INFO(101, conf.video_bitrate,          CONF_DEF_VALUE, i:3, conf_change_video_bitrate), 
     231    CONF_INFO(100, conf.video_quality,          CONF_DEF_VALUE, i:VIDEO_DEFAULT_QUALITY,NULL), 
     232    CONF_INFO(101, conf.video_bitrate,          CONF_DEF_VALUE, i:VIDEO_DEFAULT_BITRATE, conf_change_video_bitrate), 
    225233     
    226234    CONF_INFO(102, conf.tv_override_value,      CONF_DEF_VALUE, i:0, NULL),      
     
    346354    CONF_INFO(207, conf.zoom_timeout,           CONF_DEF_VALUE, i:5, NULL), 
    347355        CONF_INFO(208, conf.start_sound,     CONF_DEF_VALUE, i:0, NULL), 
     356    CONF_INFO(209, conf.sub_batch_prefix,  CONF_DEF_VALUE, i:2, NULL), // SND_ 
     357    CONF_INFO(210, conf.sub_batch_ext,  CONF_DEF_VALUE, i:1, NULL), // .CRW 
     358    CONF_INFO(211, conf.sub_in_dark_value,  CONF_DEF_VALUE, i:30, NULL),  
     359    CONF_INFO(212, conf.sub_out_dark_value,  CONF_DEF_VALUE, i:0, NULL),  
     360        CONF_INFO(213, conf.debug_display,     CONF_DEF_VALUE, i:0, NULL), 
     361        CONF_INFO(214, conf.script_param_save,     CONF_DEF_VALUE, i:0, NULL), 
    348362                         
    349363                         
  • branches/juciphox/core/gui.c

    r473 r479  
    3131#include "raw.h" 
    3232#include "curves.h" 
    33  
     33#include "gui_logo.h" 
    3434//------------------------------------------------------------------- 
    3535 
     
    146146static const char* gui_raw_prefix_enum(int change, int arg); 
    147147static const char* gui_raw_ext_enum(int change, int arg); 
     148static const char* gui_sub_batch_prefix_enum(int change, int arg); 
     149static const char* gui_sub_batch_ext_enum(int change, int arg); 
     150 
    148151static const char* gui_raw_nr_enum(int change, int arg); 
    149152static const char* gui_autoiso_shutter_enum(int change, int arg); 
     
    193196static const char* gui_override_disable_enum(int change, int arg); 
    194197static const char* gui_conf_curve_enum(int change, int arg); 
     198static const char* gui_debug_shortcut_enum(int change, int arg); 
     199static const char* gui_debug_display_enum(int change, int arg); 
     200static void gui_debug_shortcut(void); 
     201 
    195202void rinit(); 
    196203 
     
    207214static void cb_zebra_restore_osd(); 
    208215 
     216static int debug_tasklist_start; 
     217static int debug_display_direction=1; 
    209218// Menu definition 
    210219//------------------------------------------------------------------- 
     
    236245    {0x5d,LANG_MENU_SCRIPT_DEFAULT_VAL,     MENUITEM_PROC,                      (int*)gui_load_script_default }, 
    237246    {0x5e,LANG_MENU_SCRIPT_PARAM_SET,     MENUITEM_ENUM,                         (int*)gui_script_param_set_enum }, 
     247    {0x5c,LANG_MENU_SCRIPT_PARAM_SAVE,             MENUITEM_BOOL,                    &conf.script_param_save              },     
    238248    {0x0,(int)script_title,                 MENUITEM_SEPARATOR }, 
    239249//    {0x0,LANG_MENU_SCRIPT_CURRENT,          MENUITEM_SEPARATOR }, 
     
    317327 
    318328static CMenuItem debug_submenu_items[] = { 
    319     {0x5c,LANG_MENU_DEBUG_SHOW_PROPCASES,    MENUITEM_BOOL,          &debug_propcase_show }, 
    320     {0x5c,LANG_MENU_DEBUG_SHOW_PARAMETER_DATA,        MENUITEM_BOOL,          &debug_pardata_show }, 
     329    {0x5c,LANG_MENU_DEBUG_DISPLAY,           MENUITEM_ENUM,          (int*)gui_debug_display_enum }, 
    321330    {0x2a,LANG_MENU_DEBUG_PROPCASE_PAGE,     MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX,   &debug_propcase_page, MENU_MINMAX(0, 128) }, 
     331    {0x2a,LANG_MENU_DEBUG_TASKLIST_START,    MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX,   &debug_tasklist_start, MENU_MINMAX(0, 63) }, 
    322332    {0x5c,LANG_MENU_DEBUG_SHOW_MISC_VALS,    MENUITEM_BOOL,          &debug_vals_show }, 
    323333    {0x2a,LANG_MENU_DEBUG_MEMORY_BROWSER,    MENUITEM_PROC,          (int*)gui_draw_debug }, 
    324334    {0x2a,LANG_MENU_DEBUG_BENCHMARK,         MENUITEM_PROC,          (int*)gui_draw_bench }, 
    325     {0x5c,LANG_MENU_DEBUG_DUMP_RAM,          MENUITEM_BOOL,          &conf.ns_enable_memdump }, 
     335    {0x5c,LANG_MENU_DEBUG_SHORTCUT_ACTION,   MENUITEM_ENUM,          (int*)gui_debug_shortcut_enum }, 
    326336    {0x33,LANG_MENU_DEBUG_MAKE_BOOTABLE,     MENUITEM_PROC,             (int*)gui_menuproc_mkbootdisk }, 
    327337#if CAM_MULTIPART 
     
    661671    {0x5f,LANG_MENU_RAW_PREFIX,              MENUITEM_ENUM,      (int*)gui_raw_prefix_enum }, 
    662672    {0x5f,LANG_MENU_RAW_EXTENSION,           MENUITEM_ENUM,      (int*)gui_raw_ext_enum }, 
     673    {0x5f,LANG_MENU_SUB_PREFIX,              MENUITEM_ENUM,      (int*)gui_sub_batch_prefix_enum }, 
     674    {0x5f,LANG_MENU_SUB_EXTENSION,           MENUITEM_ENUM,      (int*)gui_sub_batch_ext_enum }, 
     675    {0x60,LANG_MENU_SUB_IN_DARK_VALUE,       MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX,  &conf.sub_in_dark_value, MENU_MINMAX(0, 1023)}, 
     676    {0x60,LANG_MENU_SUB_OUT_DARK_VALUE,      MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX,  &conf.sub_out_dark_value, MENU_MINMAX(0, 1023)}, 
    663677    {0x2a,LANG_MENU_RAW_DEVELOP,             MENUITEM_PROC,      (int*)gui_raw_develop }, 
    664678    {0x5c,LANG_MENU_BAD_PIXEL_REMOVAL,       MENUITEM_ENUM,      (int*)gui_bad_pixel_enum }, 
     
    814828        if (change != 0) 
    815829        { 
     830                        if (conf.script_param_save) 
     831                                { 
    816832        save_params_values(0); 
    817          
     833      } 
    818834                conf.script_param_set += change; 
    819835                if (conf.script_param_set < 0) conf.script_param_set = (sizeof(modes)/sizeof(modes[0]))-1; else 
     
    911927//------------------------------------------------------------------- 
    912928const char* gui_raw_prefix_enum(int change, int arg) { 
    913     static const char* prefixes[]={ "IMG_", "CRW_", "SND_"}; 
    914  
    915929    conf.raw_prefix+=change; 
    916930    if (conf.raw_prefix<0) 
    917         conf.raw_prefix=(sizeof(prefixes)/sizeof(prefixes[0]))-1; 
    918     else if (conf.raw_prefix>=(sizeof(prefixes)/sizeof(prefixes[0]))
     931        conf.raw_prefix=NUM_IMG_PREFIXES-1; 
     932    else if (conf.raw_prefix>=NUM_IMG_PREFIXES
    919933        conf.raw_prefix=0; 
    920934 
    921     return prefixes[conf.raw_prefix]; 
     935    return img_prefixes[conf.raw_prefix]; 
    922936} 
    923937 
    924938//------------------------------------------------------------------- 
    925939const char* gui_raw_ext_enum(int change, int arg) { 
    926     static const char* exts[]={ ".JPG", ".CRW", ".CR2", ".THM", ".WAV"}; 
    927  
    928940    conf.raw_ext+=change; 
    929941    if (conf.raw_ext<0) 
    930         conf.raw_ext=(sizeof(exts)/sizeof(exts[0]))-1; 
    931     else if (conf.raw_ext>=(sizeof(exts)/sizeof(exts[0]))
     942        conf.raw_ext=NUM_IMG_EXTS-1; 
     943    else if (conf.raw_ext>=NUM_IMG_EXTS
    932944        conf.raw_ext=0; 
    933945 
    934     return exts[conf.raw_ext]; 
     946    return img_exts[conf.raw_ext]; 
     947
     948 
     949//------------------------------------------------------------------- 
     950const char* gui_sub_batch_prefix_enum(int change, int arg) { 
     951    conf.sub_batch_prefix+=change; 
     952    if (conf.sub_batch_prefix<0) 
     953        conf.sub_batch_prefix=NUM_IMG_PREFIXES-1; 
     954    else if (conf.sub_batch_prefix>=NUM_IMG_PREFIXES) 
     955        conf.sub_batch_prefix=0; 
     956 
     957    return img_prefixes[conf.sub_batch_prefix]; 
     958
     959 
     960//------------------------------------------------------------------- 
     961const char* gui_sub_batch_ext_enum(int change, int arg) { 
     962    conf.sub_batch_ext+=change; 
     963    if (conf.sub_batch_ext<0) 
     964        conf.sub_batch_ext=NUM_IMG_EXTS-1; 
     965    else if (conf.sub_batch_ext>=NUM_IMG_EXTS) 
     966        conf.sub_batch_ext=0; 
     967 
     968    return img_exts[conf.sub_batch_ext]; 
    935969} 
    936970 
     
    12571291//------------------------------------------------------------------- 
    12581292const char* gui_video_bitrate_enum(int change, int arg) { 
    1259     static const char* modes[]={ "0.25x", "0.5x","0.75x", "1x", "1.25x", "1.5x", "1.75x", "2x", "2.5x", "3x"}; 
    1260  
    12611293    conf.video_bitrate+=change; 
    12621294    if (conf.video_bitrate<0) 
    1263         conf.video_bitrate=sizeof(modes)/sizeof(modes[0])-1; 
    1264     else if (conf.video_bitrate>=(sizeof(modes)/sizeof(modes[0]))
     1295        conf.video_bitrate=VIDEO_BITRATE_STEPS-1; 
     1296    else if (conf.video_bitrate>=VIDEO_BITRATE_STEPS
    12651297        conf.video_bitrate=0; 
    12661298 
    12671299    shooting_video_bitrate_change(conf.video_bitrate); 
    12681300 
    1269     return modes[conf.video_bitrate]; 
     1301    return video_bitrate_strings[conf.video_bitrate]; 
    12701302} 
    12711303 
     
    15891621 int m=mode_get(); 
    15901622 gui_fselect_init(LANG_RAW_DEVELOP_SELECT_FILE, "A/DCIM", raw_fselect_cb); 
     1623} 
     1624 
     1625//------------------------------------------------------------------- 
     1626#define TASKLIST_MAX_LINES 12 // probably as much as will fit on screen 
     1627#define TASKLIST_NUM_TASKS 64 // should be enough ? 
     1628static void gui_debug_draw_tasklist(void) { 
     1629#ifndef CAM_DRYOS 
     1630    int tasklist[TASKLIST_NUM_TASKS]; // max number of tasks we will look at 
     1631    char buf[40]; // a single line of the list 
     1632    int n_tasks,n_show_tasks,show_start; 
     1633    const char *name; 
     1634    int i; 
     1635    n_tasks = task_id_list_get(tasklist,sizeof(tasklist)/sizeof(tasklist[0])); 
     1636    show_start = debug_tasklist_start; 
     1637    n_show_tasks = n_tasks - show_start; 
     1638    // auto adjust to show the last N tasks 
     1639    if(n_show_tasks < TASKLIST_MAX_LINES) { 
     1640        show_start = n_tasks - TASKLIST_MAX_LINES; 
     1641        if(show_start<0) 
     1642            show_start = 0; 
     1643         n_show_tasks = n_tasks - show_start; 
     1644    } 
     1645    else if( n_show_tasks > TASKLIST_MAX_LINES ) { 
     1646        n_show_tasks = TASKLIST_MAX_LINES; 
     1647    } 
     1648    sprintf(buf,"%d-%d of %d tasks %c",show_start,show_start+n_show_tasks,n_tasks,debug_display_direction > 0?'+':'-'); 
     1649    draw_string(64,0,buf, conf.osd_color); 
     1650    for( i = 0;  i < n_show_tasks; i++ ) { 
     1651        // TODO get full task info 
     1652        name = task_name(tasklist[show_start+i]); 
     1653        if ( !name || !*name ) { 
     1654            name = "(unknown)"; 
     1655        } 
     1656        sprintf(buf,"%10s %8X",name,tasklist[show_start+i]); 
     1657        draw_string(64,16+16*i,buf, conf.osd_color); 
     1658    } 
     1659#endif //CAM_DRYOS 
     1660} 
     1661 
     1662#define DEBUG_DISPLAY_NONE 0 
     1663#define DEBUG_DISPLAY_PROPS 1 
     1664#define DEBUG_DISPLAY_PARAMS 2 
     1665#define DEBUG_DISPLAY_TASKS 3 
     1666static const char * gui_debug_shortcut_enum(int change, int arg) { 
     1667    static const char* modes[]={ "None", "Dmp RAM", "Page"}; 
     1668 
     1669    conf.debug_shortcut_action += change; 
     1670    if (conf.debug_shortcut_action < 0)  
     1671        conf.debug_shortcut_action = sizeof(modes)/sizeof(modes[0])-1; 
     1672    else if (conf.debug_shortcut_action >= (sizeof(modes)/sizeof(modes[0]))) 
     1673        conf.debug_shortcut_action = 0; 
     1674     
     1675    return modes[conf.debug_shortcut_action];  
     1676} 
     1677 
     1678static const char * gui_debug_display_enum(int change, int arg) { 
     1679    static const char* modes[]={ "None", "Props", "Params", "Tasks"}; 
     1680 
     1681    conf.debug_display += change; 
     1682    if (conf.debug_display < 0)  
     1683        conf.debug_display=sizeof(modes)/sizeof(modes[0])-1; 
     1684    else if (conf.debug_display >= (sizeof(modes)/sizeof(modes[0]))) 
     1685        conf.debug_display = 0; 
     1686     
     1687    return modes[conf.debug_display];  
     1688} 
     1689 
     1690static void gui_debug_shortcut(void) { 
     1691    static int lastcall = -1; 
     1692    int t=get_tick_count(); 
     1693    if ( lastcall != -1) { 
     1694        if (t-lastcall <= 400) 
     1695            debug_display_direction = -debug_display_direction; 
     1696    } 
     1697    lastcall=t; 
     1698    switch(conf.debug_shortcut_action) { 
     1699        case 1: 
     1700            dump_memory(); 
     1701        break; 
     1702        case 2: 
     1703            if(conf.debug_display == DEBUG_DISPLAY_TASKS) { 
     1704                debug_tasklist_start += debug_display_direction*(TASKLIST_MAX_LINES-2); // a little intentional overlap 
     1705                if(debug_tasklist_start >= TASKLIST_NUM_TASKS || debug_tasklist_start < 0) 
     1706                    debug_tasklist_start = 0; 
     1707            } 
     1708            else if (conf.debug_display == DEBUG_DISPLAY_PROPS || conf.debug_display == DEBUG_DISPLAY_PARAMS) { 
     1709                debug_propcase_page += debug_display_direction*1; 
     1710                if(debug_propcase_page > 128 || debug_propcase_page < 0)  
     1711                    debug_propcase_page = 0; 
     1712            } 
     1713        break; 
     1714    } 
    15911715} 
    15921716 
     
    18471971        case GUI_MODE_ALT: 
    18481972            if (kbd_is_key_clicked(SHORTCUT_TOGGLE_RAW)) { 
    1849                 if (conf.ns_enable_memdump) dump_memory();  
     1973                if (conf.debug_shortcut_action > 0) gui_debug_shortcut();  
    18501974#if !CAM_HAS_ERASE_BUTTON && CAM_CAN_SD_OVERRIDE 
    18511975                else if (!shooting_get_common_focus_mode()) 
     
    21252249    } 
    21262250     
    2127     mode_video = ((m&MODE_SHOOTING_MASK)==MODE_VIDEO_STD ||  
    2128                                  (m&MODE_SHOOTING_MASK)==MODE_VIDEO_SPEED ||   
    2129                                  (m&MODE_SHOOTING_MASK)==MODE_VIDEO_COMPACT || 
    2130                                  (m&MODE_SHOOTING_MASK)==MODE_VIDEO_MY_COLORS ||  
    2131                                  (m&MODE_SHOOTING_MASK)==MODE_VIDEO_COLOR_ACCENT ||  
    2132                  (m&MODE_SHOOTING_MASK)==MODE_VIDEO_TIME_LAPSE); 
    2133      
    2134      
     2251        // TODO some of the ifs below should probably use this 
     2252        mode_video = MODE_IS_VIDEO(m); 
     2253 
    21352254    mode_photo = (m&MODE_MASK) == MODE_PLAY ||  
    21362255                 !( mode_video || 
     
    21832302            gui_grid_draw_osd(1); 
    21842303        } 
    2185         if ((gui_mode==GUI_MODE_NONE || gui_mode==GUI_MODE_ALT) && (((kbd_is_key_pressed(KEY_SHOOT_HALF) || (state_kbd_script_run) || (shooting_get_common_focus_mode())) && (mode_photo || (m&MODE_SHOOTING_MASK)==MODE_STITCH )) || (mode_video && conf.show_values_in_video) )) { 
     2304        if ((gui_mode==GUI_MODE_NONE || gui_mode==GUI_MODE_ALT) && (((kbd_is_key_pressed(KEY_SHOOT_HALF) || (state_kbd_script_run) || (shooting_get_common_focus_mode())) && (mode_photo || (m&MODE_SHOOTING_MASK)==MODE_STITCH )) || ((mode_video || movie_status > 1) && conf.show_values_in_video) )) { 
    21862305                  
    21872306           if (conf.show_dof!=DOF_DONT_SHOW) gui_osd_calc_dof(); 
     
    21912310           if (conf.values_show_real_iso || conf.values_show_market_iso || conf.values_show_ev_seted || conf.values_show_ev_measured || conf.values_show_bv_measured || conf.values_show_bv_seted || conf.values_show_overexposure || conf.values_show_canon_overexposure) gui_osd_calc_expo_param();                               
    21922311        } 
    2193         if (conf.show_state && !mode_video) gui_osd_draw_state(); 
     2312        if (conf.show_state) gui_osd_draw_state(); 
    21942313        if (conf.save_raw && conf.show_raw_state && !mode_video && (!kbd_is_key_pressed(KEY_SHOOT_HALF))) gui_osd_draw_raw_info(); 
    21952314         
    2196             if ((conf.show_values==SHOW_ALWAYS && mode_photo) || (mode_video && conf.show_values_in_video) || ((kbd_is_key_pressed(KEY_SHOOT_HALF) || (recreview_hold==1)) && (conf.show_values==SHOW_HALF))) 
     2315            if ((conf.show_values==SHOW_ALWAYS && mode_photo) || ((mode_video || movie_status > 1)&& conf.show_values_in_video) || ((kbd_is_key_pressed(KEY_SHOOT_HALF) || (recreview_hold==1)) && (conf.show_values==SHOW_HALF))) 
    21972316                   gui_osd_draw_values(1); 
    21982317        else if  (shooting_get_common_focus_mode() && mode_photo && conf.show_values && !(conf.show_dof==DOF_SHOW_IN_DOF) )    
     
    22192338        gui_osd_draw_temp(); 
    22202339      } 
    2221  if (conf.show_movie_time > 0
     2340 if (conf.show_movie_time > 0 && (mode_video || movie_status > 1)
    22222341 { 
    22232342 gui_osd_draw_movie_time_left(); 
    2224   
    2225  if ((movie_status > 1) && (conf.fast_movie_quality_control==1)){ 
    2226     if (conf.video_mode == 0 ) 
    2227         { 
    2228     gui_print_osd_state_string_chr("Bitrate: ",gui_video_bitrate_enum(0,0)); 
    2229         } 
    2230         else 
    2231                 { 
    2232         gui_print_osd_state_string_int("Quality: ",conf.video_quality); 
    2233     } 
    2234  } 
    22352343} 
    22362344  
     
    22702378        static char sbuf[100]; 
    22712379    int r,i, p, len; 
    2272     if (debug_propcase_show){ 
     2380    if (conf.debug_display == DEBUG_DISPLAY_PROPS){ 
    22732381 
    22742382        for (i=0;i<10;i++){ 
     
    22812389    } 
    22822390 
    2283 if (debug_pardata_show){ 
     2391    if (conf.debug_display == DEBUG_DISPLAY_PARAMS){ 
    22842392        extern long* FlashParamsTable[];  
    22852393        char s[30]; 
     
    23082416   } 
    23092417 
     2418    if(conf.debug_display == DEBUG_DISPLAY_TASKS) { 
     2419        gui_debug_draw_tasklist(); 
     2420    } 
    23102421 
    23112422    if (ubasic_error){ 
     
    24432554    int i, l; 
    24442555   // color cl = MAKE_COLOR((gui_splash_mode==MODE_REC)?0xDA:0xD9, COLOR_WHITE); 
    2445  color cl = MAKE_COLOR(COLOR_RED, COLOR_WHITE); 
     2556    color cl = MAKE_COLOR(COLOR_RED, COLOR_WHITE); 
    24462557 
    24472558 
     
    24562567    w=w*FONT_WIDTH+10; 
    24572568 
    2458     x = (screen_width-w)>>1; y = (screen_height-h)>>1
    2459     draw_filled_round_rect(x, y, x+w, y+h, cl); 
     2569    x = (screen_width-w)>>1; y = ((screen_height-h)>>1) + 20
     2570    draw_filled_round_rect(x, y, x+w, y+h, MAKE_COLOR(COLOR_RED, COLOR_RED)); 
    24602571    for (i=0; i<sizeof(text)/sizeof(text[0]); ++i) { 
    24612572        draw_string(x+((w-strlen(text[i])*FONT_WIDTH)>>1), y+i*FONT_HEIGHT+4, text[i], cl); 
     2573    } 
     2574    int mx,my; 
     2575    int offset_x = (screen_width-150)>>1; 
     2576    int offset_y = ((screen_height-84)>>1) - 42; 
     2577     
     2578    for(mx=0; mx<150; mx++){ 
     2579        for(my=0; my<84; my++){ 
     2580            color c = header_data[my*150+mx]; 
     2581            if (c != 0x00) 
     2582                draw_pixel(offset_x+mx,offset_y+my,c); 
     2583        } 
    24622584    } 
    24632585} 
     
    24902612void gui_load_script_default(int arg) { 
    24912613        script_load(conf.script_file, 0); 
    2492     save_params_values(1); 
    2493 
     2614                        if (conf.script_param_save) 
     2615                                { 
     2616        save_params_values(1); 
     2617      }} 
    24942618 
    24952619 
  • branches/juciphox/core/gui_fselect.c

    r416 r479  
    1111#include "gui_fselect.h" 
    1212#include "raw_merge.h" 
     13#include "conf.h" 
    1314 
    1415//------------------------------------------------------------------- 
     
    712713 
    713714//------------------------------------------------------------------- 
    714 static unsigned int fselect_marked_count() { 
     715static inline unsigned int fselect_real_marked_count() { 
    715716    struct fitem  *ptr; 
    716717    register unsigned int cnt=0; 
     
    720721            ++cnt; 
    721722    } 
     723    return cnt; 
     724} 
     725//------------------------------------------------------------------- 
     726static unsigned int fselect_marked_count() { 
     727    struct fitem  *ptr; 
     728    register unsigned int cnt=fselect_real_marked_count(); 
    722729 
    723730    if (!cnt) { 
     
    783790  gui_fselect_read_dir(current_dir); 
    784791 } 
     792} 
     793 
     794static void fselect_subtract_cb(unsigned int btn) { 
     795    struct fitem *ptr; 
     796    char *raw_subtract_from; 
     797    char *raw_subtract_sub; 
     798    char *raw_subtract_dest; 
     799    if (btn != MBOX_BTN_YES) return; 
     800 
     801    if(!(raw_subtract_from = malloc(300))) //3x full path 
     802        return; 
     803    raw_subtract_sub = raw_subtract_from + 100; 
     804    raw_subtract_dest = raw_subtract_sub + 100; 
     805    sprintf(raw_subtract_sub,"%s/%s",current_dir,selected->name); 
     806    for (ptr=head; ptr; ptr=ptr->next) { 
     807        if (ptr->marked && ptr->attr != 0xFF &&  
     808            !(ptr->attr & DOS_ATTR_DIRECTORY) && 
     809            ptr->size == hook_raw_size() && 
     810            (strcmp(ptr->name,selected->name)) != 0) { 
     811            sprintf(raw_subtract_from,"%s/%s",current_dir,ptr->name); 
     812            sprintf(raw_subtract_dest,"%s/%s%s",current_dir,img_prefixes[conf.sub_batch_prefix],ptr->name+4); 
     813            strcpy(raw_subtract_dest + strlen(raw_subtract_dest) - 4,img_exts[conf.sub_batch_ext]); 
     814                        // don't let users attempt to write one of the files being read 
     815                        if( strcmp(raw_subtract_dest,raw_subtract_from) != 0 && strcmp(raw_subtract_dest,raw_subtract_sub) != 0) { 
     816                raw_subtract(raw_subtract_from,raw_subtract_sub,raw_subtract_dest); 
     817                        } 
     818        } 
     819    } 
     820    free(raw_subtract_from); 
     821    gui_fselect_read_dir(current_dir); 
     822    gui_fselect_redraw = 2; 
     823} 
     824 
     825 
     826#define MAX_SUB_NAMES 6 
     827static void setup_batch_subtract(void) { 
     828    struct fitem *ptr; 
     829    int i; 
     830    char *p = buf + sprintf(buf,"%s %s\n",selected->name,lang_str(LANG_FSELECT_SUB_FROM)); 
     831    for (ptr=head, i=0; ptr; ptr=ptr->next) { 
     832        if (ptr->marked && ptr->attr != 0xFF && !(ptr->attr & DOS_ATTR_DIRECTORY) && ptr->size == hook_raw_size()) { 
     833            if ( i < MAX_SUB_NAMES ) { 
     834                sprintf(p, "%s\n",ptr->name); 
     835                // keep a pointer to the one before the end, so we can stick ...and more on 
     836                if (i < MAX_SUB_NAMES - 1) { 
     837                    p += strlen(p); 
     838                } 
     839            } 
     840            i++; 
     841        } 
     842    } 
     843    if (i > MAX_SUB_NAMES) { 
     844//      "...%d more files" 
     845        sprintf(p,lang_str(LANG_FSELECT_SUB_AND_MORE),i - (MAX_SUB_NAMES - 1)); 
     846    } 
     847    gui_mbox_init(LANG_FSELECT_SUBTRACT, (int)buf, 
     848                  MBOX_TEXT_CENTER|MBOX_BTN_YES_NO|MBOX_DEF_BTN2, fselect_subtract_cb); 
    785849} 
    786850 
     
    848912            process_raw_files(); 
    849913            break; 
     914        case MPOPUP_SUBTRACT: 
     915        { 
     916            setup_batch_subtract(); 
     917            break; 
     918        } 
    850919    } 
    851920    gui_fselect_redraw = 2; 
     
    893962            if (selected && selected->attr != 0xFF) { 
    894963                i=MPOPUP_CUT|MPOPUP_COPY|MPOPUP_SELINV|MPOPUP_RAW_ADD|MPOPUP_RAW_AVERAGE; 
    895                 if (fselect_marked_count() > 0) 
     964                if (fselect_marked_count() > 0) { 
    896965                    i |= MPOPUP_DELETE; 
     966                    // doesn't make sense to subtract from itself! 
     967                    if( selected->marked == 0 && fselect_real_marked_count() > 0) 
     968                        i |= MPOPUP_SUBTRACT; 
     969                } 
    897970                if (marked_operation == MARKED_OP_CUT || marked_operation == MARKED_OP_COPY) 
    898971                    i |= MPOPUP_PASTE; 
  • branches/juciphox/core/gui_lang.c

    r473 r479  
    121121" 79 \"Debug\"\n" 
    122122 
    123 " 80 \"Show PropCases\"\n" 
     123" 80 \"Debug data display\"\n" 
    124124" 81 \"PropCase/ParamsData page\"\n" 
    125125" 82 \"Show misc. values\"\n" 
    126126" 83 \"Memory browser\"\n" 
    127 " 84 \"Dump RAM on ALT +/- press\"\n" 
     127" 84 \"ALT +/- debug action\"\n" 
    128128" 85 \"Make card bootable...\"\n" 
    129129 
     
    365365 
    366366"272 \"Show OSD in Review Mode\"\n" 
    367 "273 \"Show Parameter Data\"\n" 
     367"273 \"Task list start\"\n" 
    368368 
    369369"274 \"Subject distance from lens\"\n" 
     
    521521"400 \"Zoom Time-out 0.1s\"\n" 
    522522"401 \"Startup sound\"\n" 
     523"402 \"Raw subtract prefix\"\n" 
     524"403 \"Raw subtract extension\"\n" 
     525"404 \"Subtract input dark value\"\n" 
     526"405 \"Subtract output dark value\"\n" 
     527"406 \"from\"\n" 
     528"407 \"...%d more files\"\n" 
     529"408 \"Subtract\"\n" 
     530"409 \"Sub from marked\"\n" 
     531"410 \"Save params\"\n" 
    523532; 
    524533 
  • branches/juciphox/core/gui_lang.h

    r473 r479  
    108108#define LANG_MENU_DEBUG_TITLE           79 
    109109 
    110 #define LANG_MENU_DEBUG_SHOW_PROPCASES  80 
     110#define LANG_MENU_DEBUG_DISPLAY         80 
    111111#define LANG_MENU_DEBUG_PROPCASE_PAGE   81 
    112112#define LANG_MENU_DEBUG_SHOW_MISC_VALS  82 
    113113#define LANG_MENU_DEBUG_MEMORY_BROWSER  83 
    114 #define LANG_MENU_DEBUG_DUMP_RAM        84 
     114#define LANG_MENU_DEBUG_SHORTCUT_ACTION 84 
    115115#define LANG_MENU_DEBUG_MAKE_BOOTABLE   85 
    116116 
     
    356356 
    357357#define LANG_MENU_OSD_SHOW_IN_REVIEW     272 
    358 #define LANG_MENU_DEBUG_SHOW_PARAMETER_DATA   273 
     358#define LANG_MENU_DEBUG_TASKLIST_START        273 
    359359 
    360360#define LANG_MENU_DOF_DIST_FROM_LENS 274 
     
    509509#define LANG_MENU_REMOTE_ZOOM_ENABLE  399 
    510510#define LANG_MENU_REMOTE_ZOOM_TIMEOUT 400 
    511  
    512511#define LANG_MENU_MISC_START_SOUND 401 
    513  
     512#define LANG_MENU_SUB_PREFIX     402 
     513#define LANG_MENU_SUB_EXTENSION  403 
     514#define LANG_MENU_SUB_IN_DARK_VALUE  404 
     515#define LANG_MENU_SUB_OUT_DARK_VALUE 405 
     516#define LANG_FSELECT_SUB_FROM    406 
     517#define LANG_FSELECT_SUB_AND_MORE 407 
     518#define LANG_FSELECT_SUBTRACT    408 
     519#define LANG_POPUP_SUB_FROM_MARKED 409 
     520#define LANG_MENU_SCRIPT_PARAM_SAVE 410 
    514521//------------------------------------------------------------------- 
    515522 
    516 #define GUI_LANG_ITEMS                  401 
     523#define GUI_LANG_ITEMS                  410 
    517524 
    518525//------------------------------------------------------------------- 
  • branches/juciphox/core/gui_mpopup.c

    r416 r479  
    2626        { MPOPUP_RAW_AVERAGE,   LANG_POPUP_RAW_AVERAGE }, 
    2727        { MPOPUP_PURGE,         LANG_POPUP_PURGE  }, 
     28        { MPOPUP_SUBTRACT,      LANG_POPUP_SUB_FROM_MARKED  }, 
    2829}; 
    2930 
    3031#define ACTIONSNUM              (sizeof(actions)/sizeof(actions[0])) 
    31 #define MAX_ACTIONS             8 
     32#define MAX_ACTIONS             9 
    3233static int                      mpopup_actions[MAX_ACTIONS], mpopup_actions_num, mpopup_actions_active; 
    3334static coord                    mpopup_actions_x, mpopup_actions_y; 
  • branches/juciphox/core/gui_mpopup.h

    r416 r479  
    33 
    44//------------------------------------------------------------------- 
    5 #define MPOPUP_MASK             0x00FF 
     5#define MPOPUP_MASK             0x01FF 
    66#define MPOPUP_CUT              0x0001 
    77#define MPOPUP_COPY             0x0002 
     
    1111#define MPOPUP_RAW_ADD          0x0020 
    1212#define MPOPUP_RAW_AVERAGE      0x0040 
    13 #define MPOPUP_CANCEL           0x0100 
     13#define MPOPUP_CANCEL           0x0200 
    1414#define MPOPUP_PURGE            0x0080 
     15#define MPOPUP_SUBTRACT         0x0100 
    1516 
    1617//------------------------------------------------------------------- 
  • branches/juciphox/core/gui_osd.c

    r473 r479  
    703703void gui_osd_draw_state() { 
    704704    int a,  gui_mode=gui_get_mode(), m=(mode_get()&MODE_SHOOTING_MASK);  
     705    int mode_video = MODE_IS_VIDEO(m); 
    705706    long t;  
    706707     
     
    710711   //draw_string(conf.mode_state_pos.x, conf.mode_state_pos.y+6*FONT_HEIGHT, osd_buf, conf.osd_color); 
    711712   ////////////////////////////   
     713    if (mode_video || movie_status > 1) { 
     714        // if manual adjust, show the field item to be adjusted 
     715        // if any value overriden, show the override value 
     716        if ((conf.video_mode == 0 && conf.fast_movie_quality_control==1) || conf.video_bitrate != VIDEO_DEFAULT_BITRATE) { 
     717            gui_print_osd_state_string_chr("Bitrate: ",video_bitrate_strings[conf.video_bitrate]); 
     718        } 
     719        if ((conf.video_mode == 1 && conf.fast_movie_quality_control==1) || conf.video_quality != VIDEO_DEFAULT_QUALITY) { 
     720            gui_print_osd_state_string_int("Quality: ",conf.video_quality); 
     721        } 
     722        // everything else is for stills 
     723                if(mode_video) 
     724                        return; 
     725    } 
    712726       
    713727    if ((((conf.tv_enum_type) || (conf.tv_override_value)) && (conf.tv_override_koef)  && !(conf.override_disable==1)) || gui_mode==GUI_MODE_OSD){ 
     
    9921006 
    9931007void gui_osd_draw_temp() { 
    994                 if (conf.show_temp==1||0
     1008                if (conf.show_temp == 1
    9951009                        { 
    9961010                                if (conf.clock_format == 0) 
  • branches/juciphox/core/kbd.c

    r474 r479  
    261261    script_print_screen_init(); 
    262262 
    263     save_params_values(0); 
    264  
     263                        if (conf.script_param_save) 
     264                                { 
     265        save_params_values(0); 
     266      } 
    265267    if( autostart ) 
    266268      script_console_add_line("***Autostart***"); 
     
    568570        mmode = mode_get(); 
    569571        mplay = (mmode&MODE_MASK)==MODE_PLAY; 
    570         mvideo= ((mmode&MODE_SHOOTING_MASK)==MODE_VIDEO_STD || (mmode&MODE_SHOOTING_MASK)==MODE_VIDEO_SPEED || (mmode&MODE_SHOOTING_MASK)==MODE_VIDEO_COMPACT ||(mmode&MODE_SHOOTING_MASK)==MODE_VIDEO_MY_COLORS || (mmode&MODE_SHOOTING_MASK)==MODE_VIDEO_COLOR_ACCENT); 
     572//      mvideo= ((mmode&MODE_SHOOTING_MASK)==MODE_VIDEO_STD || (mmode&MODE_SHOOTING_MASK)==MODE_VIDEO_SPEED || (mmode&MODE_SHOOTING_MASK)==MODE_VIDEO_COMPACT ||(mmode&MODE_SHOOTING_MASK)==MODE_VIDEO_MY_COLORS || (mmode&MODE_SHOOTING_MASK)==MODE_VIDEO_COLOR_ACCENT); 
     573        mvideo=MODE_IS_VIDEO(mmode); 
    571574  } 
    572575       // deals with alt-mode switch and delay emulation 
     
    13531356 
    13541357long kbd_use_up_down_left_right_as_fast_switch() { 
    1355             static const char* modes[]={ "0.25x", "0.5x","0.75x", "1x", "1.25x", "1.5x", "1.75x", "2x", "2.5x", "3x"}; 
    1356     static long key_pressed = 0; 
    1357 if (!(kbd_is_key_pressed(KEY_UP)) && !(kbd_is_key_pressed(KEY_DOWN))) key_pressed = 0; 
    1358     if (kbd_is_key_pressed(KEY_UP) && (mode_get()&MODE_MASK) == MODE_REC &&  ((mode_get()&MODE_SHOOTING_MASK) != MODE_M) &&  ((mode_get()&MODE_SHOOTING_MASK) != MODE_VIDEO_STD) && movie_status<4 && (canon_shoot_menu_active==0)) { 
    1359  
     1358    static long key_pressed = 0; // ??? static masking a global 
     1359    int m=mode_get();  
     1360    int mode_video = MODE_IS_VIDEO(m) || (movie_status > 1); 
     1361 
     1362    if (!(kbd_is_key_pressed(KEY_UP)) && !(kbd_is_key_pressed(KEY_DOWN))) key_pressed = 0; 
     1363 
     1364    if (canon_shoot_menu_active!=0 || (m&MODE_MASK) != MODE_REC) 
     1365        return 0; 
     1366 
     1367    if (kbd_is_key_pressed(KEY_UP) && ((m&MODE_SHOOTING_MASK) != MODE_M) && !mode_video) { 
    13601368        if (conf.fast_ev && key_pressed == 0) { 
    1361 #if (CAM_PROPSET == 1)  
    1362             shooting_set_prop(25,shooting_get_prop(25)+(conf.fast_ev_step+1)*16); 
    1363             shooting_set_prop(26,shooting_get_prop(26)+(conf.fast_ev_step+1)*16); 
    1364 #elif (CAM_PROPSET == 2) 
    1365             shooting_set_prop(107,shooting_get_prop(107)+(conf.fast_ev_step+1)*16); 
    1366             shooting_set_prop(207,shooting_get_prop(207)+(conf.fast_ev_step+1)*16); 
    1367 #endif 
     1369            shooting_set_prop(PROPCASE_EV_CORRECTION_1,shooting_get_prop(PROPCASE_EV_CORRECTION_1)+(conf.fast_ev_step+1)*16); 
     1370            shooting_set_prop(PROPCASE_EV_CORRECTION_2,shooting_get_prop(PROPCASE_EV_CORRECTION_2)+(conf.fast_ev_step+1)*16); 
    13681371            EnterToCompensationEVF(); 
    13691372            key_pressed = KEY_UP; 
    1370                 
     1373                 
    13711374            return 1; 
    13721375        } 
    13731376 
    13741377    }  
    1375     if (kbd_is_key_pressed(KEY_UP) && (mode_get()&MODE_MASK) == MODE_REC && movie_status == 4 && (canon_shoot_menu_active==0)) { 
    1376  
     1378    if (kbd_is_key_pressed(KEY_UP) && mode_video && movie_status == 4 ) { 
    13771379        if (conf.fast_movie_quality_control && key_pressed == 0) { 
    1378                          
    1379                          
    1380 if (conf.video_mode==0) 
    1381         { 
    1382                             conf.video_bitrate+=1; 
    1383     if (conf.video_bitrate<0) 
    1384         conf.video_bitrate=sizeof(modes)/sizeof(modes[0])-1; 
    1385     else if (conf.video_bitrate>=(sizeof(modes)/sizeof(modes[0]))) 
    1386         conf.video_bitrate=sizeof(modes)/sizeof(modes[0])-1; 
    1387     shooting_video_bitrate_change(conf.video_bitrate); 
    1388 movie_reset = 1; 
    1389   }     
    1390    
    1391  if (conf.video_mode==1) 
    1392         { 
    1393                             conf.video_quality+=1; 
    1394     if (conf.video_quality<1) 
    1395         conf.video_quality=1; 
    1396     else if (conf.video_quality>99) 
    1397         conf.video_quality=99; 
    1398     movie_reset = 1; 
    1399   }                      
     1380            if (conf.video_mode==0) { 
     1381                conf.video_bitrate+=1; 
     1382                if (conf.video_bitrate>=VIDEO_BITRATE_STEPS) 
     1383                    conf.video_bitrate=VIDEO_BITRATE_STEPS-1; 
     1384                shooting_video_bitrate_change(conf.video_bitrate); 
     1385                movie_reset = 1; 
     1386            }     
     1387            else if (conf.video_mode==1) { 
     1388                conf.video_quality+=1; 
     1389                if (conf.video_quality>VIDEO_MAX_QUALITY) 
     1390                    conf.video_quality=VIDEO_MAX_QUALITY; 
     1391                movie_reset = 1; 
     1392            }               
    14001393            key_pressed = KEY_UP; 
    14011394            return 1; 
    14021395        } 
    1403  
    14041396    }  
    1405     if (kbd_is_key_pressed(KEY_DOWN) && (mode_get()&MODE_MASK) == MODE_REC &&  ((mode_get()&MODE_SHOOTING_MASK) != MODE_M) && ((mode_get()&MODE_SHOOTING_MASK) != MODE_VIDEO_STD) && movie_status<4 && (canon_shoot_menu_active==0)) { 
    1406  
    1407              
     1397    if (kbd_is_key_pressed(KEY_DOWN) && ((m&MODE_SHOOTING_MASK) != MODE_M) && !mode_video) { 
    14081398        if (conf.fast_ev && key_pressed == 0) { 
    14091399            kbd_key_release_all(); 
    1410 #if (CAM_PROPSET == 1) 
    1411             shooting_set_prop(25,shooting_get_prop(25)-(conf.fast_ev_step+1)*16); 
    1412             shooting_set_prop(26,shooting_get_prop(26)-(conf.fast_ev_step+1)*16); 
    1413 #elif (CAM_PROPSET == 2) 
    1414             shooting_set_prop(107,shooting_get_prop(107)-(conf.fast_ev_step+1)*16); 
    1415             shooting_set_prop(207,shooting_get_prop(207)-(conf.fast_ev_step+1)*16); 
    1416 #endif 
     1400            shooting_set_prop(PROPCASE_EV_CORRECTION_1,shooting_get_prop(PROPCASE_EV_CORRECTION_1)-(conf.fast_ev_step+1)*16); 
     1401            shooting_set_prop(PROPCASE_EV_CORRECTION_2,shooting_get_prop(PROPCASE_EV_CORRECTION_2)-(conf.fast_ev_step+1)*16); 
    14171402            key_pressed = KEY_DOWN; 
    14181403            EnterToCompensationEVF(); 
    14191404            return 1; 
    14201405        } 
    1421  
    14221406    }  
    14231407     
    1424        if (kbd_is_key_pressed(KEY_DOWN) && (mode_get()&MODE_MASK) == MODE_REC && movie_status == 4 && (canon_shoot_menu_active==0)) { 
    1425  
    1426              
    1427        if (conf.fast_movie_quality_control && key_pressed == 0) { 
    1428                          
    1429 if (conf.video_mode==0) 
    1430         {                        
    1431     conf.video_bitrate+=-1; 
    1432     if (conf.video_bitrate<0) 
    1433         conf.video_bitrate=0; 
    1434  
    1435  
    1436     shooting_video_bitrate_change(conf.video_bitrate); 
    1437 movie_reset = 1; 
    1438 
    1439  if (conf.video_mode==1) 
    1440         { 
    1441                             conf.video_quality-=1; 
    1442     if (conf.video_quality<1) 
    1443         conf.video_quality=1; 
    1444     else if (conf.video_quality>99) 
    1445         conf.video_quality=99; 
    1446     movie_reset = 1; 
    1447   }              
    1448  
    1449                          
    1450                          
     1408    if (kbd_is_key_pressed(KEY_DOWN) && mode_video && movie_status == 4) { 
     1409        if (conf.fast_movie_quality_control && key_pressed == 0) { 
     1410            if (conf.video_mode==0) {                 
     1411                conf.video_bitrate-=1; 
     1412                if (conf.video_bitrate<0) 
     1413                    conf.video_bitrate=0; 
     1414 
     1415                shooting_video_bitrate_change(conf.video_bitrate); 
     1416                movie_reset = 1; 
     1417            } 
     1418            else if (conf.video_mode==1) { 
     1419                conf.video_quality-=1; 
     1420                if (conf.video_quality<1) 
     1421                    conf.video_quality=1; 
     1422                movie_reset = 1; 
     1423            }           
    14511424            key_pressed = KEY_DOWN; 
    14521425            return 1; 
    14531426        } 
    1454  
    14551427    }  
    14561428     
    1457        if (kbd_is_key_pressed(KEY_LEFT) && (mode_get()&MODE_MASK) == MODE_REC && movie_status == 4 && (canon_shoot_menu_active==0)) { 
    1458  
    1459              
    1460        if (conf.fast_movie_control && key_pressed == 0) { 
    1461                          
    1462 movie_status = 1; 
    1463                          
    1464                          
     1429    if (kbd_is_key_pressed(KEY_LEFT) && mode_video && movie_status == 4) { 
     1430        if (conf.fast_movie_control && key_pressed == 0) { 
     1431            movie_status = VIDEO_RECORD_STOPPED; 
    14651432            key_pressed = KEY_LEFT; 
    14661433            return 1; 
    14671434        } 
    1468  
    14691435    }  
    1470      
    1471        if (kbd_is_key_pressed(KEY_RIGHT) && (mode_get()&MODE_MASK) == MODE_REC && movie_status == 1 && (canon_shoot_menu_active==0)) { 
    1472  
    1473              
    1474        if (conf.fast_movie_control && key_pressed == 0) { 
    1475                          
    1476 movie_status = 4; 
    1477 movie_reset = 1; 
    1478                          
    1479                          
     1436        // reyalp - HACK for cams that can do video in any mode 
     1437        // note that this means this will probably run whenever you press right 
     1438    if (kbd_is_key_pressed(KEY_RIGHT) && 
     1439#ifndef CAM_HAS_VIDEO_BUTTON  
     1440            mode_video && 
     1441#endif 
     1442                movie_status == 1) { 
     1443        // BUG this doesn't know whether recording was stopped or paused. 
     1444        if (conf.fast_movie_control && key_pressed == 0) { 
     1445            movie_status = VIDEO_RECORD_IN_PROGRESS; 
     1446            movie_reset = 1; 
    14801447            key_pressed = KEY_RIGHT; 
    14811448            return 1; 
    14821449        } 
    1483  
    14841450    }  
    1485      
     1451 
    14861452    return 0; 
    14871453} 
  • branches/juciphox/core/luascript.c

    r474 r479  
    214214    int to = luaL_checknumber( L, 1 ); 
    215215    int m=mode_get()&MODE_SHOOTING_MASK; 
    216     int mode_video=((m==MODE_VIDEO_STD) ||  
    217                             (m==MODE_VIDEO_SPEED) ||   
    218                             (m==MODE_VIDEO_COMPACT) || 
    219                             (m==MODE_VIDEO_MY_COLORS) ||  
    220                             (m==MODE_VIDEO_COLOR_ACCENT)); 
     216    int mode_video=MODE_IS_VIDEO(m); 
     217 
    221218#if CAM_HAS_MANUAL_FOCUS 
    222219    if (shooting_get_focus_mode() || (mode_video)) shooting_set_focus(to, SET_NOW); 
  • branches/juciphox/core/raw.c

    r451 r479  
    99#define RAW_TARGET_DIRECTORY    "A/DCIM/%03dCANON" 
    1010//#define RAW_TMP_FILENAME        "HDK_RAW.TMP" 
    11 #define RAW_TARGET_FILENAME     "%s_%04d.%s" 
     11#define RAW_TARGET_FILENAME     "%s%04d%s" 
    1212 
    1313//------------------------------------------------------------------- 
    1414static char fn[64]; 
    1515static char dir[32]; 
    16 static char prefixes[][4] = { "IMG", "CRW", "SND" }; 
    17 static char exts[][4] = { "JPG", "CRW", "CR2", "THM", "WAV" }; 
    1816static int develop_raw=0; 
    1917//------------------------------------------------------------------- 
     
    6866 
    6967        sprintf(fn, "%s/", dir); 
    70         sprintf(fn+strlen(fn), RAW_TARGET_FILENAME, prefixes[conf.raw_prefix], get_target_file_num(), exts[conf.raw_ext]); 
     68        sprintf(fn+strlen(fn), RAW_TARGET_FILENAME, img_prefixes[conf.raw_prefix], get_target_file_num(), img_exts[conf.raw_ext]); 
    7169 
    7270        fd = open(fn, O_WRONLY|O_CREAT, 0777); 
  • branches/juciphox/core/raw_merge.c

    r324 r479  
    77#include "gui_lang.h" 
    88#include "lang.h" 
    9  
     9#include "conf.h" 
    1010#define TEMP_FILE        "raw16.tmp" 
    1111#define TEMP_FILE_NAME   "A/raw16.tmp" 
     
    1818static char namebuf[100]; 
    1919 
     20// note: if processing with dcraw etc, zeros may get replaced with interpolated values 
     21// this may or may not be what you want 
     22static int raw_subtract_values(int from, int sub) { 
     23    if ( sub > conf.sub_in_dark_value ) { 
     24        int result = from - sub; 
     25        if ( result < conf.sub_out_dark_value ) { 
     26            return conf.sub_out_dark_value; 
     27        } 
     28        else { 
     29            return result; 
     30        } 
     31    } 
     32    else { 
     33        return from; 
     34    } 
     35} 
     36/* subtract "sub" from "from" and store the result in "dest"*/ 
     37/* TODO allow replacing if dest == from or sub*/ 
     38int raw_subtract(const char *from, const char *sub, const char *dest) { 
     39     unsigned req=(hook_raw_size()>>10) + 1; 
     40    unsigned avail=GetFreeCardSpaceKb(); 
     41    int ffrom = 0, fsub = 0, fdest = 0; 
     42    char *baccum = 0,*bsub = 0; 
     43    int status = 0; 
     44    unsigned short s,d; 
     45    int i,j; 
     46 
     47    static struct utimbuf t; 
     48 
     49    struct stat st; 
     50 
     51    if (stat((char *)from,&st) != 0 || st.st_size!=hook_raw_size())  
     52        return 0; 
     53 
     54    if (stat((char *)sub,&st) != 0 || st.st_size!=hook_raw_size())  
     55        return 0; 
     56 
     57     if( (baccum=malloc(RAW_ROWLEN)) && 
     58        (bsub=malloc(RAW_ROWLEN)) && 
     59        (ffrom=fopen(from, "rb")) && 
     60        (fsub=fopen(sub, "rb")) && 
     61        (fdest=fopen(dest, "wb")) && 
     62        avail > req) 
     63    { 
     64        started(); 
     65        for (j = 0; j < CAM_RAW_ROWS; j++) { 
     66            fread(baccum,1, RAW_ROWLEN,ffrom); 
     67            fread(bsub,1, RAW_ROWLEN,fsub); 
     68            for(i = 0;i<RAW_ROWLEN; i+=10) { 
     69                s =((0x3fc&(((unsigned short)bsub[i+1])<<2)) | (bsub[i+0] >> 6)); 
     70                d =((0x3fc&(((unsigned short)baccum[i+1])<<2)) | (baccum[i+0] >> 6)); 
     71                d = raw_subtract_values(d,s); 
     72                baccum[i]=(baccum[i]&0x3F)|(d<<6);  
     73                baccum[i+1]=d>>2; 
     74 
     75                s =((0x3f0&(((unsigned short)bsub[i+0])<<4)) | (bsub[i+3] >> 4)); 
     76                d =((0x3f0&(((unsigned short)baccum[i+0])<<4)) | (baccum[i+3] >> 4)); 
     77                d = raw_subtract_values(d,s); 
     78                baccum[i]=(baccum[i]&0xC0)|(d>>4); 
     79                baccum[i+3]=(baccum[i+3]&0x0F)|(d<<4); 
     80 
     81                s =((0x3c0&(((unsigned short)bsub[i+3])<<6)) | (bsub[i+2] >> 2)); 
     82                d =((0x3c0&(((unsigned short)baccum[i+3])<<6)) | (baccum[i+2] >> 2)); 
     83                d = raw_subtract_values(d,s); 
     84                baccum[i+2]=(baccum[i+2]&0x03)|(d<<2); 
     85                baccum[i+3]=(baccum[i+3]&0xF0)|(d>>6); 
     86 
     87                s =((0x300&(((unsigned short)bsub[i+2])<<8)) | (bsub[i+5]));  
     88                d =((0x300&(((unsigned short)baccum[i+2])<<8)) | (baccum[i+5]));  
     89                d = raw_subtract_values(d,s); 
     90                baccum[i+2]=(baccum[i+2]&0xFC)|(d>>8);  
     91                baccum[i+5]=d; 
     92 
     93 
     94                s =((0x3fc&(((unsigned short)bsub[i+4])<<2)) | (bsub[i+7] >> 6));  
     95                d =((0x3fc&(((unsigned short)baccum[i+4])<<2)) | (baccum[i+7] >> 6));  
     96                d = raw_subtract_values(d,s); 
     97                baccum[i+4]=d>>2; 
     98                baccum[i+7]=(baccum[i+7]&0x3F)|(d<<6); 
     99 
     100 
     101                s =((0x3f0&(((unsigned short)bsub[i+7])<<4)) | (bsub[i+6] >> 4));  
     102                d =((0x3f0&(((unsigned short)baccum[i+7])<<4)) | (baccum[i+6] >> 4));  
     103                d = raw_subtract_values(d,s); 
     104                baccum[i+6]=(baccum[i+6]&0x0F)|(d<<4); 
     105                baccum[i+7]=(baccum[i+7]&0xC0)|(d>>4); 
     106 
     107                s =((0x3c0&(((unsigned short)bsub[i+6])<<6)) | (bsub[i+9] >> 2));  
     108                d =((0x3c0&(((unsigned short)baccum[i+6])<<6)) | (baccum[i+9] >> 2));  
     109                d = raw_subtract_values(d,s); 
     110                baccum[i+6]=(baccum[i+6]&0xF0)|(d>>6); 
     111                baccum[i+9]=(baccum[i+9]&0x03)|(d<<2); 
     112 
     113 
     114                s =((0x300&(((unsigned short)bsub[i+9])<<8)) | (bsub[i+8]));  
     115                d =((0x300&(((unsigned short)baccum[i+9])<<8)) | (baccum[i+8]));  
     116                d = raw_subtract_values(d,s); 
     117                baccum[i+8]=d; 
     118                baccum[i+9]=(baccum[i+9]&0xFC)|(d>>8); 
     119            } 
     120            fwrite(baccum,1,RAW_ROWLEN,fdest); 
     121            if ( (j & 0x1F) == 0 ) { 
     122                gui_browser_progress_show((char *)dest, j*100/CAM_RAW_ROWS); 
     123            } 
     124        } 
     125        gui_browser_progress_show((char *)dest, 100); 
     126        finished(); 
     127        status = 1; 
     128    } 
     129    free(baccum); 
     130    free(bsub); 
     131    if(ffrom) fclose(ffrom); 
     132    if(fsub) fclose(fsub); 
     133    if(fdest) { 
     134        fclose(fdest); 
     135         t.actime = t.modtime = time(NULL); 
     136         utime((char *)dest, &t); 
     137    } 
     138    return status; 
     139} 
    20140 
    21141int raw_merge_start(int action){ 
  • branches/juciphox/core/raw_merge.h

    r253 r479  
    88void raw_merge_add_file(char * filename); 
    99void raw_merge_end(void); 
    10  
     10int raw_subtract(const char *from, const char *sub, const char *dest);  
    1111#endif 
  • branches/juciphox/doc/version.txt

    r474 r479  
    55 
    66log 
     7 
     8479 / 0.3.0 
     9PhyrePhoX (PP) 
     10 
     11+ added taskviewer by reyalp http://chdk.setepontos.com/index.php/topic,2110.msg19622.html#msg19622 
     12+ added Fishpeppers Boot Logo from here: http://chdk.setepontos.com/index.php/topic,2122.0.html 
     13+ raw subtract for filebrowser by reyalp - http://chdk.setepontos.com/index.php/topic,2099.msg19362.html#msg19362 
     14* makefile changes:  
     15                added several docs in the /docs dir, these are "catted" together during compilation -> one big readme file's gonna be put into the zip. Also includes camera specific notes, if existing (placeholders for now) (thx for helping with this, Hacki). 
     16* Ixus 860is / SD870 - fixed ubasic_set_led (diff provided by FE50) 
     17* patched symboldmod and changed splashscreen a little (diff sent in by CHDKLover) 
     18* added toggle in scripts menu: now the saving of script params can be turned on/off (default: off) 
     19 
    720 
    821474 / 0.2.7 
  • branches/juciphox/include/camera.h

    r463 r479  
    4343 
    4444    #undef  CAM_AF_SCAN_DURING_VIDEO_RECORD // CHDK can make single AF scan during video record  
     45    #undef  CAM_HAS_VIDEO_BUTTON            // Camera can take stills in video mode, and vice versa 
    4546 
    4647//---------------------------------------------------------- 
     
    533534    #define CAM_ADJUSTABLE_ALT_BUTTON   1 
    534535    #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO 
     536    #define  CAM_HAS_VIDEO_BUTTON       1 
    535537 
    536538 
     
    548550    #undef  CAM_CAN_SD_OVER_NOT_IN_MF 
    549551    #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO 
     552    #define  CAM_HAS_VIDEO_BUTTON       1 
    550553 
    551554 
     
    563566    #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO 
    564567    #undef  CAM_CHDK_HAS_EXT_VIDEO_MENU 
     568    #define  CAM_HAS_VIDEO_BUTTON       1 
    565569 
    566570 
  • branches/juciphox/include/conf.h

    r473 r479  
    2424    int raw_save_first_only; //for series shooting 
    2525    int raw_nr; 
     26    int sub_batch_prefix; // output of batch subtracts 
     27    int sub_batch_ext; 
     28    int sub_in_dark_value; // values <= to this are not subtracted, i.e. the dark value of your darkframe 
     29    int sub_out_dark_value; // minimum value to output from subtract, i.e. dark value of your final image 
    2630 
    2731    int show_osd; 
     
    216220    int values_show_luminance; 
    217221 
    218     int ns_enable_memdump; 
     222    int debug_shortcut_action;  // 0=none, 1=dump, 2=page display 
     223    int debug_display;          // 0=none, 1=props, 2=flash param, 3=tasks 
     224 
    219225    int script_startup;                 // remote autostart 
    220226    int remote_enable;                  // remote enable 
     
    244250 
    245251    int script_param_set; 
     252    int script_param_save; 
    246253     
    247254    long mem_view_addr_init; 
     
    258265#define SHOOTING_PROGRESS_PROCESSING    2 
    259266#define SHOOTING_PROGRESS_DONE          3 
     267 
     268// video quality defaults. Ideally, these should match the camera default settings 
     269#define VIDEO_DEFAULT_QUALITY   84  // ? where does 84 come from 
     270#define VIDEO_MAX_QUALITY       99 
     271#define VIDEO_DEFAULT_BITRATE   3 // should be 1 for all cams 
    260272 
    261273extern int state_kbd_script_run; 
     
    277289extern int shutter_int; 
    278290 
     291// reyalp: putting these in conf, since the conf values are lookups for them 
     292// prefixes and extentions available for raw images (index with conf.raw_prefix etc) 
     293#define NUM_IMG_PREFIXES 3 // IMG_ CRW_ SND_ (could add ETC_ SDR_ AUT_ MVI_ MRK_) 
     294#define NUM_IMG_EXTS 5 // .JPG .CRW .CR2 .THM .WAV (could add .AVI .MRK) 
     295extern const char* img_prefixes[NUM_IMG_PREFIXES]; 
     296extern const char* img_exts[NUM_IMG_EXTS]; 
     297// ugh, but various things need it 
     298#define VIDEO_BITRATE_STEPS 10 
     299extern const char *video_bitrate_strings[VIDEO_BITRATE_STEPS]; 
    279300#endif 
  • branches/juciphox/include/lolevel.h

    r473 r479  
    4343extern void __attribute__((noreturn)) _ExitTask(); 
    4444extern int _taskNameToId(char* taskName); // VxWorks only, task's name first letter must be 't', maximum 10 chars total  
     45extern const char *_taskName(int taskID); // VxWorks only for now 
     46extern int _taskIdListGet(int *idlist,int max); // VxWorks only for now 
    4547extern void _taskSuspend(int taskId);  
    4648extern void _taskResume(int taskId); extern long _GetPropertyCase(long opt_id, void *buf, long bufsize); 
  • branches/juciphox/include/platform.h

    r474 r479  
    6666MODE_VIDEO_STITCH       , 
    6767MODE_VIDEO_MANUAL       , 
    68 MODE_SPORTS                                                    
     68MODE_SPORTS                        
    6969}; 
    7070 
     71// this is nasty, but not as nasty as checking each of the flags all over the place 
     72#define MODE_IS_VIDEO(m)   (((m)&MODE_SHOOTING_MASK)==MODE_VIDEO_STD || \ 
     73                            ((m)&MODE_SHOOTING_MASK)==MODE_VIDEO_SPEED ||  \ 
     74                            ((m)&MODE_SHOOTING_MASK)==MODE_VIDEO_COMPACT || \ 
     75                            ((m)&MODE_SHOOTING_MASK)==MODE_VIDEO_MY_COLORS || \ 
     76                            ((m)&MODE_SHOOTING_MASK)==MODE_VIDEO_COLOR_ACCENT || \ 
     77                            ((m)&MODE_SHOOTING_MASK)==MODE_VIDEO_COLOR_SWAP || \ 
     78                            ((m)&MODE_SHOOTING_MASK)==MODE_VIDEO_TIME_LAPSE || \ 
     79                            ((m)&MODE_SHOOTING_MASK)==MODE_VIDEO_PORTRAIT || \ 
     80                            ((m)&MODE_SHOOTING_MASK)==MODE_VIDEO_NIGHT || \ 
     81                            ((m)&MODE_SHOOTING_MASK)==MODE_VIDEO_INDOOR || \ 
     82                            ((m)&MODE_SHOOTING_MASK)==MODE_VIDEO_FOLIAGE || \ 
     83                            ((m)&MODE_SHOOTING_MASK)==MODE_VIDEO_SNOW  || \ 
     84                            ((m)&MODE_SHOOTING_MASK)==MODE_VIDEO_BEACH || \ 
     85                            ((m)&MODE_SHOOTING_MASK)==MODE_VIDEO_AQUARIUM || \ 
     86                            ((m)&MODE_SHOOTING_MASK)==MODE_VIDEO_SUPER_MACRO || \ 
     87                            ((m)&MODE_SHOOTING_MASK)==MODE_VIDEO_STITCH || \ 
     88                            ((m)&MODE_SHOOTING_MASK)==MODE_VIDEO_MANUAL) 
    7189#if CAM_PROPSET == 2     // most digic3 cameras 
    7290 #define PROPCASE_DRIVE_MODE                                    102 
     
    144162#define MODE_SCREEN_OPENED      0x0400 
    145163#define MODE_SCREEN_ROTATED     0x0800 
    146  
    147164#define AS_SIZE (sizeof(aperture_sizes_table)/sizeof(aperture_sizes_table[0])) 
    148165#define ASID_MIN (aperture_sizes_table[0].id) 
     
    456473long get_vbatt_min(); 
    457474long get_vbatt_max(); 
    458 void play_sound(short sound); 
     475void play_sound(unsigned sound); 
    459476void ubasic_camera_set_raw(int mode); 
    460477void ubasic_camera_set_nr(int mode); 
  • branches/juciphox/include/stdlib.h

    r463 r479  
    153153extern long task_lock(); 
    154154extern long task_unlock(); 
     155extern const char *task_name(int id); 
     156int task_id_list_get(int *idlist,int size); 
    155157 
    156158#define DOS_ATTR_RDONLY         0x01            /* read-only file */ 
  • branches/juciphox/lib/font/rbf_font.c

    r473 r479  
    112112 
    113113        close(fd); 
     114        conf.menu_symbol_enable=(rbf_font.height>=rbf_symbol_font.height); 
    114115        return 1; 
    115116    } 
     
    168169 
    169170        close(fd); 
     171        conf.menu_symbol_enable=(rbf_font.height>=rbf_symbol_font.height); 
    170172        return 1; 
    171173    } 
  • branches/juciphox/lib/ubasic/ubasic.c

    r464 r479  
    433433                r = get_battery_temp(); 
    434434                break; 
     435                default: // do something sane if given a bad index 
     436                        r = 0; 
    435437  } 
    436438    break; 
     
    16951697    to = expr(); 
    16961698    int m=mode_get()&MODE_SHOOTING_MASK; 
    1697     int mode_video=((m==MODE_VIDEO_STD) ||  
    1698                             (m==MODE_VIDEO_SPEED) ||   
    1699                             (m==MODE_VIDEO_COMPACT) || 
    1700                             (m==MODE_VIDEO_MY_COLORS) ||  
    1701                             (m==MODE_VIDEO_COLOR_ACCENT)); 
     1699        int mode_video=MODE_IS_VIDEO(m); 
    17021700#if CAM_HAS_MANUAL_FOCUS 
    17031701    if (shooting_get_focus_mode() || (mode_video)) shooting_set_focus(to, SET_NOW); 
  • branches/juciphox/makefile.inc

    r464 r479  
    44PLATFORMSUB=100a 
    55 
     6#PLATFORM=a620 
     7#PLATFORMSUB=100f 
     8 
     9#PLATFORM=ixus40_sd300 
     10#PLATFORMSUB=100k 
     11 
    612#PLATFORM=sx100is 
    713#PLATFORMSUB=100c 
     
    1824#PLATFORM=ixus750_sd550 
    1925#PLATFORMSUB=100g 
    20  
    21 #PLATFORM=a620 
    22 #PLATFORMSUB=100f 
    2326 
    2427#PLATFORM=a640 
  • branches/juciphox/platform/generic/wrappers.c

    r473 r479  
    5555} 
    5656 
     57#ifndef CAM_DRYOS 
     58const char *task_name(int id) 
     59{ 
     60    return _taskName(id); 
     61} 
     62 
     63int task_id_list_get(int *idlist,int size) 
     64{ 
     65    return _taskIdListGet(idlist,size); 
     66} 
     67#endif 
     68 
    5769long get_property_case(long id, void *buf, long bufsize) 
    5870{ 
     
    138150} 
    139151 
    140 void play_sound(short sound) 
    141 
    142         short tmp; 
    143     switch (sound) 
    144 
    145   case 0: 
    146     tmp = 0x2001; //startup sound 
    147     break; 
    148   case 1: 
    149     tmp = 0x2002; //shutter sound 
    150     break; 
    151   case 2: 
    152     tmp = 0x2003; //button press sound 
    153     break; 
    154   case 3: 
    155     tmp = 0x2004; //self-timer sound 
    156     break; 
    157   case 4: 
    158    tmp = 0xC211; //short beep 
    159     break; 
    160   case 5: 
    161    tmp = 50000; // AF confirmation  
    162     break; 
    163   case 6: 
    164    tmp = 0xC507; // error beep imo 
    165     break; 
    166   case 7: 
    167    tmp = 0x400D; // LONG ERROR BEEP CONTINIUOUS- warning, cannot be stopped (yet) 
    168     break; 
    169  } 
    170     _PT_PlaySound(tmp, 0); 
     152void play_sound(unsigned sound) 
     153
     154        static const int sounds[]={ 0x2001, //startup sound 
     155                                0x2002, //shutter sound 
     156                                0x2003, //button press sound 
     157                                0x2004, //self-timer sound 
     158                                0xC211, //short beep 
     159                                50000,  // AF confirmation  
     160                                0xC507, // error beep imo 
     161                                0x400D, // LONG ERROR BEEP CONTINIUOUS- warning, cannot be stopped (yet) 
     162                            }; 
     163    if(sound >= sizeof(sounds)/sizeof(sounds[0])) 
     164        return; 
     165 
     166    _PT_PlaySound(sounds[sound], 0); 
    171167} 
    172168 
  • branches/juciphox/platform/ixus860_sd870/lib.c

    r341 r479  
    1717} 
    1818 
    19  
    20 #define LED_PR 0xC02200CC 
     19//  fe50 10-Aug-2008:  LED adresses on SD870:  
     20#define LED_PR     0xC02200CC  //0 
     21#define LED_YELLOW 0xc02200D8  //+12  (???) 
     22#define LED_ORANGE 0xc0220133  //+103 
     23#define LED_GREEN  0xc0220136  //+106 
     24#define LED_AF     0xc0223030  //+12132 
    2125 
    2226void debug_led(int state) 
     
    2933} 
    3034 
    31 #define LED_AF 0xc0223030 
    32  
     35//  fe50 10-Aug-2008 
    3336void ubasic_set_led(int led, int state, int bright) 
    3437{ 
    35 /* ??? 
    36   int leds[] = {12,16,4,8,4,0,4}; 
    37   if(led < 4 || led > 10 || led == 6) return; 
    38   volatile long *p=(void*)LED_AF + leds[led-4]; 
    39     if (state) 
    40         p[0]=0x46; 
    41     else 
    42         p[0]=0x44; 
    43 */ 
     38        // "brigth" not implemented 
     39        // YELLOW not available 
     40        // TIMER -> LED_AF 
     41        int leds[] = {106,12,0,103,0,12132,12132};  //  green | yellow | not used | orange | blue | af beam | timer 
     42        if(led < 4 || led > 10 || led == 6) return; //  return on invalid params;  no extra TIMER LED (is same as AF) 
     43        volatile long *p=(void*)LED_PR + leds[led-4]; 
     44        if (state) 
     45                p[0]=0x46; 
     46        else 
     47                p[0]=0x44; 
    4448} 
    45  
    4649 
    4750int get_flash_params_count(void){ 
  • branches/juciphox/version.inc

    r474 r479  
    1 BUILD_NUMBER := 0.2.7 
     1BUILD_NUMBER := 0.3.0