Changeset 2086


Ignore:
Timestamp:
08/17/12 09:19:26 (10 months ago)
Author:
msl
Message:

SX220
+ added 'physw_sleep_delay' instead of hardwired delay
+ added 'PARAM_OWNER_NAME' in platform_camera.h
+ cleanup kbd.c, platform_camera.h

All
+ changed color definition for DOF+ displaying in misc (safe green in record mode)

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/core/gui_osd.c

    r2065 r2086  
    184184    sprintf(osd_buf+strlen(osd_buf), "%9s", ""); 
    185185    osd_buf[9-i]=0; 
    186     draw_string(conf.values_pos.x+i*FONT_WIDTH, conf.values_pos.y+m, osd_buf, use_good_color?((conf.osd_color & 0xff00) | COLOR_GREEN):conf.osd_color); 
     186    draw_string(conf.values_pos.x+i*FONT_WIDTH, conf.values_pos.y+m, osd_buf, use_good_color?((conf.osd_color & 0xff00) | COLOR_HISTO_G):conf.osd_color); 
    187187  } else { 
    188188    osd_buf[9]=0; 
  • trunk/platform/sx220hs/kbd.c

    r2021 r2086  
    2323#define KEYS_MASK0 (0x000FFC0F)     // sx220 physw_status[0] 
    2424#define KEYS_MASK1 (0x00200000) 
    25 #define KEYS_MASK2 (0x00002182)         // sx220 physw_status[2] 
     25#define KEYS_MASK2 (0x00002182)     // sx220 physw_status[2] 
    2626 
    2727#define NEW_SS (0x2000) 
    2828#define SD_READONLY_FLAG (0x20000) 
    29 #define SD_READONLY_IDX     2          
    30 #define USB_IDX             2  
     29#define SD_READONLY_IDX     2 
     30#define USB_IDX             2 
    3131 
    3232#define USB_MASK (0x4000000) 
     
    3636int get_usb_bit()  
    3737{ 
    38         long usb_physw[3]; 
    39         usb_physw[USB_IDX] = 0; 
    40         _kbd_read_keys_r2(usb_physw); 
    41         return(( usb_physw[USB_IDX] & USB_MASK)==USB_MASK) ;  
     38    long usb_physw[3]; 
     39    usb_physw[USB_IDX] = 0; 
     40    _kbd_read_keys_r2(usb_physw); 
     41    return(( usb_physw[USB_IDX] & USB_MASK)==USB_MASK) ; 
    4242} 
    4343 
     
    6464    { 0, KEY_ZOOM_IN2        , 0x0000000C }, 
    6565    { 0, KEY_DISPLAY         , 0x00000800 }, 
    66     { 0, KEY_UP              , 0x00001000 },  
     66    { 0, KEY_UP              , 0x00001000 }, 
    6767    { 0, KEY_RIGHT           , 0x00006000 }, 
    6868    { 0, KEY_SET             , 0x00010000 }, 
     
    7070    { 0, KEY_MENU            , 0x00040000 }, 
    7171    { 0, KEY_VIDEO           , 0x00080000 }, 
    72  //   { 0, KEY_RIGHT_SOFT      , 0x00002000 },  //soft keys commented out but still counted in the keymasks, seems to disable them like we want. 
    73  //   { 0, KEY_UP_SOFT         , 0x00000400 },  //if enabled can cause unintentional button presses in alt menu when rotating the jogdial really fast. 
     72 //   { 0, KEY_RIGHT_SOFT      , 0x00002000 },  //soft keys commented out but still counted in the keymasks, seems to disable them like we want. 
     73 //   { 0, KEY_UP_SOFT         , 0x00000400 },  //if enabled can cause unintentional button presses in alt menu when rotating the jogdial really fast. 
    7474 //   { 0, KEY_DOWN_SOFT       , 0x00008000 }, 
    7575 
     
    9292 
    9393void my_blinkk(void) { 
    94         int i; 
    95         while(1) { 
    96                 *((volatile int *) 0xC0220130) = 0x46; // Turn on LED 
    97                 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); } 
    98  
    99                 *((volatile int *) 0xC0220130) = 0x44; // Turn off LED 
    100                 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); } 
    101  
    102                 *((volatile int *) 0xC0220130) = 0x46; // Turn on LED 
    103                 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); } 
    104  
    105                 *((volatile int *) 0xC0220130) = 0x44; // Turn off LED 
    106                 for (i=0; i<0x900000; i++) { asm volatile ( "nop\n" ); } 
    107         } 
     94    int i; 
     95    while(1) { 
     96        *((volatile int *) 0xC0220130) = 0x46; // Turn on LED 
     97        for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); } 
     98 
     99        *((volatile int *) 0xC0220130) = 0x44; // Turn off LED 
     100        for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); } 
     101 
     102        *((volatile int *) 0xC0220130) = 0x46; // Turn on LED 
     103        for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); } 
     104 
     105        *((volatile int *) 0xC0220130) = 0x44; // Turn off LED 
     106        for (i=0; i<0x900000; i++) { asm volatile ( "nop\n" ); } 
     107    } 
    108108} 
    109109 
     
    115115static void __attribute__((noinline)) mykbd_task_proceed() { 
    116116    while (physw_run) { 
    117         _SleepTask(*((int*)(0x1c40+0x8)));//10); @FF0244F4 
    118                  
    119                 if (wrap_kbd_p1_f() == 1) {   // autorepeat ? 
    120                 _kbd_p2_f(); 
     117        _SleepTask(physw_sleep_delay); 
     118 
     119        if (wrap_kbd_p1_f() == 1) {   // autorepeat ? 
     120            _kbd_p2_f(); 
    121121        } 
    122122    } 
     
    126126void __attribute__((naked,noinline)) mykbd_task() { 
    127127 
    128         mykbd_task_proceed();  
     128    mykbd_task_proceed(); 
    129129 
    130130// function can be modified to restore SP here... 
    131131 
    132         _ExitTask(); 
     132    _ExitTask(); 
    133133} 
    134134 
     
    137137    asm volatile( 
    138138                "STMFD   SP!, {R1-R7,LR}\n"       //SX220 modified 
    139                 "MOV     R5, #0\n"                                       
     139                "MOV     R5, #0\n" 
    140140            //    "BL      _kbd_read_keys\n"       // replaces kbd_fetch_data() 
    141141                "BL      my_kbd_read_keys\n"     // + 
    142142                "B       _kbd_p1_f_cont\n"       // continue 
    143143    ); 
    144          
    145         return 0;   // shut up the compiler 
     144 
     145    return 0;   // shut up the compiler 
    146146} 
    147147 
     
    164164// like SX30 and g12 
    165165void my_kbd_read_keys() { 
    166          
     166 
    167167    kbd_prev_state[0] = kbd_new_state[0]; 
    168         kbd_prev_state[1] = kbd_new_state[1]; 
     168    kbd_prev_state[1] = kbd_new_state[1]; 
    169169    kbd_prev_state[2] = kbd_new_state[2]; 
    170170 
    171         _GetKbdState(kbd_new_state); 
    172         _kbd_read_keys_r2(kbd_new_state); 
    173          
     171    _GetKbdState(kbd_new_state); 
     172    _kbd_read_keys_r2(kbd_new_state); 
    174173 
    175174    if (kbd_process() == 0) { 
    176175        // we read keyboard state with _kbd_read_keys() 
    177                   physw_status[0] = kbd_new_state[0]; 
    178                   physw_status[1] = kbd_new_state[1]; 
    179           physw_status[2] = kbd_new_state[2]; 
    180                 jogdial_control(0); 
     176        physw_status[0] = kbd_new_state[0]; 
     177        physw_status[1] = kbd_new_state[1]; 
     178        physw_status[2] = kbd_new_state[2]; 
     179        jogdial_control(0); 
    181180    } else { 
    182181        // override keys 
    183182        physw_status[0] = (kbd_new_state[0] | KEYS_MASK0) & (~KEYS_MASK0 | kbd_mod_state[0]);  
    184                 physw_status[1] = (kbd_new_state[1] | KEYS_MASK1) & (~KEYS_MASK1 | kbd_mod_state[1]);  
     183        physw_status[1] = (kbd_new_state[1] | KEYS_MASK1) & (~KEYS_MASK1 | kbd_mod_state[1]);  
    185184        physw_status[2] = (kbd_new_state[2] | KEYS_MASK2) & (~KEYS_MASK2 | kbd_mod_state[2]); 
    186185         
    187                 if ((jogdial_stopped==0) && !state_kbd_script_run) { 
     186        if ((jogdial_stopped==0) && !state_kbd_script_run) { 
    188187            jogdial_control(1); 
    189188            get_jogdial_direction(); 
     
    193192    } 
    194193 
    195         usb_remote_key() ; 
    196  
    197         if (conf.remote_enable) { 
    198                 physw_status[USB_IDX] = physw_status[USB_IDX] & ~(SD_READONLY_FLAG | USB_MASK); 
    199         } else { 
    200                 physw_status[USB_IDX] = physw_status[USB_IDX] & ~SD_READONLY_FLAG; 
    201         } 
     194    usb_remote_key() ; 
     195 
     196    if (conf.remote_enable) { 
     197        physw_status[USB_IDX] = physw_status[USB_IDX] & ~(SD_READONLY_FLAG | USB_MASK); 
     198    } else { 
     199        physw_status[USB_IDX] = physw_status[USB_IDX] & ~SD_READONLY_FLAG; 
     200    } 
    202201 
    203202} 
     
    224223 
    225224void kbd_key_release_all() { 
    226          
    227         kbd_mod_state[0] |= KEYS_MASK0; 
     225 
     226    kbd_mod_state[0] |= KEYS_MASK0; 
    228227    kbd_mod_state[1] |= KEYS_MASK1; 
    229228    kbd_mod_state[2] |= KEYS_MASK2; 
     
    259258        } 
    260259    } 
    261          
     260 
    262261    return 0; 
    263262} 
  • trunk/platform/sx220hs/platform_camera.h

    r1848 r2086  
    3737 
    3838    #define CAM_HAS_CMOS                    1 
     39    #define CAM_HAS_ND_FILTER               1 
     40    #define CAM_HAS_JOGDIAL                 1 
     41    #define CAM_HAS_VIDEO_BUTTON            1 
     42    #define CAM_HAS_MOVIE_DIGEST_MODE       1 
    3943 
    40     #define CAM_HAS_ND_FILTER               1 
     44    #undef  CAM_HAS_ERASE_BUTTON 
    4145 
    4246    #undef  CAM_CAN_SD_OVER_NOT_IN_MF 
     47 
     48    #define CAM_VIDEO_QUALITY_ONLY          1 
     49    #undef  CAM_VIDEO_CONTROL 
    4350    #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO 
    4451 
    45     #define CAM_HAS_VIDEO_BUTTON            1 
    46     #define CAM_VIDEO_QUALITY_ONLY          1 
    47  
    48     #undef  CAM_VIDEO_CONTROL 
    49  
    50     #define CAM_HAS_JOGDIAL                 1 
    5152    #undef  CAM_USE_ZOOM_FOR_MF 
    5253 
     
    7172    #define CAM_ACTIVE_AREA_Y2              3060 
    7273 
    73     #define PARAM_CAMERA_NAME               4 // parameter number for GetParameterData 
     74    #define PARAM_CAMERA_NAME               4 // parameter number for GetParameterData - Camera Model name 
     75    #define PARAM_OWNER_NAME                7 // parameter number for GetParameterData - Owner name 
     76     
    7477    #undef  CAM_SENSOR_BITS_PER_PIXEL 
    7578    #define CAM_SENSOR_BITS_PER_PIXEL       12 
    7679 
    7780    #define CAM_EXT_TV_RANGE                1 
     81    #define CAM_CHDK_HAS_EXT_VIDEO_TIME     1 
    7882 
    7983    #undef  CAM_BITMAP_PALETTE 
    8084    #define CAM_BITMAP_PALETTE              10 
    81     #undef  CAM_HAS_ERASE_BUTTON 
    8285    #define CAM_SHOW_OSD_IN_SHOOT_MENU      1 
    8386 
     
    99102 
    100103    //#define CAM_QUALITY_OVERRIDE            1 // works not really 
    101     #define CAM_CHDK_HAS_EXT_VIDEO_TIME     1 
    102104 
    103105    #define CAM_STARTUP_CRASH_FILE_OPEN_FIX 1 
     
    111113 
    112114    #define DRAW_ON_ACTIVE_BITMAP_BUFFER_ONLY   1 
    113     #define CAM_HAS_MOVIE_DIGEST_MODE       1 
    114115//---------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.