diff options
Diffstat (limited to 'src/ptp.h')
-rw-r--r-- | src/ptp.h | 400 |
1 files changed, 355 insertions, 45 deletions
@@ -1,7 +1,7 @@ /* ptp.h * * Copyright (C) 2001 Mariusz Woloszyn <emsi@ipartners.pl> - * Copyright (C) 2003-2014 Marcus Meissner <marcus@jet.franken.de> + * Copyright (C) 2003-2017 Marcus Meissner <marcus@jet.franken.de> * Copyright (C) 2006-2008 Linus Walleij <triad@df.lth.se> * * This library is free software; you can redistribute it and/or @@ -155,29 +155,35 @@ struct _PTPIPHeader { typedef struct _PTPIPHeader PTPIPHeader; /* Vendor IDs */ -#define PTP_VENDOR_EASTMAN_KODAK 0x00000001 -#define PTP_VENDOR_SEIKO_EPSON 0x00000002 -#define PTP_VENDOR_AGILENT 0x00000003 -#define PTP_VENDOR_POLAROID 0x00000004 -#define PTP_VENDOR_AGFA_GEVAERT 0x00000005 -#define PTP_VENDOR_MICROSOFT 0x00000006 -#define PTP_VENDOR_EQUINOX 0x00000007 -#define PTP_VENDOR_VIEWQUEST 0x00000008 -#define PTP_VENDOR_STMICROELECTRONICS 0x00000009 -#define PTP_VENDOR_NIKON 0x0000000A -#define PTP_VENDOR_CANON 0x0000000B -#define PTP_VENDOR_FOTONATION 0x0000000C -#define PTP_VENDOR_PENTAX 0x0000000D -#define PTP_VENDOR_FUJI 0x0000000E +/* List is linked from here: http://www.imaging.org/site/IST/Standards/PTP_Standards.aspx */ +#define PTP_VENDOR_EASTMAN_KODAK 0x00000001 +#define PTP_VENDOR_SEIKO_EPSON 0x00000002 +#define PTP_VENDOR_AGILENT 0x00000003 +#define PTP_VENDOR_POLAROID 0x00000004 +#define PTP_VENDOR_AGFA_GEVAERT 0x00000005 +#define PTP_VENDOR_MICROSOFT 0x00000006 +#define PTP_VENDOR_EQUINOX 0x00000007 +#define PTP_VENDOR_VIEWQUEST 0x00000008 +#define PTP_VENDOR_STMICROELECTRONICS 0x00000009 +#define PTP_VENDOR_NIKON 0x0000000A +#define PTP_VENDOR_CANON 0x0000000B +#define PTP_VENDOR_FOTONATION 0x0000000C +#define PTP_VENDOR_PENTAX 0x0000000D +#define PTP_VENDOR_FUJI 0x0000000E +#define PTP_VENDOR_NDD_MEDICAL_TECHNOLOGIES 0x00000012 +#define PTP_VENDOR_SAMSUNG 0x0000001a +#define PTP_VENDOR_PARROT 0x0000001b +#define PTP_VENDOR_PANASONIC 0x0000001c /* not from standards papers, but from traces: */ -#define PTP_VENDOR_SONY 0x00000011 /* observed in the A900 */ -#define PTP_VENDOR_SAMSUNG 0x0000001a /* observed in the Samsung NX1000 */ -#define PTP_VENDOR_PARROT 0x0000001b /* observed in the Parrot Sequoia */ +#define PTP_VENDOR_SONY 0x00000011 /* observed in the A900 */ + /* Vendor extension ID used for MTP (occasionaly, usualy 6 is used) */ #define PTP_VENDOR_MTP 0xffffffff /* gphoto overrides */ -#define PTP_VENDOR_GP_OLYMPUS 0xfffffffe +#define PTP_VENDOR_GP_OLYMPUS 0x0000fffe +#define PTP_VENDOR_GP_OLYMPUS_OMD 0x0000fffd + /* Operation Codes */ @@ -285,18 +291,38 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_OC_CANON_SetPairingInfo 0x9030 #define PTP_OC_CANON_GetPairingInfo 0x9031 #define PTP_OC_CANON_DeletePairingInfo 0x9032 -#define PTP_OC_CANON_GetMACAddress 0x9033 +#define PTP_OC_CANON_GetMACAddress 0x9033 /* no args */ +/* +0000 12 00 00 00 02 00 33 90-1a 00 00 00 2c 9e fc c8 ......3.....,... +0010 33 e3 - 3. + */ + /* 9034: 1 param, no parms returned */ #define PTP_OC_CANON_SetDisplayMonitor 0x9034 #define PTP_OC_CANON_PairingComplete 0x9035 #define PTP_OC_CANON_GetWirelessMAXChannel 0x9036 -#define PTP_OC_CANON_GetWebServiceSpec 0x9068 -#define PTP_OC_CANON_GetWebServiceData 0x9069 +#define PTP_OC_CANON_GetWebServiceSpec 0x9068 /* no args */ +/* data returned: +0000 1e 00 00 00 02 00 68 90-1a 00 00 00 00 01 08 00 ......h......... +0010 14 00 bc ce 00 00 78 00-78 00 00 14 00 00 ......x.x..... +*/ + +#define PTP_OC_CANON_GetWebServiceData 0x9069 /* no args */ #define PTP_OC_CANON_SetWebServiceData 0x906B -#define PTP_OC_CANON_GetRootCertificateSpec 0x906C -#define PTP_OC_CANON_GetRootCertificateData 0x906D +#define PTP_OC_CANON_GetRootCertificateSpec 0x906C /* no args */ +/* +0000 12 00 00 00 02 00 6c 90-1a 00 00 00 00 01 6c 30 ......l.......l0 +0010 00 00 - .. +*/ +#define PTP_OC_CANON_GetRootCertificateData 0x906D /* no args */ +/* empty data on test */ #define PTP_OC_CANON_SetRootCertificateData 0x906F +#define PTP_OC_CANON_GetGpsMobilelinkObjectInfo 0x9075 /* 2 args: utcstart, utcend */ +#define PTP_OC_CANON_SendGpsTagInfo 0x9076 /* 1 arg: oid */ +#define PTP_OC_CANON_GetTrancecodeApproxSize 0x9077 /* 1 arg: oid? */ +#define PTP_OC_CANON_RequestTrancecodeStart 0x9078 /* 1 arg: oid? */ +#define PTP_OC_CANON_RequestTrancecodeCancel 0x9079 /* 1 arg: oid? */ /* 9101: no args, 8 byte data (01 00 00 00 00 00 00 00), no resp data. */ #define PTP_OC_CANON_EOS_GetStorageIDs 0x9101 @@ -373,13 +399,13 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_OC_CANON_EOS_SetUILock 0x911B /* 911c: no cmd args, no data, no resp args */ #define PTP_OC_CANON_EOS_ResetUILock 0x911C -#define PTP_OC_CANON_EOS_KeepDeviceOn 0x911D -#define PTP_OC_CANON_EOS_SetNullPacketMode 0x911E +#define PTP_OC_CANON_EOS_KeepDeviceOn 0x911D /* no arg */ +#define PTP_OC_CANON_EOS_SetNullPacketMode 0x911E /* 1 param */ #define PTP_OC_CANON_EOS_UpdateFirmware 0x911F #define PTP_OC_CANON_EOS_TransferCompleteDT 0x9120 #define PTP_OC_CANON_EOS_CancelTransferDT 0x9121 #define PTP_OC_CANON_EOS_SetWftProfile 0x9122 -#define PTP_OC_CANON_EOS_GetWftProfile 0x9123 +#define PTP_OC_CANON_EOS_GetWftProfile 0x9123 /* 2 args: setnum, configid */ #define PTP_OC_CANON_EOS_SetProfileToWft 0x9124 #define PTP_OC_CANON_EOS_BulbStart 0x9125 #define PTP_OC_CANON_EOS_BulbEnd 0x9126 @@ -393,11 +419,11 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_OC_CANON_EOS_RegistBackgroundImage 0x912A #define PTP_OC_CANON_EOS_ChangePhotoStudioMode 0x912B #define PTP_OC_CANON_EOS_GetPartialObjectEx 0x912C -#define PTP_OC_CANON_EOS_ResetMirrorLockupState 0x9130 +#define PTP_OC_CANON_EOS_ResetMirrorLockupState 0x9130 /* no args */ #define PTP_OC_CANON_EOS_PopupBuiltinFlash 0x9131 #define PTP_OC_CANON_EOS_EndGetPartialObjectEx 0x9132 -#define PTP_OC_CANON_EOS_MovieSelectSWOn 0x9133 -#define PTP_OC_CANON_EOS_MovieSelectSWOff 0x9134 +#define PTP_OC_CANON_EOS_MovieSelectSWOn 0x9133 /* no args */ +#define PTP_OC_CANON_EOS_MovieSelectSWOff 0x9134 /* no args */ #define PTP_OC_CANON_EOS_GetCTGInfo 0x9135 #define PTP_OC_CANON_EOS_GetLensAdjust 0x9136 #define PTP_OC_CANON_EOS_SetLensAdjust 0x9137 @@ -408,17 +434,27 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_OC_CANON_EOS_EndSendPartialObjectEx 0x913B #define PTP_OC_CANON_EOS_SetCTGInfo 0x913C #define PTP_OC_CANON_EOS_SetRequestOLCInfoGroup 0x913D -#define PTP_OC_CANON_EOS_SetRequestRollingPitchingLevel 0x913E +#define PTP_OC_CANON_EOS_SetRequestRollingPitchingLevel 0x913E /* 1 arg: onoff? */ /* 3 args, 0x21201020, 0x110, 0x1000000 (potentially reverse order) */ #define PTP_OC_CANON_EOS_GetCameraSupport 0x913F -#define PTP_OC_CANON_EOS_SetRating 0x9140 /* 2 args */ +#define PTP_OC_CANON_EOS_SetRating 0x9140 /* 2 args, objectid, rating? */ #define PTP_OC_CANON_EOS_RequestInnerDevelopStart 0x9141 /* 2 args: 1 type, 1 object? */ #define PTP_OC_CANON_EOS_RequestInnerDevelopParamChange 0x9142 #define PTP_OC_CANON_EOS_RequestInnerDevelopEnd 0x9143 #define PTP_OC_CANON_EOS_GpsLoggingDataMode 0x9144 /* 1 arg */ #define PTP_OC_CANON_EOS_GetGpsLogCurrentHandle 0x9145 - -#define PTP_OC_CANON_EOS_InitiateViewfinder 0x9151 +#define PTP_OC_CANON_EOS_SetImageRecoveryData 0x9146 /* sends data? */ +#define PTP_OC_CANON_EOS_GetImageRecoveryList 0x9147 +#define PTP_OC_CANON_EOS_FormatImageRecoveryData 0x9148 +#define PTP_OC_CANON_EOS_GetPresetLensAdjustParam 0x9149 /* no arg */ +#define PTP_OC_CANON_EOS_GetRawDispImage 0x914A /* ? 2 args ? */ +#define PTP_OC_CANON_EOS_SaveImageRecoveryData 0x914B +#define PTP_OC_CANON_EOS_RequestBLE 0x914C /* 2? args? */ +#define PTP_OC_CANON_EOS_DrivePowerZoom 0x914D /* 1 arg */ + +#define PTP_OC_CANON_EOS_GetIptcData 0x914F +#define PTP_OC_CANON_EOS_SetIptcData 0x9150 /* sends data? */ +#define PTP_OC_CANON_EOS_InitiateViewfinder 0x9151 /* no arg */ #define PTP_OC_CANON_EOS_TerminateViewfinder 0x9152 /* EOS M2 wlan: 2 params, 0x00200000 0x01000000 */ #define PTP_OC_CANON_EOS_GetViewFinderData 0x9153 @@ -426,17 +462,27 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_OC_CANON_EOS_DriveLens 0x9155 #define PTP_OC_CANON_EOS_DepthOfFieldPreview 0x9156 /* 1 arg */ #define PTP_OC_CANON_EOS_ClickWB 0x9157 /* 2 args: x,y */ -#define PTP_OC_CANON_EOS_Zoom 0x9158 /* 1 arg */ +#define PTP_OC_CANON_EOS_Zoom 0x9158 /* 1 arg: zoom */ #define PTP_OC_CANON_EOS_ZoomPosition 0x9159 /* 2 args: x,y */ -#define PTP_OC_CANON_EOS_SetLiveAfFrame 0x915A +#define PTP_OC_CANON_EOS_SetLiveAfFrame 0x915A /* sends data? */ #define PTP_OC_CANON_EOS_TouchAfPosition 0x915B /* 3 args: type,x,y */ #define PTP_OC_CANON_EOS_SetLvPcFlavoreditMode 0x915C /* 1 arg */ #define PTP_OC_CANON_EOS_SetLvPcFlavoreditParam 0x915D /* 1 arg */ #define PTP_OC_CANON_EOS_AfCancel 0x9160 +#define PTP_OC_CANON_EOS_GetObjectInfo64 0x9170 /* 1 arg: oid */ +#define PTP_OC_CANON_EOS_GetObject64 0x9171 /* 1 arg: oid */ +#define PTP_OC_CANON_EOS_GetPartialObject64 0x9172 /* args: oid, offset, maxbyte */ +#define PTP_OC_CANON_EOS_GetObjectInfoEx64 0x9173 /* 2 args: storageid, oid ? */ +#define PTP_OC_CANON_EOS_GetPartialObjectEX64 0x9174 /* args: oid, offset 64bit, maxbyte */ +#define PTP_OC_CANON_EOS_CreateHandle64 0x9175 +#define PTP_OC_CANON_EOS_NotifyEstimateNumberofImport 0x9182 /* 1 arg: importnumber */ +#define PTP_OC_CANON_EOS_NotifyNumberofImported 0x9183 /* 1 arg: importnumber */ +#define PTP_OC_CANON_EOS_NotifySizeOfPartialDataTransfer 0x9184 /* 4 args: filesizelow, filesizehigh, downloadsizelow, downloadsizehigh */ +#define PTP_OC_CANON_EOS_NotifyFinish 0x9185 /* 1 arg: reason */ #define PTP_OC_CANON_EOS_SetDefaultCameraSetting 0x91BE #define PTP_OC_CANON_EOS_GetAEData 0x91BF -#define PTP_OC_CANON_EOS_NotifyNetworkError 0x91E8 -#define PTP_OC_CANON_EOS_AdapterTransferProgress 0x91E9 +#define PTP_OC_CANON_EOS_NotifyNetworkError 0x91E8 /* 1 arg: errorcode */ +#define PTP_OC_CANON_EOS_AdapterTransferProgress 0x91E9 #define PTP_OC_CANON_EOS_TransferComplete2 0x91F0 #define PTP_OC_CANON_EOS_CancelTransfer2 0x91F1 #define PTP_OC_CANON_EOS_FAPIMessageTX 0x91FE @@ -494,7 +540,7 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_OC_NIKON_GetPartialObjectHiSpeed 0x9400 /* 3 params, data in */ /* From Nikon V1 Trace */ -#define PTP_OC_NIKON_GetDevicePropEx 0x9504 /* gets device prop dataa */ +#define PTP_OC_NIKON_GetDevicePropEx 0x9504 /* gets device prop data */ /* Casio EX-F1 (from http://code.google.com/p/exf1ctrl/ ) */ #define PTP_OC_CASIO_STILL_START 0x9001 @@ -632,8 +678,16 @@ typedef struct _PTPIPHeader PTPIPHeader; /* WiFi Provisioning MTP Extension Codes (microsoft.com/WPDWCN: 1.0) */ #define PTP_OC_MTP_WPDWCN_ProcessWFCObject 0x9122 +/* Olympus OMD series commands */ +#define PTP_OC_OLYMPUS_OMD_Capture 0x9481 +#define PTP_OC_OLYMPUS_GetLiveViewImage 0x9484 /* liveview */ +#define PTP_OC_OLYMPUS_OMD_GetImage 0x9485 /* gets an JPEG image (from the capture? SDRAM style?) */ +#define PTP_OC_OLYMPUS_OMD_ChangedProperties 0x9486 +#define PTP_OC_OLYMPUS_OMD_MFDrive 0x9487 +#define PTP_OC_OLYMPUS_OMD_SetProperties 0x9489 /* Sends to the device a PTP list of all 16 bit device properties , count 32bit, then 16bit vals */ /* Olympus E series commands */ + #define PTP_OC_OLYMPUS_Capture 0x9101 #define PTP_OC_OLYMPUS_SelfCleaning 0x9103 #define PTP_OC_OLYMPUS_SetRGBGain 0x9106 @@ -649,6 +703,7 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_OC_OLYMPUS_SetCameraID 0x9501 #define PTP_OC_OLYMPUS_GetCameraID 0x9581 + /* Android Random I/O Extensions Codes */ #define PTP_OC_ANDROID_GetPartialObject64 0x95C1 #define PTP_OC_ANDROID_SendPartialObject 0x95C2 @@ -689,6 +744,54 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_OC_PARROT_MagnetoCalibStatus 0x9212 #define PTP_OC_PARROT_SendFirmwareUpdate 0x9213 +#define PTP_OC_PANASONIC_9101 0x9101 +#define PTP_OC_PANASONIC_OpenSession 0x9102 /* opensession (1 arg, seems to be storage id 0x00010001)*/ +#define PTP_OC_PANASONIC_CloseSession 0x9103 /* closesession (no arg) */ +#define PTP_OC_PANASONIC_9104 0x9104 /* get ext device id (1 arg?) */ +/* 9104 gets this data: +0000 24 00 00 00 02 00 04 91-04 00 00 00 01 00 01 00 $............... +0010 01 00 e1 07 10 00 00 00-00 00 00 00 00 00 00 00 ................ +0020 00 00 00 00 - .... +*/ + +#define PTP_OC_PANASONIC_9107 0x9107 /* getsize? */ +#define PTP_OC_PANASONIC_ListProperty 0x9108 +#define PTP_OC_PANASONIC_9110 0x9110 /* Get_Object infos */ +#define PTP_OC_PANASONIC_9112 0x9112 /* Get Partial Object , 4 args */ +#define PTP_OC_PANASONIC_9113 0x9113 /* Skip Objects Transfer , 1 arg */ + +#define PTP_OC_PANASONIC_9401 0x9401 +#define PTP_OC_PANASONIC_GetProperty 0x9402 +#define PTP_OC_PANASONIC_SetProperty 0x9403 +#define PTP_OC_PANASONIC_InitiateCapture 0x9404 /* Rec Ctrl Release */ +#define PTP_OC_PANASONIC_9405 0x9405 /* Rec Ctrl AF AE */ +#define PTP_OC_PANASONIC_9406 0x9406 /* Setup Ctrl various functions: Format, Sensor Cleaning, Menu Save, firmware update? */ +#define PTP_OC_PANASONIC_9408 0x9408 +#define PTP_OC_PANASONIC_9409 0x9409 /* 1 arg */ +#define PTP_OC_PANASONIC_940A 0x940A /* 1 arg, e.g. 0x08000010 */ +#define PTP_OC_PANASONIC_940B 0x940B /* 1 arg, e.g. 0x08000010 */ +#define PTP_OC_PANASONIC_MoveRecControl 0x940C /* 07000011 start, 07000012 stop, 0700013 still capture */ +#define PTP_OC_PANASONIC_PowerControl 0x940D /* 1 arg: 0x0A000011 power off, 0x0a00012 device reset, 0x0a00013 device restart */ +#define PTP_OC_PANASONIC_PlayControl 0x940E /* 2 arg? 0x05000011 current=0, next=1, prev=0xffffffff */ +#define PTP_OC_PANASONIC_PlayControlPlay 0x940F /* 0x05000020 */ +#define PTP_OC_PANASONIC_9410 0x9410 /* Rec Ctrl Other */ +#define PTP_OC_PANASONIC_SetGPSDataInfo 0x9411 +#define PTP_OC_PANASONIC_Liveview 0x9412 /* 0d000010 start, 0d000011 stop */ +#define PTP_OC_PANASONIC_9414 0x9414 /* 1 arg e.g 12000020 */ +#define PTP_OC_PANASONIC_9416 0x9416 /* Rec Ctrl Mf Assist, Rec Ctrl Backup Req ... 1 arg */ + +#define PTP_OC_PANASONIC_ChangeEvent 0x9603 /* 2 args ... e.g. 0x4002, new (change object added event) */ +#define PTP_OC_PANASONIC_GetFromEventInfo 0x9605 /* 1 arg, e.g. 0x41000013 , 15c00021: setup exec menu save comp, 15c00022: setup exec pixel refresh comp */ +#define PTP_OC_PANASONIC_SendDataInfo 0x9606 /* no args? used during firmware update */ +#define PTP_OC_PANASONIC_StartSendData 0x9607 /* no args? used during firmware update */ + +#define PTP_OC_PANASONIC_9703 0x9703 /* Mnt_GetInfo_GetVersion ... 1 arg? */ +#define PTP_OC_PANASONIC_9704 0x9704 /* Set USB Mode ... 80040001 */ +#define PTP_OC_PANASONIC_9705 0x9705 /* Ctrl Liveview */ +#define PTP_OC_PANASONIC_LiveviewImage 0x9706 /* Get Liveview Data */ +#define PTP_OC_PANASONIC_9707 0x9707 /* 4k6k cutting get stream */ + + /* Proprietary vendor extension operations mask */ #define PTP_OC_EXTENSION_MASK 0xF000 @@ -797,6 +900,7 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_RC_MTP_WFC_Version_Not_Supported 0xA122 /* libptp2 extended ERROR codes */ +#define PTP_ERROR_NODEVICE 0x02F9 #define PTP_ERROR_TIMEOUT 0x02FA #define PTP_ERROR_CANCEL 0x02FB #define PTP_ERROR_BADPARAM 0x02FC @@ -833,6 +937,8 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_EC_CANON_StartDirectTransfer 0xC011 #define PTP_EC_CANON_StopDirectTransfer 0xC013 +#define PTP_EC_CANON_TranscodeProgress 0xC01B /* EOS ? */ + /* Canon EOS events */ #define PTP_EC_CANON_EOS_RequestGetEvent 0xc101 #define PTP_EC_CANON_EOS_ObjectAddedEx 0xc181 @@ -855,12 +961,24 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_EC_CANON_EOS_StoreRemoved 0xc193 #define PTP_EC_CANON_EOS_BulbExposureTime 0xc194 #define PTP_EC_CANON_EOS_RecordingTime 0xc195 +#define PTP_EC_CANON_EOS_InnerDevelopParam 0xc196 +#define PTP_EC_CANON_EOS_RequestObjectTransferDevelop 0xc197 +#define PTP_EC_CANON_EOS_GPSLogOutputProgress 0xc198 +#define PTP_EC_CANON_EOS_GPSLogOutputComplete 0xc199 +#define PTP_EC_CANON_EOS_TouchTrans 0xc19a +#define PTP_EC_CANON_EOS_RequestObjectTransferExInfo 0xc19b +#define PTP_EC_CANON_EOS_PowerZoomInfoChanged 0xc19d +#define PTP_EC_CANON_EOS_RequestPushMode 0xc19f #define PTP_EC_CANON_EOS_RequestObjectTransferTS 0xc1a2 #define PTP_EC_CANON_EOS_AfResult 0xc1a3 #define PTP_EC_CANON_EOS_CTGInfoCheckComplete 0xc1a4 #define PTP_EC_CANON_EOS_OLCInfoChanged 0xc1a5 -#define PTP_EC_CANON_EOS_ObjectAddedUnknown 0xc1a7 -#define PTP_EC_CANON_EOS_RequestObjectTransferNew 0xc1a9 +#define PTP_EC_CANON_EOS_ObjectAddedEx64 0xc1a7 +#define PTP_EC_CANON_EOS_ObjectInfoChangedEx64 0xc1a8 +#define PTP_EC_CANON_EOS_RequestObjectTransfer64 0xc1a9 +#define PTP_EC_CANON_EOS_RequestObjectTransferFTP64 0xc1ab +#define PTP_EC_CANON_EOS_ImportError 0xc1af +#define PTP_EC_CANON_EOS_BlePairing 0xc1b0 #define PTP_EC_CANON_EOS_RequestObjectTransferFTP 0xc1f1 /* Nikon extension Event Codes */ @@ -889,6 +1007,8 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_EC_PARROT_Status 0xC201 #define PTP_EC_PARROT_MagnetoCalibrationStatus 0xC202 +#define PTP_EC_PANASONIC_ObjectAdded 0xC108 + /* constants for GetObjectHandles */ #define PTP_GOH_ALL_STORAGE 0xffffffff @@ -983,6 +1103,21 @@ struct _PTPObjectInfo { }; typedef struct _PTPObjectInfo PTPObjectInfo; +struct _PTPObjectFilesystemInfo { + uint32_t ObjectHandle; + uint32_t StorageID; + uint16_t ObjectFormat; + uint16_t ProtectionStatus; + uint64_t ObjectCompressedSize64; + uint32_t ParentObject; + uint16_t AssociationType; + uint32_t AssociationDesc; + uint32_t SequenceNumber; + char *Filename; + time_t ModificationDate; +}; +typedef struct _PTPObjectFilesystemInfo PTPObjectFilesystemInfo; + /* max ptp string length INCLUDING terminating null character */ #define PTP_MAXSTRLEN 255 @@ -1305,7 +1440,9 @@ enum _PTPCanon_changes_types { PTP_CANON_EOS_CHANGES_TYPE_CAMERASTATUS, PTP_CANON_EOS_CHANGES_TYPE_FOCUSINFO, PTP_CANON_EOS_CHANGES_TYPE_FOCUSMASK, - PTP_CANON_EOS_CHANGES_TYPE_OBJECTREMOVED + PTP_CANON_EOS_CHANGES_TYPE_OBJECTREMOVED, + PTP_CANON_EOS_CHANGES_TYPE_OBJECTINFO_CHANGE, + PTP_CANON_EOS_CHANGES_TYPE_OBJECTCONTENT_CHANGE }; struct _PTPCanon_New_Object { @@ -1523,6 +1660,11 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_CANON_AverageFilesizes 0xD048 #define PTP_DPC_CANON_ModelID 0xD049 +#define PTP_DPC_CANON_EOS_PowerZoomPosition 0xD055 +#define PTP_DPC_CANON_EOS_StrobeSettingSimple 0xD056 +#define PTP_DPC_CANON_EOS_ConnectTrigger 0xD058 +#define PTP_DPC_CANON_EOS_ChangeCameraMode 0xD059 + /* From EOS 400D trace. */ #define PTP_DPC_CANON_EOS_Aperture 0xD101 #define PTP_DPC_CANON_EOS_ShutterSpeed 0xD102 @@ -1558,16 +1700,25 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_CANON_EOS_ImageFormatCF 0xD121 /* file setting CF */ #define PTP_DPC_CANON_EOS_ImageFormatSD 0xD122 /* file setting SD */ #define PTP_DPC_CANON_EOS_ImageFormatExtHD 0xD123 /* file setting exthd */ +#define PTP_DPC_CANON_EOS_RefocusState 0xD124 +#define PTP_DPC_CANON_EOS_CameraNickname 0xD125 +#define PTP_DPC_CANON_EOS_SpecialAcc 0xD12F #define PTP_DPC_CANON_EOS_CompressionS 0xD130 #define PTP_DPC_CANON_EOS_CompressionM1 0xD131 #define PTP_DPC_CANON_EOS_CompressionM2 0xD132 #define PTP_DPC_CANON_EOS_CompressionL 0xD133 +#define PTP_DPC_CANON_EOS_IntervalShootSetting 0xD134 +#define PTP_DPC_CANON_EOS_IntervalShootState 0xD135 +#define PTP_DPC_CANON_EOS_PushMode 0xD136 +#define PTP_DPC_CANON_EOS_LvCFilterKind 0xD137 #define PTP_DPC_CANON_EOS_AEModeDial 0xD138 #define PTP_DPC_CANON_EOS_AEModeCustom 0xD139 #define PTP_DPC_CANON_EOS_MirrorUpSetting 0xD13A #define PTP_DPC_CANON_EOS_HighlightTonePriority 0xD13B #define PTP_DPC_CANON_EOS_AFSelectFocusArea 0xD13C #define PTP_DPC_CANON_EOS_HDRSetting 0xD13D +#define PTP_DPC_CANON_EOS_TimeShootSetting 0xD13E +#define PTP_DPC_CANON_EOS_NFCApplicationInfo 0xD13F #define PTP_DPC_CANON_EOS_PCWhiteBalance1 0xD140 #define PTP_DPC_CANON_EOS_PCWhiteBalance2 0xD141 #define PTP_DPC_CANON_EOS_PCWhiteBalance3 0xD142 @@ -1575,6 +1726,10 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_CANON_EOS_PCWhiteBalance5 0xD144 #define PTP_DPC_CANON_EOS_MWhiteBalance 0xD145 #define PTP_DPC_CANON_EOS_MWhiteBalanceEx 0xD146 +#define PTP_DPC_CANON_EOS_PowerZoomSpeed 0xD149 +#define PTP_DPC_CANON_EOS_NetworkServerRegion 0xD14A +#define PTP_DPC_CANON_EOS_GPSLogCtrl 0xD14B +#define PTP_DPC_CANON_EOS_GPSLogListNum 0xD14C #define PTP_DPC_CANON_EOS_UnknownPropD14D 0xD14D /*found in Canon EOS 5D M3*/ #define PTP_DPC_CANON_EOS_PictureStyleStandard 0xD150 #define PTP_DPC_CANON_EOS_PictureStylePortrait 0xD151 @@ -1583,12 +1738,31 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_CANON_EOS_PictureStyleFaithful 0xD154 #define PTP_DPC_CANON_EOS_PictureStyleBlackWhite 0xD155 #define PTP_DPC_CANON_EOS_PictureStyleAuto 0xD156 +#define PTP_DPC_CANON_EOS_PictureStyleExStandard 0xD157 +#define PTP_DPC_CANON_EOS_PictureStyleExPortrait 0xD158 +#define PTP_DPC_CANON_EOS_PictureStyleExLandscape 0xD159 +#define PTP_DPC_CANON_EOS_PictureStyleExNeutral 0xD15A +#define PTP_DPC_CANON_EOS_PictureStyleExFaithful 0xD15B +#define PTP_DPC_CANON_EOS_PictureStyleExBlackWhite 0xD15C +#define PTP_DPC_CANON_EOS_PictureStyleExAuto 0xD15D +#define PTP_DPC_CANON_EOS_PictureStyleExFineDetail 0xD15E #define PTP_DPC_CANON_EOS_PictureStyleUserSet1 0xD160 #define PTP_DPC_CANON_EOS_PictureStyleUserSet2 0xD161 #define PTP_DPC_CANON_EOS_PictureStyleUserSet3 0xD162 +#define PTP_DPC_CANON_EOS_PictureStyleExUserSet1 0xD163 +#define PTP_DPC_CANON_EOS_PictureStyleExUserSet2 0xD164 +#define PTP_DPC_CANON_EOS_PictureStyleExUserSet3 0xD165 +#define PTP_DPC_CANON_EOS_AvailableImageSize 0xD168 +#define PTP_DPC_CANON_EOS_ErrorHistory 0xD169 +#define PTP_DPC_CANON_EOS_LensExchangeHistory 0xD16A +#define PTP_DPC_CANON_EOS_StroboExchangeHistory 0xD16B #define PTP_DPC_CANON_EOS_PictureStyleParam1 0xD170 #define PTP_DPC_CANON_EOS_PictureStyleParam2 0xD171 #define PTP_DPC_CANON_EOS_PictureStyleParam3 0xD172 +#define PTP_DPC_CANON_EOS_MovieRecordVolumeLine 0xD174 +#define PTP_DPC_CANON_EOS_NetworkCommunicationMode 0xD175 +#define PTP_DPC_CANON_EOS_CanonLogGamma 0xD176 +#define PTP_DPC_CANON_EOS_SmartphoneShowImageConfig 0xD177 #define PTP_DPC_CANON_EOS_HighISOSettingNoiseReduction 0xD178 #define PTP_DPC_CANON_EOS_MovieServoAF 0xD179 #define PTP_DPC_CANON_EOS_ContinuousAFValid 0xD17A @@ -1627,6 +1801,7 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_CANON_EOS_UnknownPropD19A 0xD19A /*found in Canon EOS 5D M3*/ #define PTP_DPC_CANON_EOS_UnknownPropD19C 0xD19C /*found in Canon EOS 5D M3*/ #define PTP_DPC_CANON_EOS_UnknownPropD19D 0xD19D /*found in Canon EOS 5D M3*/ +#define PTP_DPC_CANON_EOS_GPSDeviceActive 0xD19F #define PTP_DPC_CANON_EOS_CustomFuncEx 0xD1a0 #define PTP_DPC_CANON_EOS_MyMenu 0xD1a1 #define PTP_DPC_CANON_EOS_MyMenuList 0xD1a2 @@ -1987,6 +2162,7 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_FUJI_ReleaseMode 0xD201 #define PTP_DPC_FUJI_FocusAreas 0xD206 #define PTP_DPC_FUJI_AELock 0xD213 +#define PTP_DPC_FUJI_Copyright 0xD215 #define PTP_DPC_FUJI_Aperture 0xD218 #define PTP_DPC_FUJI_ShutterSpeed 0xD219 @@ -2010,6 +2186,22 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_MTP_Zune_UnknownVersion 0xD181 /* Olympus */ +/* these are from OMD E-M1 Mark 2 */ +#define PTP_DPC_OLYMPUS_Aperture 0xD002 +#define PTP_DPC_OLYMPUS_FocusMode 0xD003 +#define PTP_DPC_OLYMPUS_ExposureMeteringMode 0xD004 +#define PTP_DPC_OLYMPUS_ISO 0xD007 +#define PTP_DPC_OLYMPUS_ExposureCompensation 0xD008 +#define PTP_DPC_OLYMPUS_OMD_DriveMode 0xD009 +#define PTP_DPC_OLYMPUS_ImageFormat 0xD00D +#define PTP_DPC_OLYMPUS_FaceDetection 0xD01A +#define PTP_DPC_OLYMPUS_AspectRatio 0xD01B +#define PTP_DPC_OLYMPUS_Shutterspeed 0xD01C +#define PTP_DPC_OLYMPUS_WhiteBalance 0xD01E +#define PTP_DPC_OLYMPUS_LiveViewModeOM 0xD06D +#define PTP_DPC_OLYMPUS_CaptureTarget 0xD0DC + +/* unsure where these were from */ #define PTP_DPC_OLYMPUS_ResolutionMode 0xD102 #define PTP_DPC_OLYMPUS_FocusPriority 0xD103 #define PTP_DPC_OLYMPUS_DriveMode 0xD104 @@ -2174,6 +2366,83 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_PARROT_MultisensorsIrradianceIntegrationTime 0xD218 #define PTP_DPC_PARROT_OverlapRate 0xD219 +/* Panasonic does not have regular device properties, they use some 32bit values */ +#define PTP_DPC_PANASONIC_PhotoStyle 0x02000010 +#define PTP_DPC_PANASONIC_ISO 0x02000020 +#define PTP_DPC_PANASONIC_ShutterSpeed 0x02000030 +#define PTP_DPC_PANASONIC_Aperture 0x02000040 +#define PTP_DPC_PANASONIC_WhiteBalance 0x02000050 +#define PTP_DPC_PANASONIC_Exposure 0x02000060 +#define PTP_DPC_PANASONIC_AFArea 0x02000070 +#define PTP_DPC_PANASONIC_CameraMode 0x02000080 +#define PTP_DPC_PANASONIC_ImageFormat 0x020000A2 +#define PTP_DPC_PANASONIC_MeteringInfo 0x020000B0 +#define PTP_DPC_PANASONIC_IntervalInfo 0x020000C0 +#define PTP_DPC_PANASONIC_RecDispConfig 0x020000E0 +#define PTP_DPC_PANASONIC_RecInfoFlash 0x02000110 +#define PTP_DPC_PANASONIC_BurstBracket 0x02000140 +#define PTP_DPC_PANASONIC_RecPreviewConfig 0x02000170 +#define PTP_DPC_PANASONIC_RecInfoSelfTimer 0x020001A0 +#define PTP_DPC_PANASONIC_RecInfoFlash2 0x020001B0 +#define PTP_DPC_PANASONIC_MovConfig 0x06000010 +#define PTP_DPC_PANASONIC_08000010 0x08000010 +/* various modes of the camera, HDMI, GetDateTimeWorldTime Mode/Area, SetupCfgInfo, SetupConfig_DateTime, GetSystemFreq Mode, GetSetupConfig Info */ +/* +0000 54 00 00 00 02 00 0a 94-04 00 00 00 11 00 00 08 T............... +0010 0a 00 00 00 e2 07 07 00-10 00 11 00 09 00 12 00 ................ +0020 00 08 02 00 00 00 00 00-13 00 00 08 02 00 00 00 ................ +0030 00 00 14 00 00 08 04 00-00 00 00 00 00 00 15 00 ................ +0040 00 08 04 00 00 00 00 00-00 00 16 00 00 08 02 00 ................ +0050 00 00 01 00 - .... + +0000 d0 00 00 00 02 00 07 91-04 00 00 00 10 00 00 08 ................ +0010 14 00 00 00 14 00 00 00-01 00 01 00 00 00 00 00 ................ +0020 06 00 00 00 38 03 00 00-11 00 00 08 14 00 00 00 ....8........... +0030 14 00 00 00 01 00 01 00-00 00 00 00 05 00 00 00 ................ +0040 c8 00 00 00 12 00 00 08-14 00 00 00 14 00 00 00 ................ +0050 01 00 01 00 00 00 00 00-01 00 00 00 36 00 00 00 ............6... +0060 13 00 00 08 14 00 00 00-14 00 00 00 01 00 01 00 ................ +0070 00 00 00 00 01 00 00 00-2a 00 00 00 14 00 00 08 ........*....... +0080 14 00 00 00 14 00 00 00-01 00 01 00 00 00 00 00 ................ +0090 02 00 00 00 9e 00 00 00-15 00 00 08 14 00 00 00 ................ +00a0 14 00 00 00 01 00 01 00-00 00 00 00 02 00 00 00 ................ +00b0 9e 00 00 00 16 00 00 08-14 00 00 00 14 00 00 00 ................ +00c0 01 00 01 00 00 00 00 00-01 00 00 00 2c 00 00 00 ............,... + */ +#define PTP_DPC_PANASONIC_08000091 0x08000091 /* SetupFilesConfig_Set_Target */ +/* +0000 16 00 00 00 02 00 0a 94-04 00 00 00 91 00 00 08 ................ +0010 02 00 00 00 00 00 - ...... + +0000 44 00 00 00 02 00 07 91-04 00 00 00 90 00 00 08 D............... +0010 14 00 00 00 14 00 00 00-01 00 01 00 00 00 00 00 ................ +0020 01 00 00 00 48 00 00 00-91 00 00 08 14 00 00 00 ....H........... +0030 14 00 00 00 01 00 01 00-00 00 00 00 01 00 00 00 ................ +0040 2c 00 00 00 - ,... + */ + +#define PTP_DPC_PANASONIC_GetFreeSpaceInImages 0x12000010 +/* +0000 98 00 00 00 02 00 14 94-04 00 00 00 11 00 00 12 ................ +0010 04 00 00 00 4e 00 00 00-12 00 00 12 04 00 00 00 ....N........... +0020 00 00 00 00 13 00 00 12-02 00 00 00 00 00 14 00 ................ +0030 00 12 04 00 00 00 00 00-00 00 15 00 00 12 06 00 ................ +0040 00 00 02 00 01 00 00 00-16 00 00 12 3a 00 00 00 ............:... +0050 02 00 4e 00 00 00 00 00-00 00 4e 00 00 00 ff ff ..N.......N..... +0060 ff ff 00 00 00 00 ff ff-ff ff 00 00 00 00 00 00 ................ +0070 00 00 00 00 00 00 ff ff-ff ff 00 00 00 00 ff ff ................ +0080 ff ff 00 00 00 00 00 00-00 00 17 00 00 12 06 00 ................ +0090 00 00 00 00 00 00 00 00- ........ + */ +#define PTP_DPC_PANASONIC_GetBatteryInfo 0x16000010 +/* +0000 1c 00 00 00 02 00 14 94-04 00 00 00 11 00 00 16 ................ +0010 08 00 00 00 4b 00 00 00-4b 00 ff ff ....K...K... + */ +#define PTP_DPC_PANASONIC_LensGetMFBar 0x12010040 +/* 15c00010 GetSetupInfo Error */ +/* 18000010 GetUSBSpeed */ + /* MTP specific Object Properties */ #define PTP_OPC_StorageID 0xDC01 @@ -2397,6 +2666,7 @@ typedef uint16_t (* PTPIOGetResp) (PTPParams* params, PTPContainer* resp); typedef uint16_t (* PTPIOGetData) (PTPParams* params, PTPContainer* ptp, PTPDataHandler *putter); typedef uint16_t (* PTPIOCancelReq) (PTPParams* params, uint32_t transaction_id); +typedef uint16_t (* PTPIODevStatReq) (PTPParams* params); /* debug functions */ typedef void (* PTPErrorFunc) (void *data, const char *format, va_list args) @@ -2458,6 +2728,7 @@ struct _PTPParams { PTPIOGetResp event_check_queue; PTPIOGetResp event_wait; PTPIOCancelReq cancelreq_func; + PTPIODevStatReq devstatreq_func; /* Custom error and debug function */ PTPErrorFunc error_func; @@ -2568,6 +2839,8 @@ uint16_t ptp_usb_control_get_extended_event_data (PTPParams *params, char *buffe uint16_t ptp_usb_control_device_reset_request (PTPParams *params); uint16_t ptp_usb_control_get_device_status (PTPParams *params, char *buffer, int *size); uint16_t ptp_usb_control_cancel_request (PTPParams *params, uint32_t transid); +uint16_t ptp_usb_control_cancel_request (PTPParams *params, uint32_t transid); +uint16_t ptp_usb_control_device_status_request (PTPParams *params); int ptp_ptpip_connect (PTPParams* params, const char *port); @@ -2672,6 +2945,12 @@ uint16_t ptp_getthumb (PTPParams *params, uint32_t handle, uint16_t ptp_deleteobject (PTPParams* params, uint32_t handle, uint32_t ofc); +uint16_t ptp_moveobject (PTPParams* params, uint32_t handle, + uint32_t storage, uint32_t parent); + +uint16_t ptp_copyobject (PTPParams* params, uint32_t handle, + uint32_t storage, uint32_t parent); + uint16_t ptp_sendobjectinfo (PTPParams* params, uint32_t* store, uint32_t* parenthandle, uint32_t* handle, PTPObjectInfo* objectinfo); @@ -2721,7 +3000,7 @@ uint16_t ptp_generic_setdevicepropvalue (PTPParams* params, uint16_t propcode, PTPPropertyValue* value, uint16_t datatype); uint16_t ptp_getfilesystemmanifest (PTPParams* params, uint32_t storage, uint32_t objectformatcode, uint32_t associationOH, - unsigned char** data); + uint64_t *numoifs, PTPObjectFilesystemInfo **oifs); @@ -2931,8 +3210,9 @@ uint16_t ptp_canon_checkevent (PTPParams* params, #define CANON_EOS_OLC_APERTURE 0x0004 #define CANON_EOS_OLC_ISO 0x0008 -#define ptp_canon_eos_setrequestolcinfogroup(params,igmask) ptp_generic_no_data(params,PTP_OC_CANON_EOS_SetRequestOLCInfoGroup,1,igmask) -#define ptp_canon_eos_requestdevicepropvalue(params,prop) ptp_generic_no_data(params,PTP_OC_CANON_EOS_RequestDevicePropValue,1,prop) +#define ptp_canon_eos_setrequestolcinfogroup(params,igmask) ptp_generic_no_data(params,PTP_OC_CANON_EOS_SetRequestOLCInfoGroup,1,igmask) +#define ptp_canon_eos_requestdevicepropvalue(params,prop) ptp_generic_no_data(params,PTP_OC_CANON_EOS_RequestDevicePropValue,1,prop) +#define ptp_canon_eos_setrequestrollingpitchinglevel(params,onoff) ptp_generic_no_data(params,PTP_OC_CANON_EOS_SetRequestRollingPitchingLevel,1,onoff) uint16_t ptp_canon_eos_capture (PTPParams* params, uint32_t *result); uint16_t ptp_canon_eos_getevent (PTPParams* params, PTPCanon_changes_entry **entries, int *nrofentries); uint16_t ptp_canon_getpartialobject (PTPParams* params, uint32_t handle, @@ -3016,6 +3296,7 @@ uint16_t ptp_canon_getpairinginfo (PTPParams* params, uint32_t nr, unsigned char uint16_t ptp_canon_eos_getstorageids (PTPParams* params, PTPStorageIDs* storageids); uint16_t ptp_canon_eos_getstorageinfo (PTPParams* params, uint32_t p1, unsigned char**, unsigned int*); uint16_t ptp_canon_eos_getpartialobject (PTPParams* params, uint32_t oid, uint32_t off, uint32_t xsize, unsigned char**data); +uint16_t ptp_canon_eos_getpartialobjectex (PTPParams* params, uint32_t oid, uint32_t off, uint32_t xsize, unsigned char**data); uint16_t ptp_canon_eos_getobjectinfoex (PTPParams* params, uint32_t storageid, uint32_t objectid, uint32_t unk, PTPCANONFolderEntry **entries, unsigned int *nrofentries); uint16_t ptp_canon_eos_setdevicepropvalueex (PTPParams* params, unsigned char* data, unsigned int size); @@ -3315,6 +3596,9 @@ uint16_t ptp_olympus_opensession (PTPParams*, unsigned char**, unsigned int *); #define ptp_olympus_capture(params,p1) ptp_generic_no_data (params, PTP_OC_OLYMPUS_Capture, 1, p1) uint16_t ptp_olympus_getcameraid (PTPParams*, unsigned char**, unsigned int *); +uint16_t ptp_olympus_omd_capture (PTPParams* params); +uint16_t ptp_olympus_omd_move_focus (PTPParams* params, uint32_t direction, uint32_t step_size); + /* Non PTP protocol functions */ static inline int ptp_operation_issupported(PTPParams* params, uint16_t operation) @@ -3346,6 +3630,7 @@ void ptp_error (PTPParams *params, const char *format, ...); const char* ptp_get_property_description(PTPParams* params, uint16_t dpc); const char* ptp_get_opcode_name(PTPParams* params, uint16_t opcode); +const char* ptp_get_event_code_name(PTPParams* params, uint16_t event_code); int ptp_render_property_value(PTPParams* params, uint16_t dpc, @@ -3362,6 +3647,7 @@ uint16_t ptp_object_want (PTPParams *, uint32_t handle, unsigned int want, PTPOb void ptp_objects_sort (PTPParams *); uint16_t ptp_object_find (PTPParams *params, uint32_t handle, PTPObject **retob); uint16_t ptp_object_find_or_insert (PTPParams *params, uint32_t handle, PTPObject **retob); +uint16_t ptp_list_folder (PTPParams *params, uint32_t storage, uint32_t handle); /* ptpip.c */ void ptp_nikon_getptpipguid (unsigned char* guid); @@ -3423,11 +3709,35 @@ uint16_t ptp_chdk_get_script_status(PTPParams* params, unsigned *status); uint16_t ptp_chdk_write_script_msg(PTPParams* params, char *data, unsigned size, int target_script_id, int *status); uint16_t ptp_chdk_read_script_msg(PTPParams* params, ptp_chdk_script_msg **msg); uint16_t ptp_chdk_get_live_data(PTPParams* params, unsigned flags, unsigned char **data, unsigned int *data_size); +uint16_t ptp_chdk_parse_live_data (PTPParams* params, unsigned char *data, unsigned int data_size, + lv_data_header *header, lv_framebuffer_desc *vpd, lv_framebuffer_desc *bmd); uint16_t ptp_chdk_call_function(PTPParams* params, int *args, int size, int *ret); /*uint16_t ptp_chdk_get_script_output(PTPParams* params, char **output ); */ /*uint16_t ptp_chdk_get_video_settings(PTPParams* params, ptp_chdk_videosettings* vsettings);*/ +uint16_t ptp_fuji_getevents (PTPParams* params, uint16_t** events, uint16_t* count); + +#define ptp_panasonic_liveview(params,enable) ptp_generic_no_data(params,PTP_OC_PANASONIC_Liveview,1,enable?0xD000010:0xD000011) +uint16_t ptp_panasonic_liveview_image (PTPParams* params, unsigned char **data, unsigned int *size); + +uint16_t ptp_panasonic_setdeviceproperty (PTPParams* params, uint32_t propcode, unsigned char *value, uint16_t valuesize); +uint16_t ptp_panasonic_getdeviceproperty (PTPParams *params, uint32_t propcode, uint16_t *valuesize, uint32_t *currentValue); +uint16_t ptp_panasonic_getdevicepropertydesc (PTPParams *params, uint32_t propcode, uint16_t valuesize, uint32_t *currentValue, uint32_t **propertyValueList, uint32_t *propertyValueListLength); +uint16_t ptp_panasonic_getdevicepropertysize (PTPParams *params, uint32_t propcode); + + + +uint16_t ptp_olympus_liveview_image (PTPParams* params, unsigned char **data, unsigned int *size); +#define ptp_olympus_omd_move_focus(params,direction,step_size) ptp_generic_no_data(params,PTP_OC_OLYMPUS_OMD_MFDrive,2,direction,step_size) +uint16_t ptp_olympus_omd_capture (PTPParams* params); +uint16_t ptp_olympus_init_pc_mode (PTPParams* params); +uint16_t ptp_olympus_sdram_image (PTPParams* params, unsigned char **data, unsigned int *size); + + + +#define ptp_panasonic_capture(params) ptp_generic_no_data(params,PTP_OC_PANASONIC_InitiateCapture,1,0x3000011) + #ifdef __cplusplus } #endif /* __cplusplus */ |