Since [r14424] capture does not work with Nikon camera when capture is set to "card".
The reason is that in the following snippet "ret" is set to GP_OK, however camera_nikon_capture is only called if the target is "sdram". Meaning that in case the target is card, the last if will check GP_OK != GP_ERROR_NOT_SUPPORTED, and return GP_OK while not doing the capture !
l2974 of library.c:
if ( (params->deviceinfo.VendorExtensionID == PTP_VENDOR_NIKON) &&
(ptp_operation_issupported(params, PTP_OC_NIKON_Capture) ||
ptp_operation_issupported(params, PTP_OC_NIKON_AfCaptureSDRAM) ||
int ret = GP_OK;
if ((GP_OK != gp_setting_get("ptp2","capturetarget",buf)) || !strcmp(buf,"sdram")) ret = camera_nikon_capture (camera, type, path, 1, context); if (ret != GP_ERROR_NOT_SUPPORTED) return ret;
There are several ways to fix that problem,not sure which one you prefer, in attachment I have set ret to GP_ERROR_NOT_SUPPORTED, and that fixed the problem.
Log in to post a comment.