From 1468ae8a6906bfc8bf60557ccc5b935330554b7b Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Sat, 23 May 2020 11:21:34 +0200 Subject: replaced olympus event names by olympus capture ones, added some cases, removed capture complete --- camlibs/ptp2/library.c | 53 ++++++-------------------------------------------- camlibs/ptp2/ptp.h | 41 +++++++++++++++++++++++++++++++------- 2 files changed, 40 insertions(+), 54 deletions(-) diff --git a/camlibs/ptp2/library.c b/camlibs/ptp2/library.c index 088e6492e..858af8a89 100644 --- a/camlibs/ptp2/library.c +++ b/camlibs/ptp2/library.c @@ -4814,49 +4814,11 @@ camera_olympus_omd_capture (Camera *camera, CameraCaptureType type, CameraFilePa while (ptp_get_one_event(params, &event)) { switch (event.Code) { - case 0xc002: - case PTP_EC_OLYMPUS_ObjectAdded: /* seen in newer traces, https://github.com/gphoto/gphoto2/issues/310 */ + case PTP_EC_Olympus_ObjectAdded: + case PTP_EC_Olympus_ObjectAdded_New: /* seen in newer traces, https://github.com/gphoto/gphoto2/issues/310 */ case PTP_EC_ObjectAdded: newobject = event.Param1; goto downloadfile; - case 0xc003: -#if 0 - { /* we seem to receive the event when ready ... not sure if this is the right trigger, as it has unrelated parameters */ - CameraFile *file; - unsigned char *data = NULL; - unsigned int size = 0; - CameraFileInfo info; - int ret; - - C_PTP_REP (ptp_olympus_sdram_image(params, &data, &size)); - - gp_file_new (&file); - gp_file_set_data_and_size (file, (char*)data, size); - - sprintf(path->folder, "/store_deadbeef"); - sprintf(path->name, "capt%04d.jpg", params->capcnt++); - - ret = gp_filesystem_append(camera->fs, path->folder, path->name, context); - if (ret != GP_OK) { - gp_file_free (file); - return ret; - } - ret = gp_filesystem_set_file_noop(camera->fs, path->folder, path->name, GP_FILE_TYPE_NORMAL, file, context); - if (ret != GP_OK) { - gp_file_free (file); - return ret; - } - memset(&info, 0, sizeof(info)); - /* We also get the fs info for free, so just set it */ - info.file.fields = GP_FILE_INFO_TYPE | GP_FILE_INFO_SIZE | GP_FILE_INFO_MTIME; - strcpy (info.file.type, GP_MIME_JPEG); - info.file.size = size; - info.file.mtime = time(NULL); - - gp_filesystem_set_info_noop(camera->fs, path->folder, path->name, info, context); - return GP_OK; - } -#endif default: GP_LOG_D ("unexpected unhandled event Code %04x, Param 1 %08x", event.Code, event.Param1); break; @@ -6222,16 +6184,13 @@ sonyout: while (ptp_get_one_event(params, &event)) { GP_LOG_D ("received event Code %04x, Param 1 %08x", event.Code, event.Param1); switch (event.Code) { - case 0xC002: - case PTP_EC_OLYMPUS_ObjectAdded: + case PTP_EC_Olympus_ObjectAdded: + case PTP_EC_Olympus_ObjectAdded_New: case PTP_EC_ObjectAdded: newobject = event.Param1; goto downloadomdfile; - case PTP_EC_OLYMPUS_CaptureComplete: - *eventtype = GP_EVENT_CAPTURE_COMPLETE; - *eventdata = NULL; - return GP_OK; - case PTP_EC_OLYMPUS_PropChanged: + case PTP_EC_Olympus_DevicePropChanged: + case PTP_EC_Olympus_DevicePropChanged_New: *eventtype = GP_EVENT_UNKNOWN; C_MEM (*eventdata = malloc(strlen("PTP Property 0123 changed to 0x012345678")+1)); sprintf (*eventdata, "PTP Property %04x changed to 0x%08x", event.Param1, event.Param2); diff --git a/camlibs/ptp2/ptp.h b/camlibs/ptp2/ptp.h index 780c9346c..3cc0ccb98 100644 --- a/camlibs/ptp2/ptp.h +++ b/camlibs/ptp2/ptp.h @@ -1118,10 +1118,6 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_EC_Nikon_SBAttrChanged 0xC122 /* e1: sbhandle, e2: attrid */ #define PTP_EC_Nikon_SBGroupAttrChanged 0xC123 /* e1: sbgroupid, e2: groupattrid */ -/* Olympus E series */ -#define PTP_EC_Olympus_PropertyChanged 0xC102 -#define PTP_EC_Olympus_CaptureComplete 0xC103 - /* Sony */ #define PTP_EC_Sony_ObjectAdded 0xC201 #define PTP_EC_Sony_ObjectRemoved 0xC202 @@ -1138,9 +1134,40 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_EC_PANASONIC_ObjectAdded 0xC108 #define PTP_EC_PANASONIC_ObjectAddedSDRAM 0xC109 -#define PTP_EC_OLYMPUS_CaptureComplete 0xC101 /* guessing */ -#define PTP_EC_OLYMPUS_ObjectAdded 0xC102 -#define PTP_EC_OLYMPUS_PropChanged 0xC108 +/* Olympus E series, PTP style in the 2018+ range (e1mark2 etc.) */ +/* From olympus capture tool */ +#define PTP_EC_Olympus_CreateRecView 0xC001 +#define PTP_EC_Olympus_CreateRecView_New 0xC101 +#define PTP_EC_Olympus_ObjectAdded 0xC002 +#define PTP_EC_Olympus_ObjectAdded_New 0xC102 +#define PTP_EC_Olympus_AF_Frame 0xC003 +#define PTP_EC_Olympus_AF_Frame_New 0xC103 +#define PTP_EC_Olympus_DirectStoreImage 0xC004 +#define PTP_EC_Olympus_DirectStoreImage_New 0xC104 +#define PTP_EC_Olympus_ComplateCameraControlOff 0xC005 +#define PTP_EC_Olympus_ComplateCameraControlOff_New 0xC105 +#define PTP_EC_Olympus_AF_Frame_Over_Info 0xC006 +#define PTP_EC_Olympus_AF_Frame_Over_Info_New 0xC106 +#define PTP_EC_Olympus_DevicePropChanged 0xC008 +#define PTP_EC_Olympus_DevicePropChanged_New 0xC108 +#define PTP_EC_Olympus_ImageTransferModeFinish 0xC00C +#define PTP_EC_Olympus_ImageTransferModeFinish_New 0xC10C +#define PTP_EC_Olympus_ImageRecordFinish 0xC00D +#define PTP_EC_Olympus_ImageRecordFinish_New 0xC10D +#define PTP_EC_Olympus_SlotStatusChange 0xC00E +#define PTP_EC_Olympus_SlotStatusChange_New 0xC10E +#define PTP_EC_Olympus_PrioritizeRecord 0xC00F +#define PTP_EC_Olympus_PrioritizeRecord_New 0xC10F +#define PTP_EC_Olympus_FailCombiningAfterShooting 0xC010 +#define PTP_EC_Olympus_FailCombiningAfterShooting_New 0xC110 +#define PTP_EC_Olympus_NotifyAFTargetFrame 0xC011 +#define PTP_EC_Olympus_NotifyAFTargetFrame_New 0xC111 +#define PTP_EC_Olympus_RawEditParamChanged 0xC112 +#define PTP_EC_Olympus_OlyNotifyCreateDrawEdit 0xC113 + +/* Used by the XML based E series driver */ +#define PTP_EC_Olympus_PropertyChanged 0xC102 +#define PTP_EC_Olympus_CaptureComplete 0xC103 /* constants for GetObjectHandles */ #define PTP_GOH_ALL_STORAGE 0xffffffff -- cgit v1.2.1