Changeset 1457 for trunk


Ignore:
Timestamp:
12/05/11 10:08:12 (18 months ago)
Author:
philmoz
Message:

Fix for CA-1 remote from vnd:
http://chdk.setepontos.com/index.php?topic=650.msg77324#msg77324
Enable manual focus when AF Lock enganged on IXUS220 from jstanley0:
http://chdk.setepontos.com/index.php?topic=650.msg77347#msg77347
Fix for zoom crash on IXUS220 from jstanley0:
http://chdk.setepontos.com/index.php?topic=650.msg77387#msg77387

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/core/kbd.c

    r1438 r1457  
    180180    } 
    181181    // deals with alt-mode switch and delay emulation 
    182     if (key_pressed) { 
     182    if (key_pressed && !nRmt) { 
    183183        if (kbd_is_key_pressed(conf.alt_mode_button) 
    184184                || ((key_pressed >= CAM_EMUL_KEYPRESS_DELAY) 
  • trunk/include/camera.h

    r1416 r1457  
    3838#undef  CAM_HAS_ND_FILTER                       // Camera has build-in ND filter 
    3939#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 
    4041#define CAM_CAN_SD_OVERRIDE         1           // Camera allows to do subject distance override 
    4142#define CAM_HAS_MANUAL_FOCUS        1           // Camera has manual focus mode 
  • trunk/include/propset4.h

    r1326 r1457  
    88*/ 
    99 
     10#define PROPCASE_AF_LOCK                         11             // 0 = AF not locked, 1 = AF locked 
    1011#define PROPCASE_FLASH_SYNC_CURTAIN              64 
    1112#define PROPCASE_SUBJECT_DIST2                   65 
  • trunk/platform/generic/shooting.c

    r1414 r1457  
    760760 int m=mode_get()&MODE_SHOOTING_MASK; 
    761761#if !CAM_CAN_SD_OVER_NOT_IN_MF && CAM_CAN_SD_OVERRIDE 
     762 #if CAM_CAN_SD_OVER_IN_AF_LOCK 
     763  if (shooting_get_prop(PROPCASE_AF_LOCK)) 
     764    return 1; 
     765 #endif 
    762766  return (shooting_get_focus_mode() || MODE_IS_VIDEO(m)); 
    763767#elif !CAM_CAN_SD_OVERRIDE 
  • trunk/platform/generic/wrappers.c

    r1453 r1457  
    145145void lens_set_zoom_point(long newpt) 
    146146{ 
    147 #if defined (CAMERA_s95) 
    148         long startTime; 
    149 #endif 
    150  
    151147    if (newpt < 0) { 
    152148        newpt = 0; 
     
    193189    _MoveZoomLensWithPoint((short*)&newpt); 
    194190 
    195   #if defined (CAMERA_s95) 
    196         // this will hang sometimes on s95 when zoom_busy gets stuck as a 1 
    197         // we add a timeout as a work-around for this problem 
    198         startTime = get_tick_count(); 
    199         while (get_tick_count() < (startTime + 2000)) { 
    200                 if (!zoom_busy) 
    201                         break; 
    202         } 
    203   #else // !CAMERA_s95 
    204         while (zoom_busy) ; 
    205   #endif // !CAMERA_s95 
     191    // tight loop here hangs some cameras (the task that clears zoom_busy 
     192    // is starved; seen at least on S95 and IXUS 220), so stick in a sleep 
     193    while (zoom_busy) msleep(10); 
    206194 
    207195    if (newpt==0) zoom_status=ZOOM_OPTICAL_MIN; 
  • trunk/platform/ixus220_elph300hs/platform_camera.h

    r1448 r1457  
    3838        #define CAM_HAS_ND_FILTER               1 
    3939    #undef  CAM_CAN_SD_OVER_NOT_IN_MF 
     40    #define CAM_CAN_SD_OVER_IN_AF_LOCK 1 
    4041    #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO 
    4142    #define CAM_HAS_VIDEO_BUTTON                        1 
Note: See TracChangeset for help on using the changeset viewer.