In the trunk build for this camera, subject distance override doesn't do anything (as has been mentioned before). The CHDK documentation indicates you have to be in manual focus mode in order for this to work... but the IXUS 220 doesn't _have_ manual focus mode; that's one of the reasons I want CHDK.
So I played with forcing it via CAM_CAN_SD_OVER_NOT_IN_MF, and it mostly worked, but the camera crashed occasionally (presumably when its own continuous autofocus clashed with CHDK's override).
As I surmised earlier,
So perhaps I could update shooting_can_focus() in core/shooting.c to check AFL on cameras that don't have manual focus mode?
That's what I did in the attached builds. And it seems to work. Subject distance override still does nothing when not in AF lock mode... but when you are in AF lock mode (half-press + left arrow), it works, and I haven't seen it crash.
(The easiest way to see it work is:
- Enable AF lock (half-press + left)
- Enter ALT mode
- Press UP for manual focus toggle
- Press DOWN for infinity focus
- Now use the zoom lever to go out and back in; it's most noticeable when you go wrap around from 0 (closest) to 65536 (infinity)
Note that the property indicating AF lock (11) was not in propset4.h, so I added it. I found that number in
http://chdk.wikia.com/wiki/PropertyCase under property set 2, but confirmed that this is correct on the IXUS 220. So perhaps it should go in propset2.h and propset3.h as well.
I've attached a patch, but it's probably not ready for the trunk; it needs review from CHDK gurus, especially since it is not an ELPH 300/IXUS 220-specific change.
I've also attached builds--if you're interested in manual focus, please give it a try.