summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Meissner <marcus@jet.franken.de>2021-02-14 11:52:43 +0100
committerMarcus Meissner <marcus@jet.franken.de>2021-02-14 11:52:43 +0100
commit0cfa62e27ee0179b056c5341b064310f30d74f0e (patch)
tree5633546822d33bc122efc68b57550dbc0418713c
parent580c4fa07b7f512213dc5b2b64d80d02d6f1647b (diff)
downloadlibgphoto2-0cfa62e27ee0179b056c5341b064310f30d74f0e.tar.gz
implemented getcapturetarget
-rw-r--r--camlibs/ptp2/ptp.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/camlibs/ptp2/ptp.c b/camlibs/ptp2/ptp.c
index e94d33475..775b06cfa 100644
--- a/camlibs/ptp2/ptp.c
+++ b/camlibs/ptp2/ptp.c
@@ -1240,12 +1240,16 @@ ptp_panasonic_getcapturetarget (PTPParams* params, uint16_t *target)
unsigned char *data;
unsigned int size;
+ *target = 0;
+
PTP_CNT_INIT(ptp, PTP_OC_PANASONIC_GetCaptureTarget, 0x08000090);
CHECK_PTP_RC(ptp_transaction(params, &ptp, PTP_DP_GETDATA, 0, &data, &size));
if (!data) return PTP_RC_GeneralError;
-
- *target = 0;
-
+ if (size < 10) return PTP_RC_GeneralError;
+ if (dtoh32a(data) != 0x08000091) return PTP_RC_GeneralError;
+ if (dtoh32a(data+4) != 2) return PTP_RC_GeneralError;
+ *target = dtoh16a(data+8);
+ free (data);
return PTP_RC_OK;
}