diff options
author | Marcus Meissner <marcus@jet.franken.de> | 2021-02-14 11:52:43 +0100 |
---|---|---|
committer | Marcus Meissner <marcus@jet.franken.de> | 2021-02-14 11:52:43 +0100 |
commit | 0cfa62e27ee0179b056c5341b064310f30d74f0e (patch) | |
tree | 5633546822d33bc122efc68b57550dbc0418713c | |
parent | 580c4fa07b7f512213dc5b2b64d80d02d6f1647b (diff) | |
download | libgphoto2-0cfa62e27ee0179b056c5341b064310f30d74f0e.tar.gz |
implemented getcapturetarget
-rw-r--r-- | camlibs/ptp2/ptp.c | 10 |
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; } |