Waterwingz (talk | contribs) No edit summary |
Waterwingz (talk | contribs) No edit summary |
||
(27 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | {| border="2" cellpadding="1" cellspacing="1" class="article-table" style="margin: 0px auto |
+ | {| border="2" cellpadding="1" cellspacing="1" class="article-table" style="margin: 0px auto; height: 500px;" |
|+CHDK set_focus() Mode Compatability Chart |
|+CHDK set_focus() Mode Compatability Chart |
||
|- |
|- |
||
Line 15: | Line 15: | ||
| style="text-align:center;vertical-align:middle;"| Y |
| style="text-align:center;vertical-align:middle;"| Y |
||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
||
+ | |- |
||
+ | | style="text-align:center;vertical-align:middle;"| A570 |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
||
+ | |- |
||
+ | | style="text-align:center;vertical-align:middle;"| A590 |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"| |
||
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
||
|- |
|- |
||
| style="text-align:center;vertical-align:middle;"| A720 |
| style="text-align:center;vertical-align:middle;"| A720 |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
||
+ | |- |
||
+ | | style="text-align:center;vertical-align:middle;"| A810 |
||
| style="text-align:center;vertical-align:middle;"| Y |
| style="text-align:center;vertical-align:middle;"| Y |
||
| style="text-align:center;vertical-align:middle;"| Y |
| style="text-align:center;vertical-align:middle;"| Y |
||
| style="text-align:center;vertical-align:middle;"| Y |
| style="text-align:center;vertical-align:middle;"| Y |
||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
+ | |- |
||
+ | | style="text-align:center;vertical-align:middle;"| A1100 |
||
+ | | style="text-align:center;vertical-align:middle;"| N |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"| N |
||
+ | | style="text-align:center;vertical-align:middle;"|N |
||
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
||
+ | * camera needs testing per [http://chdk.setepontos.com/index.php?topic=11078.msg108859#msg108859 Setting focus from scripts or menus] |
||
|- |
|- |
||
| style="text-align:center;vertical-align:middle;"| A1200 |
| style="text-align:center;vertical-align:middle;"| A1200 |
||
Line 28: | Line 57: | ||
| style="text-align:center;vertical-align:middle;"| Y |
| style="text-align:center;vertical-align:middle;"| Y |
||
| style="text-align:center;vertical-align:middle;"| N |
| style="text-align:center;vertical-align:middle;"| N |
||
+ | | style="text-align:center;vertical-align:middle;"|N |
||
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
||
+ | |- |
||
+ | | style="text-align:center;vertical-align:middle;"| A3400 |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"| N* |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"|Y |
||
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"|* crashes |
||
+ | |- |
||
+ | | style="text-align:center;vertical-align:middle;"| D10 |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
|- |
|- |
||
| style="text-align:center;vertical-align:middle;"| G10 |
| style="text-align:center;vertical-align:middle;"| G10 |
||
Line 35: | Line 78: | ||
| style="text-align:center;vertical-align:middle;"| Y |
| style="text-align:center;vertical-align:middle;"| Y |
||
| style="text-align:center;vertical-align:middle;"| Y |
| style="text-align:center;vertical-align:middle;"| Y |
||
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"|Y |
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
+ | |- |
||
+ | | style="text-align:center;vertical-align:middle;"| G12 |
||
+ | | style="text-align:center;vertical-align:middle;"| N* |
||
+ | | style="text-align:center;vertical-align:middle;"| N* |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"|N* |
||
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"|* all pass if #defines changed |
||
+ | |- |
||
+ | | style="text-align:center;vertical-align:middle;"| G15 |
||
+ | | style="text-align:center;vertical-align:middle;"| N |
||
+ | | style="text-align:center;vertical-align:middle;"| N |
||
+ | | style="text-align:center;vertical-align:middle;"| N |
||
+ | | style="text-align:center;vertical-align:middle;"|Y |
||
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
||
+ | |- |
||
+ | | style="text-align:center;vertical-align:middle;"| G1X |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"|N* |
||
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"|* all pass if #defines changed |
||
+ | |- |
||
+ | | style="text-align:center;vertical-align:middle;"| IXUS110_SD960 |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"|Y |
||
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
||
|- |
|- |
||
| style="text-align:center;vertical-align:middle;"| IXUS120_SD940 |
| style="text-align:center;vertical-align:middle;"| IXUS120_SD940 |
||
Line 42: | Line 113: | ||
| style="text-align:center;vertical-align:middle;"| Y |
| style="text-align:center;vertical-align:middle;"| Y |
||
| style="text-align:center;vertical-align:middle;"| Y |
| style="text-align:center;vertical-align:middle;"| Y |
||
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"|Y |
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
|- |
|- |
||
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| IXUS140HS_ELPH130 |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N* |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| Y |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N |
− | | style="text-align:center;vertical-align:middle;"| |
||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"|* crash |
||
|- |
|- |
||
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| IXUS240_ELPH320HS |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| Y |
− | | style="text-align:center;vertical-align:middle;"| N |
+ | | style="text-align:center;vertical-align:middle;"| N* |
| style="text-align:center;vertical-align:middle;"| Y |
| style="text-align:center;vertical-align:middle;"| Y |
||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"|* crash |
|- |
|- |
||
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| IXUS310_ELPH500HS |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| Y |
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"|Y |
||
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
||
+ | |- |
||
+ | | style="text-align:center;vertical-align:middle;"| IXUS700_SD500 |
||
+ | | style="text-align:center;vertical-align:middle;"| N* |
||
+ | | style="text-align:center;vertical-align:middle;"| N* |
||
+ | | style="text-align:center;vertical-align:middle;"| N* |
||
+ | | style="text-align:center;vertical-align:middle;"|N* |
||
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"|* SD override disabled in source |
||
+ | |- |
||
+ | | style="text-align:center;vertical-align:middle;"| IXUS870_SD880 |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
+ | | style="text-align:center;vertical-align:middle;"|Y |
||
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
||
+ | |- |
||
+ | | style="text-align:center;vertical-align:middle;"| IXUS970_SD890 |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
| style="text-align:center;vertical-align:middle;"| N |
| style="text-align:center;vertical-align:middle;"| N |
||
| style="text-align:center;vertical-align:middle;"| N |
| style="text-align:center;vertical-align:middle;"| N |
||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
|- |
|- |
||
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| S100 |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| Y |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| Y |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| Y |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"|Y |
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
|- |
|- |
||
+ | | style="text-align:center;vertical-align:middle;"| SX20 |
||
+ | | style="text-align:center;vertical-align:middle;"| N |
||
+ | | style="text-align:center;vertical-align:middle;"| N |
||
+ | | style="text-align:center;vertical-align:middle;"| Y |
||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
− | | style="text-align:center;vertical-align:middle;"| |
||
− | | style="text-align:center;vertical-align:middle;"| |
||
− | | style="text-align:center;vertical-align:middle;"| |
||
− | | style="text-align:center;vertical-align:middle;"| |
||
|- |
|- |
||
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| SX30 |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| Y |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"|N |
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
|- |
|- |
||
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| SX40HS |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N* |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| Y |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"|N* |
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"|* all but set_focus_only pass if #defines changed |
|- |
|- |
||
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| SX100IS |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| Y |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| Y |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| Y |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"|Y |
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
|- |
|- |
||
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| SX150IS |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| Y |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"|N |
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
|- |
|- |
||
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| SX160IS |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"|Y |
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
|- |
|- |
||
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| SX200IS |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N* |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N* |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N* |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"|N* |
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"|* all pass if camera is Canon MF mode prior to test starting |
|- |
|- |
||
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| SX220HS |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| Y |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N |
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
|- |
|- |
||
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| SX230HS |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N* |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N* |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| Y |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"|N |
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"|*CAM_CAN_SD_OVER_NOT_IN_MF crashes, CAM_CAN_SD_OVER_IN_AF_LOCK enables set_aflock |
|- |
|- |
||
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| SX240HS |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| Y |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"|N |
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
|- |
|- |
||
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| SX50 |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"| N |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"|Y |
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
|- |
|- |
||
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"|SX510HS |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"|N |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"|N* |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"|N |
− | | style="text-align:center;vertical-align:middle;"| |
+ | | style="text-align:center;vertical-align:middle;"|Y |
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"|*passes with #undef CAM_CAN_SD_OVER_NOT_IN_MF && #define CAM_CAN_SD_OVER_IN_AF_LOCK |
|- |
|- |
||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
Line 162: | Line 254: | ||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
|- |
|- |
||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
Line 169: | Line 261: | ||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
|- |
|- |
||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
Line 176: | Line 268: | ||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
|- |
|- |
||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
Line 183: | Line 275: | ||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
|- |
|- |
||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
Line 190: | Line 282: | ||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
| style="text-align:center;vertical-align:middle;"| |
| style="text-align:center;vertical-align:middle;"| |
||
− | | style="text-align: |
+ | | style="text-align:left;vertical-align:middle;font-size:9px;"| |
|} |
|} |
||
− | |||
− | |||
− | |||
− | |||
− | |||
− | CAM_CAN_SD_OVERRIDE 1 // Camera allows to do subject distance override |
||
− | in gui.c : |
||
− | enables SD bracketing menu & submenu item |
||
− | enables SD override menu & submenu items |
||
− | changes debugging shortcuts if cam does not have an erase button |
||
− | in shooting.c |
||
− | shooting_can_focus() , shooting_get_common_focus_mode() |
||
− | in gui_osd.c |
||
− | enables SD override shortcuts if cam does not have MF |
||
− | CAM_CAN_SD_OVER_NOT_IN_MF 1 // Camera allows subject distance (focus) override when not in manual focus mode |
||
− | in shooting.c |
||
− | shooting_can_focus() |
||
− | CAM_CAN_SD_OVER_IN_AF_LOCK // Camera allows subject distance (focus) override when in AF Lock mode |
||
− | // exact meaning: SD override works in AF lock or movie mode |
||
− | in shooting.c |
||
− | shooting_can_focus() |
||
− | CAM_CAN_SD_OVER_IN_AF_LOCK_ONLY // Camera allows subject distance (focus) override only when in AF Lock mode OR in movie mode |
||
− | in shooting.c |
||
− | shooting_can_focus() |
||
− | |||
− | CAM_HAS_MANUAL_FOCUS 1 // Camera has manual focus mode |
||
− | in gui_osd.c |
||
− | enables SD shortcuts if cam does not have MF |
||
− | in gui.c |
||
− | enables short cut display in alt help screen |
||
− | enables shortcut key detection in gui_chdk_kbd_process() |
||
− | in shooting.c |
||
− | shooting_get_common_focus_mode() : |
||
− | in camera_info.c camera_info.h |
||
− | sets manual focus to 1 in the camera_info structure (0 by default) |
||
− | in luascript.c ubasic.c |
||
− | in luaCB_set_focus() via camera_info setting |
||
− | . |
||
− | // Focus mode (0=Auto, 1=macro, 2=portrait, 3=Infinity, 4=MF 5=super macro) |
||
− | short shooting_get_focus_mode() { return shooting_get_prop(PROPCASE_FOCUS_MODE); } |
||
− | . |
||
− | short shooting_get_common_focus_mode() |
||
− | { |
||
− | #if !CAM_HAS_MANUAL_FOCUS && CAM_CAN_SD_OVERRIDE |
||
− | return conf.subj_dist_override_koef; |
||
− | #elif !CAM_CAN_SD_OVERRIDE |
||
− | return 0; |
||
− | #else |
||
− | return shooting_get_focus_mode(); |
||
− | #endif |
||
− | } |
||
− | . |
||
− | short shooting_can_focus() |
||
− | { |
||
− | #if !CAM_CAN_SD_OVER_NOT_IN_MF && CAM_CAN_SD_OVERRIDE |
||
− | #if CAM_CAN_SD_OVER_IN_AF_LOCK_ONLY |
||
− | if (shooting_get_prop(PROPCASE_AF_LOCK)) |
||
− | return 1; |
||
− | else if (!camera_info.state.mode_video) |
||
− | return 0; |
||
− | #elif CAM_CAN_SD_OVER_IN_AF_LOCK |
||
− | if (shooting_get_prop(PROPCASE_AF_LOCK)) |
||
− | return 1; |
||
− | #elif CAM_HAS_VIDEO_BUTTON |
||
− | return shooting_get_common_focus_mode(); |
||
− | #endif |
||
− | return (shooting_get_common_focus_mode() || camera_info.state.mode_video); |
||
− | #elif !CAM_CAN_SD_OVERRIDE |
||
− | return camera_info.state.mode_video; |
||
− | #elif defined (CAMERA_ixus800_sd700) |
||
− | // TODO whats the reason for this ?!? |
||
− | return (shooting_get_zoom()<8) && (camera_info.state.mode_shooting!=MODE_AUTO) && (camera_info.state.mode_shooting!=MODE_SCN_UNDERWATER); |
||
− | #else |
||
− | #ifdef PROPCASE_CONTINUOUS_AF |
||
− | if (shooting_get_prop(PROPCASE_CONTINUOUS_AF)) |
||
− | return 0; |
||
− | #endif |
||
− | #ifdef PROPCASE_SERVO_AF |
||
− | if (shooting_get_prop(PROPCASE_SERVO_AF)) |
||
− | return 0; |
||
− | #endif |
||
− | return 1; |
||
− | #endif |
||
− | } |
||
− | . |
||
− | void shooting_set_focus(int v, short is_now) |
||
− | { |
||
− | int s=v; |
||
− | if (!camera_info.state.mode_play) |
||
− | { |
||
− | if ((is_now) && shooting_can_focus()) |
||
− | { |
||
− | if (conf.dof_subj_dist_as_near_limit) |
||
− | { |
||
− | s=shooting_get_near_limit_f(v,shooting_get_min_real_aperture(),get_focal_length(lens_get_zoom_point())); |
||
− | } |
||
− | if (!conf.dof_use_exif_subj_dist && (s != INFINITY_DIST)) |
||
− | s+=shooting_get_lens_to_focal_plane_width(); |
||
− | lens_set_focus_pos(s); |
||
− | } |
||
− | else |
||
− | photo_param_put_off.subj_dist=v; |
||
− | } |
||
− | } |
||
− | . |
||
− | void lens_set_focus_pos(long newpos) |
||
− | { |
||
− | if (newpos >= MAX_DIST) newpos = INFINITY_DIST; // Set to infinity value that will work on all cameras |
||
− | _MoveFocusLensToDistance((short*)&newpos); |
||
− | while ((shooting_is_flash_ready()!=1) || (focus_busy)) msleep(10); |
||
− | newpos = _GetFocusLensSubjectDistance(); |
||
− | _SetPropertyCase(PROPCASE_SUBJECT_DIST1, &newpos, sizeof(newpos)); |
||
− | _SetPropertyCase(PROPCASE_SUBJECT_DIST2, &newpos, sizeof(newpos)); |
||
− | } |
||
− | . |
||
− | static int luaCB_set_focus( lua_State* L ) |
||
− | { |
||
− | int to = luaL_checknumber( L, 1 ); |
||
− | if (camera_info.cam_has_manual_focus) |
||
− | { |
||
− | if (shooting_get_focus_mode() || camera_info.state.mode_video) shooting_set_focus(to, SET_NOW); |
||
− | else shooting_set_focus(to, SET_LATER); |
||
− | } |
||
− | else |
||
− | { |
||
− | if (shooting_get_common_focus_mode() || camera_info.state.mode_video) shooting_set_focus(to, SET_NOW); |
||
− | else shooting_set_focus(to, SET_LATER); |
||
− | } |
||
− | return 0; |
||
− | } |
||
− | . |
||
− | static void set_focus_statement() |
||
− | { |
||
− | int to; |
||
− | accept(TOKENIZER_SET_FOCUS); |
||
− | to = expr(); |
||
− | if (camera_info.cam_has_manual_focus) |
||
− | { |
||
− | if (shooting_get_focus_mode() || (camera_info.state.mode_video)) shooting_set_focus(to, SET_NOW); |
||
− | else shooting_set_focus(to, SET_LATER); |
||
− | } |
||
− | else |
||
− | { |
||
− | if (camera_info.state.mode_video) shooting_set_focus(to, SET_NOW); |
||
− | else shooting_set_focus(to, SET_LATER); |
||
− | } |
||
− | accept_cr(); |
||
− | } |
||
− | . |
||
− | ==Propcases== |
||
− | |||
− | PROPCASE_FOCUS_STATE |
||
− | : Auto-Focus state (0 = unfocussed, 1 = focussed) |
||
− | : Auto-Focus state after half-press (stays 1 if shoot_half is released!) (0 orange, >=1 green, with AiAF=off only 0 or 1, with enabled AiAF or Face the value depends on position & number of AF boxes) |
||
− | PROPCASE_FOCUS_MODE |
||
− | : (0=AUTO 1=MF) |
||
− | PROPCASE_REAL_FOCUS_MODE |
||
− | : (0=Auto, 1=macro, 2=portrait, 3=Infinity, 4=MF 5=super macro) |
||
− | |||
− | PROPCASE_AF_LOCK |
||
− | : 0 = AF not locked, 1 = AF locked |
||
− | PROPCASE_CONTINUOUS_AF |
||
− | PROPCASE_SERVO_AF |
Latest revision as of 16:13, 28 February 2014
Camera | set_focus() only | set_aflock() | PressSw1AndMF | SS.MFOn | Notes |
---|---|---|---|---|---|
A540 | Y | Y | Y | ||
A570 | Y | Y | Y | ||
A590 | Y | Y | Y | ||
A720 | Y | Y | Y | Y | |
A810 | Y | Y | Y | ||
A1100 | N | Y | N | N |
|
A1200 | N | Y | N | N | |
A3400 | Y | N* | Y | Y | * crashes |
D10 | Y | Y | Y | ||
G10 | Y | Y | Y | Y | |
G12 | N* | N* | Y | N* | * all pass if #defines changed |
G15 | N | N | N | Y | |
G1X | Y | Y | Y | N* | * all pass if #defines changed |
IXUS110_SD960 | Y | Y | Y | Y | |
IXUS120_SD940 | Y | Y | Y | Y | |
IXUS140HS_ELPH130 | N* | Y | N | * crash | |
IXUS240_ELPH320HS | Y | N* | Y | * crash | |
IXUS310_ELPH500HS | Y | Y | Y | Y | |
IXUS700_SD500 | N* | N* | N* | N* | * SD override disabled in source |
IXUS870_SD880 | Y | Y | Y | Y | |
IXUS970_SD890 | Y | N | N | ||
S100 | Y | Y | Y | Y | |
SX20 | N | N | Y | ||
SX30 | N | N | Y | N | |
SX40HS | N | N* | Y | N* | * all but set_focus_only pass if #defines changed |
SX100IS | Y | Y | Y | Y | |
SX150IS | N | N | Y | N | |
SX160IS | N | N | N | Y | |
SX200IS | N* | N* | N* | N* | * all pass if camera is Canon MF mode prior to test starting |
SX220HS | N | N | Y | N | |
SX230HS | N* | N* | Y | N | *CAM_CAN_SD_OVER_NOT_IN_MF crashes, CAM_CAN_SD_OVER_IN_AF_LOCK enables set_aflock |
SX240HS | N | N | Y | N | |
SX50 | N | N | N | Y | |
SX510HS | N | N* | N | Y | *passes with #undef CAM_CAN_SD_OVER_NOT_IN_MF && #define CAM_CAN_SD_OVER_IN_AF_LOCK |