summaryrefslogtreecommitdiff
path: root/camlibs
diff options
context:
space:
mode:
authorMarcus Meissner <marcus@jet.franken.de>2022-11-28 10:20:56 +0100
committerMarcus Meissner <marcus@jet.franken.de>2022-11-28 10:20:56 +0100
commit086a1a53e5747662d1c298a1574c877c32e30ce3 (patch)
tree80665eb82a951c6a20913814c65e74f8c61d5f0c /camlibs
parent4ec4da6ed67a58369e0bb45ce172f1618b75eb18 (diff)
downloadlibgphoto2-086a1a53e5747662d1c298a1574c877c32e30ce3.tar.gz
sony manual focus is actually INT16, not UINT16. https://github.com/gphoto/libgphoto2/issues/793
Diffstat (limited to 'camlibs')
-rw-r--r--camlibs/ptp2/config.c34
1 files changed, 17 insertions, 17 deletions
diff --git a/camlibs/ptp2/config.c b/camlibs/ptp2/config.c
index 7b691897f..42b3dc0b9 100644
--- a/camlibs/ptp2/config.c
+++ b/camlibs/ptp2/config.c
@@ -8701,22 +8701,22 @@ _put_Sony_ManualFocus(CONFIG_PUT_ARGS)
xpropval.u16 = 2;
C_PTP (ptp_sony_setdevicecontrolvalueb (params, 0xd2d2, &xpropval, PTP_DTC_UINT16));
*/
- if(val <= -7) xpropval.u16 = 0xFFFF - 6;
- else if(val <= -6.0) xpropval.u16 = 0xFFFF - 5;
- else if(val <= -5.0) xpropval.u16 = 0xFFFF - 4;
- else if(val <= -4.0) xpropval.u16 = 0xFFFF - 3;
- else if(val <= -3.0) xpropval.u16 = 0xFFFF - 2;
- else if(val <= -2.0) xpropval.u16 = 0xFFFF - 1;
- else if(val <= -1.0) xpropval.u16 = 0xFFFF;
- else if(val <= 1.0) xpropval.u16 = 1;
- else if(val <= 2.0) xpropval.u16 = 2;
- else if(val <= 3.0) xpropval.u16 = 3;
- else if(val <= 4.0) xpropval.u16 = 4;
- else if(val <= 5.0) xpropval.u16 = 5;
- else if(val <= 6.0) xpropval.u16 = 6;
- else if(val <= 7.0) xpropval.u16 = 7;
- else xpropval.u16 = 0;
- C_PTP (ptp_sony_setdevicecontrolvalueb (params, PTP_DPC_SONY_NearFar, &xpropval, PTP_DTC_UINT16));
+ if(val <= -7) xpropval.i16 = - 7;
+ else if(val <= -6.0) xpropval.i16 = -6;
+ else if(val <= -5.0) xpropval.i16 = -5;
+ else if(val <= -4.0) xpropval.i16 = -4;
+ else if(val <= -3.0) xpropval.i16 = -3;
+ else if(val <= -2.0) xpropval.i16 = -2;
+ else if(val <= -1.0) xpropval.i16 = -1;
+ else if(val <= 1.0) xpropval.i16 = 1;
+ else if(val <= 2.0) xpropval.i16 = 2;
+ else if(val <= 3.0) xpropval.i16 = 3;
+ else if(val <= 4.0) xpropval.i16 = 4;
+ else if(val <= 5.0) xpropval.i16 = 5;
+ else if(val <= 6.0) xpropval.i16 = 6;
+ else if(val <= 7.0) xpropval.i16 = 7;
+ else xpropval.i16 = 0;
+ C_PTP (ptp_sony_setdevicecontrolvalueb (params, PTP_DPC_SONY_NearFar, &xpropval, PTP_DTC_INT16));
} else {
xpropval.u16 = 1;
C_PTP (ptp_sony_setdevicecontrolvalueb (params, 0xd2d2, &xpropval, PTP_DTC_UINT16));
@@ -10494,7 +10494,7 @@ static struct submenu camera_actions_menu[] = {
{ N_("Synchronize camera date and time with PC"),"syncdatetime", PTP_DPC_CANON_EOS_CameraTime, PTP_VENDOR_CANON, PTP_DTC_UINT32, _get_Canon_SyncTime, _put_Canon_SyncTime },
{ N_("Auto-Focus"), "autofocus", PTP_DPC_SONY_AutoFocus, PTP_VENDOR_SONY, PTP_DTC_UINT16, _get_Sony_Autofocus, _put_Sony_Autofocus },
- { N_("Manual-Focus"), "manualfocus", PTP_DPC_SONY_NearFar, PTP_VENDOR_SONY, PTP_DTC_UINT16, _get_Sony_ManualFocus, _put_Sony_ManualFocus },
+ { N_("Manual-Focus"), "manualfocus", PTP_DPC_SONY_NearFar, PTP_VENDOR_SONY, PTP_DTC_INT16, _get_Sony_ManualFocus, _put_Sony_ManualFocus },
{ N_("Capture"), "capture", PTP_DPC_SONY_Capture, PTP_VENDOR_SONY, PTP_DTC_UINT16, _get_Sony_Capture, _put_Sony_Capture },
{ N_("Power Down"), "powerdown", 0, 0, PTP_OC_PowerDown, _get_PowerDown, _put_PowerDown },
{ N_("Focus Lock"), "focuslock", 0, PTP_VENDOR_CANON, PTP_OC_CANON_FocusLock, _get_Canon_FocusLock, _put_Canon_FocusLock },