diff options
author | Marcus Meissner <marcus@jet.franken.de> | 2020-11-16 07:43:05 +0100 |
---|---|---|
committer | Marcus Meissner <marcus@jet.franken.de> | 2020-11-16 07:43:05 +0100 |
commit | 6a01786d17b882ba22e91caf1d71fe4f6dedf8ad (patch) | |
tree | 6e4a61ff098c0ae120d9c02ecdcf24722dfebcc0 /src/ptp.h | |
parent | 882ac2972c6479932fc63fb806106f9f65feac1c (diff) | |
download | libmtp-6a01786d17b882ba22e91caf1d71fe4f6dedf8ad.tar.gz |
merge from libgphoto2.
Diffstat (limited to 'src/ptp.h')
-rw-r--r-- | src/ptp.h | 1104 |
1 files changed, 977 insertions, 127 deletions
@@ -1,7 +1,7 @@ /* ptp.h * * Copyright (C) 2001 Mariusz Woloszyn <emsi@ipartners.pl> - * Copyright (C) 2003-2017 Marcus Meissner <marcus@jet.franken.de> + * Copyright (C) 2003-2020 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 @@ -25,6 +25,7 @@ #include <stdarg.h> #include <time.h> +#include <sys/time.h> #if defined(HAVE_ICONV) && defined(HAVE_LANGINFO_H) #include <iconv.h> #endif @@ -99,7 +100,7 @@ struct _PTPUSBBulkContainer { uint32_t param4; uint32_t param5; } params; - /* this must be set to the maximum of PTP_USB_BULK_PAYLOAD_LEN_WRITE + /* this must be set to the maximum of PTP_USB_BULK_PAYLOAD_LEN_WRITE * and PTP_USB_BULK_PAYLOAD_LEN_READ */ unsigned char data[PTP_USB_BULK_PAYLOAD_LEN_READ]; } payload; @@ -177,12 +178,13 @@ typedef struct _PTPIPHeader PTPIPHeader; /* not from standards papers, but from traces: */ #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 +/* Vendor extension ID used for MTP (occasionally, usually 6 is used) */ +#define PTP_VENDOR_MTP 0xffffffff /* gphoto overrides */ #define PTP_VENDOR_GP_OLYMPUS 0x0000fffe #define PTP_VENDOR_GP_OLYMPUS_OMD 0x0000fffd +#define PTP_VENDOR_GP_LEICA 0x0000fffc /* Operation Codes */ @@ -294,7 +296,7 @@ typedef struct _PTPIPHeader PTPIPHeader; #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. +0010 33 e3 - 3. */ /* 9034: 1 param, no parms returned */ @@ -305,7 +307,7 @@ typedef struct _PTPIPHeader PTPIPHeader; #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..... +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 */ @@ -317,14 +319,16 @@ typedef struct _PTPIPHeader PTPIPHeader; 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_SetRootCertificateData 0x906E +#define PTP_OC_CANON_DeleteRootCertificateData 0x906F #define PTP_OC_CANON_GetGpsMobilelinkObjectInfo 0x9075 /* 2 args: utcstart, utcend */ #define PTP_OC_CANON_SendGpsTagInfo 0x9076 /* 1 arg: oid */ #define PTP_OC_CANON_GetTranscodeApproxSize 0x9077 /* 1 arg: oid? */ #define PTP_OC_CANON_RequestTranscodeStart 0x9078 /* 1 arg: oid? */ #define PTP_OC_CANON_RequestTranscodeCancel 0x9079 /* 1 arg: oid? */ +#define PTP_OC_CANON_SetRemoteShootingMode 0x9086 + /* 9101: no args, 8 byte data (01 00 00 00 00 00 00 00), no resp data. */ #define PTP_OC_CANON_EOS_GetStorageIDs 0x9101 /* 9102: 1 arg (0) @@ -352,7 +356,7 @@ typedef struct _PTPIPHeader PTPIPHeader; 00000030: 00 00 00 30 44 43 49 4d 00 00 00 00 00 00 00 00 DCIM 00000040: 00 00 00 00 cc c3 01 46 * 2 respargs: 0x0, 0x3c - * + * * sample2: * 00000000: 18 00 00 00 01 00 09 91 15 00 00 00 01 00 00 00 @@ -374,11 +378,11 @@ typedef struct _PTPIPHeader PTPIPHeader; /* 910f: no args, no data, 1 response arg (0). */ #define PTP_OC_CANON_EOS_RemoteRelease 0x910F -/* Marcus: looks more like "Set DeviceProperty" in the trace. +/* Marcus: looks more like "Set DeviceProperty" in the trace. * * no cmd args * data phase (0xc, 0xd11c, 0x1) - * no resp args + * no resp args */ #define PTP_OC_CANON_EOS_SetDevicePropValueEx 0x9110 #define PTP_OC_CANON_EOS_GetRemoteMode 0x9113 @@ -469,9 +473,11 @@ typedef struct _PTPIPHeader PTPIPHeader; #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_RequestSensorCleaning 0x915E /* 1 arg? */ #define PTP_OC_CANON_EOS_AfCancel 0x9160 #define PTP_OC_CANON_EOS_SetImageRecoveryDataEx 0x916B #define PTP_OC_CANON_EOS_GetImageRecoveryListEx 0x916C +#define PTP_OC_CANON_EOS_CompleteAutoSendImages 0x916D #define PTP_OC_CANON_EOS_NotifyAutoTransferStatus 0x916E #define PTP_OC_CANON_EOS_GetReducedObject 0x916F #define PTP_OC_CANON_EOS_GetObjectInfo64 0x9170 /* 1 arg: oid */ @@ -481,17 +487,31 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_OC_CANON_EOS_GetPartialObjectEX64 0x9174 /* args: oid, offset 64bit, maxbyte */ #define PTP_OC_CANON_EOS_CreateHandle64 0x9175 #define PTP_OC_CANON_EOS_NotifySaveComplete 0x9177 +#define PTP_OC_CANON_EOS_GetTranscodedBlock 0x9178 +#define PTP_OC_CANON_EOS_TransferCompleteTranscodedBlock 0x9179 #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_GetWFTData 0x9186 +#define PTP_OC_CANON_EOS_SetWFTData 0x9187 +#define PTP_OC_CANON_EOS_ChangeWFTSettingNumber 0x9188 +#define PTP_OC_CANON_EOS_GetPictureStylePCFlavorParam 0x9189 +#define PTP_OC_CANON_EOS_SetPictureStylePCFlavorParam 0x918A #define PTP_OC_CANON_EOS_GetObjectURL 0x91AB +#define PTP_OC_CANON_EOS_SetCAssistMode 0x91AC +#define PTP_OC_CANON_EOS_GetCAssistPresetThumb 0x91AD +#define PTP_OC_CANON_EOS_SetFELock 0x91B9 +#define PTP_OC_CANON_EOS_DeleteWFTSettingNumber 0x91BA #define PTP_OC_CANON_EOS_SetDefaultCameraSetting 0x91BE #define PTP_OC_CANON_EOS_GetAEData 0x91BF +#define PTP_OC_CANON_EOS_SendHostInfo 0x91E4 /* https://research.checkpoint.com/say-cheese-ransomware-ing-a-dslr-camera/ */ #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_TransferCompleteFTP 0x91F0 +#define PTP_OC_CANON_EOS_CancelTransferFTP 0x91F1 +#define PTP_OC_CANON_EOS_NotifyBtStatus 0x91F9 /* https://research.checkpoint.com/say-cheese-ransomware-ing-a-dslr-camera/ */ +#define PTP_OC_CANON_EOS_SetAdapterBatteryReport 0x91FD /* https://research.checkpoint.com/say-cheese-ransomware-ing-a-dslr-camera/ */ #define PTP_OC_CANON_EOS_FAPIMessageTX 0x91FE #define PTP_OC_CANON_EOS_FAPIMessageRX 0x91FF @@ -504,14 +524,14 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_OC_NIKON_SetProfileData 0x9009 #define PTP_OC_NIKON_AdvancedTransfer 0x9010 #define PTP_OC_NIKON_GetFileInfoInBlock 0x9011 -#define PTP_OC_NIKON_Capture 0x90C0 /* 1 param, no data */ +#define PTP_OC_NIKON_InitiateCaptureRecInSdram 0x90C0 /* 1 param, no data */ #define PTP_OC_NIKON_AfDrive 0x90C1 /* no params, no data */ -#define PTP_OC_NIKON_SetControlMode 0x90C2 /* 1 param, no data */ -#define PTP_OC_NIKON_DelImageSDRAM 0x90C3 /* 1 param, no data */ +#define PTP_OC_NIKON_ChangeCameraMode 0x90C2 /* 1 param, no data */ +#define PTP_OC_NIKON_DelImageSDRAM 0x90C3 /* 1 param (0x0: all, others: cancel this image) , no data */ #define PTP_OC_NIKON_GetLargeThumb 0x90C4 #define PTP_OC_NIKON_CurveDownload 0x90C5 /* 1 param, data in */ #define PTP_OC_NIKON_CurveUpload 0x90C6 /* 1 param, data out */ -#define PTP_OC_NIKON_CheckEvent 0x90C7 /* no params, data in */ +#define PTP_OC_NIKON_GetEvent 0x90C7 /* no params, data in */ #define PTP_OC_NIKON_DeviceReady 0x90C8 /* no params, no data */ #define PTP_OC_NIKON_SetPreWBData 0x90C9 /* 3 params, data out */ #define PTP_OC_NIKON_GetVendorPropCodes 0x90CA /* 0 params, data in */ @@ -541,14 +561,44 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_OC_NIKON_EndMovieRec 0x920b /* no params, no data */ #define PTP_OC_NIKON_TerminateCapture 0x920c /* 2 params */ +#define PTP_OC_NIKON_GetFhdPicture 0x920f /* param: objecthandle. returns (at most) 1920x1028 picture */ #define PTP_OC_NIKON_GetDevicePTPIPInfo 0x90E0 -#define PTP_OC_NIKON_GetPartialObjectHiSpeed 0x9400 /* 3 params, data in */ +#define PTP_OC_NIKON_GetPartialObjectHiSpeed 0x9400 /* 3 params, p1: object handle, p2: 32bit transfer size, p3: terminate after transfer. DATA in, Reuslt: r1: 32bit number sent, r2: before offset low 32bit , r3: before offset high 32bit */ +#define PTP_OC_NIKON_StartSpotWb 0x9402 +#define PTP_OC_NIKON_EndSpotWb 0x9403 +#define PTP_OC_NIKON_ChangeSpotWbArea 0x9404 +#define PTP_OC_NIKON_MeasureSpotWb 0x9405 +#define PTP_OC_NIKON_EndSpotWbResultDisp 0x9406 +#define PTP_OC_NIKON_CancelImagesInSDRAM 0x940c +#define PTP_OC_NIKON_GetSBHandles 0x9414 +#define PTP_OC_NIKON_GetSBAttrDesc 0x9415 +#define PTP_OC_NIKON_GetSBAttrValue 0x9416 +#define PTP_OC_NIKON_SetSBAttrValue 0x9417 +#define PTP_OC_NIKON_GetSBGroupAttrDesc 0x9418 +#define PTP_OC_NIKON_GetSBGroupAttrValue 0x9419 +#define PTP_OC_NIKON_SetSBGroupAttrValue 0x941a +#define PTP_OC_NIKON_TestFlash 0x941b +#define PTP_OC_NIKON_GetEventEx 0x941c /* can do multiparameter events, compared to GetEvent */ +#define PTP_OC_NIKON_MirrorUpCancel 0x941d +#define PTP_OC_NIKON_PowerZoomByFocalLength 0x941e +#define PTP_OC_NIKON_ActiveSelectionControl 0x941f +#define PTP_OC_NIKON_SaveCameraSetting 0x9420 +#define PTP_OC_NIKON_GetObjectSize 0x9421 /* param: objecthandle, returns 64bit objectsize as DATA */ +#define PTP_OC_NIKON_GetLiveViewCompressedSize 0x9423 +#define PTP_OC_NIKON_StartTracking 0x9424 +#define PTP_OC_NIKON_EndTracking 0x9425 +#define PTP_OC_NIKON_ChangeAELock 0x9426 +#define PTP_OC_NIKON_GetLiveViewImageEx 0x9428 +#define PTP_OC_NIKON_GetPartialObjectEx 0x9431 /* p1: objecthandle, p2: offset lower 32bit, p3: offset higher 32bit, p4: maxsize lower 32bit, p5: maxsize upper 32bit, response is r1: lower 32bit, r2: higher 32bit */ +#define PTP_OC_NIKON_GetManualSettingLensData 0x9432 + /* From Nikon V1 Trace */ #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 #define PTP_OC_CASIO_STILL_STOP 0x9002 @@ -584,12 +634,12 @@ typedef struct _PTPIPHeader PTPIPHeader; /* 9201: * 3 params: 1,0,0 ; IN: data 8 bytes all 0 * or: - * 3 params: 2,0,0 ; IN: data 8 bytes all 0 + * 3 params: 2,0,0 ; IN: data 8 bytes all 0 * or - * 3 params: 3,0,0,: IN: data 8 butes all 0 + * 3 params: 3,0,0,: IN: data 8 bytes all 0 */ #define PTP_OC_SONY_SDIOConnect 0x9201 -/* 9202: 1 param, 0xc8; IN data: +/* 9202: 1 param, 0xc8; IN data: * 16 bit: 0xc8 * ptp array 32 bit: index, 16 bit values of propcodes */ #define PTP_OC_SONY_GetSDIOGetExtDeviceInfo 0x9202 @@ -604,6 +654,16 @@ typedef struct _PTPIPHeader PTPIPHeader; /* get all device property data at once */ #define PTP_OC_SONY_GetAllDevicePropData 0x9209 /* gets a 4126 byte blob of device props ?*/ +#define PTP_OC_SONY_QX_SetExtPictureProfile 0x96F2 +#define PTP_OC_SONY_QX_GetExtPictureProfile 0x96F3 +#define PTP_OC_SONY_QX_GetExtLensInfo 0x96F4 +#define PTP_OC_SONY_QX_SendUpdateFile 0x96F5 +#define PTP_OC_SONY_QX_GetAllDevicePropData 0x96F6 +#define PTP_OC_SONY_QX_SetControlDeviceB 0x96F8 /* ControlDevice */ +#define PTP_OC_SONY_QX_SetControlDeviceA 0x96FA /* SetExtDevicePropValue */ +#define PTP_OC_SONY_QX_GetSDIOGetExtDeviceInfo 0x96FD +#define PTP_OC_SONY_QX_Connect 0x96FE + /* Microsoft / MTP extension codes */ #define PTP_OC_MTP_GetObjectPropsSupported 0x9801 @@ -620,7 +680,7 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_OC_MTP_Skip 0x9820 /* - * Windows Media Digital Rights Management for Portable Devices + * Windows Media Digital Rights Management for Portable Devices * Extension Codes (microsoft.com/WMDRMPD: 10.1) */ #define PTP_OC_MTP_WMDRMPD_GetSecureTimeChallenge 0x9101 @@ -635,10 +695,10 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_OC_MTP_WMDRMPD_SendWMDRMPDCommand 0x910A #define PTP_OC_MTP_WMDRMPD_SendWMDRMPDRequest 0x910B -/* - * Windows Media Digital Rights Management for Portable Devices +/* + * Windows Media Digital Rights Management for Portable Devices * Extension Codes (microsoft.com/WMDRMPD: 10.1) - * Below are operations that have no public documented identifier + * Below are operations that have no public documented identifier * associated with them "Vendor-defined Command Code" */ #define PTP_OC_MTP_WMDRMPD_SendWMDRMPDAppRequest 0x9212 @@ -649,7 +709,7 @@ typedef struct _PTPIPHeader PTPIPHeader; /* ^^^ guess ^^^ */ /* - * Microsoft Advanced Audio/Video Transfer + * Microsoft Advanced Audio/Video Transfer * Extensions (microsoft.com/AAVT: 1.0) */ #define PTP_OC_MTP_AAVT_OpenMediaSession 0x9170 @@ -658,7 +718,7 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_OC_MTP_AAVT_SetCurrentTimePosition 0x9173 /* - * Windows Media Digital Rights Management for Network Devices + * Windows Media Digital Rights Management for Network Devices * Extensions (microsoft.com/WMDRMND: 1.0) MTP/IP? */ #define PTP_OC_MTP_WMDRMND_SendRegistrationRequest 0x9180 @@ -668,8 +728,8 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_OC_MTP_WMDRMND_SendWMDRMNDLicenseRequest 0x9184 #define PTP_OC_MTP_WMDRMND_GetWMDRMNDLicenseResponse 0x9185 -/* - * Windows Media Player Portiable Devices +/* + * Windows Media Player Portiable Devices * Extension Codes (microsoft.com/WMPPD: 11.1) */ #define PTP_OC_MTP_WMPPD_ReportAddedDeletedItems 0x9201 @@ -677,7 +737,7 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_OC_MTP_WMPPD_PlaylistObjectPref 0x9203 /* - * Undocumented Zune Operation Codes + * Undocumented Zune Operation Codes * maybe related to WMPPD extension set? */ #define PTP_OC_MTP_ZUNE_GETUNDEFINED001 0x9204 @@ -692,6 +752,44 @@ typedef struct _PTPIPHeader PTPIPHeader; #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 */ +/* 948C: Record Video? */ +/* 9482: Set One Touch WB Gain */ +/* 9483: Set / Start Magnifying Live View Point */ +/* 9488: Change Magnifying Live View Area */ +/* 9493: Start Driving Zoom Lens For Direction / Focal Length / Stop Driving zoom + * start direction: x1=1,x2=0,x3= STEPS?, x4=1 or 2 (near / far ? ) + * start to focallength: x1=1,x2=3,x3= VALUE? ,x4=4 (potentially more) + * stop: x1=2,x2=0,x3=0,x4=0 + * unclear: x1=4,x2=0,x3=0,x4=0 + */ +/* 9495: Set / Clear Auto Focus Point? */ +/* 94a0: Set / Clear Auto Exposure Point? */ +/* 94b7 or 94bf: Set Focus Adjust Pulse */ +/* 94A1: Detect One Touch WB Gain */ +/* 94A2: AdjustLevelGauge? */ +/* 94A4: Get Direct Item Buffer */ +/* 94A5: Get Direct Item Info */ +/* 94B7: Get Recording Folder List? */ +/* 94BA / 94a1: Pixel Mapping? */ +/* 94ba: TransferModeStartStop */ +/* 94bb: Get Un Transfer List */ +/* 94bc: GetLocalObject info? */ +/* 94bd: GetLocalObject? */ +/* 94be: delete local object? */ +/* 94c0 / 94b9 : Set Comment String */ +/* 94bf: Set Connect Pc Info? */ +/* 94c0: Get Connect Pc Info? */ +/* 94c1: Clear Connect Pc Info? */ +/* 94c4: Get Camera Af Target Frames? */ +/* 94c3: Start Station Mode */ +/* 94c3: End Station Mode */ +/* 911c: Get Firmware Update Mode? */ +/* 9121: Firmware Check? */ +/* 9122: Get Firmware Status? */ +/* 9123: Firmware Update Initiate? */ +/* 9124: Get Firmware Language? */ +/* 9125: Get Firmware Status? */ +/* 9126: Trans Firmware? */ /* Olympus E series commands */ @@ -721,9 +819,9 @@ typedef struct _PTPIPHeader PTPIPHeader; /* Leica opcodes, from Lightroom tether plugin */ /* also from: * https://alexhude.github.io/2019/01/24/hacking-leica-m240.html */ -#define PTP_OC_LEICA_SetCameraSettings 0x9001 +#define PTP_OC_LEICA_SetCameraSettings 0x9001 /* image shuttle */ #define PTP_OC_LEICA_GetCameraSettings 0x9002 -#define PTP_OC_LEICA_GetLensParameter 0x9003 +#define PTP_OC_LEICA_GetLensParameter 0x9003 /* lrplugin */ /* probably 2 arguments. * generic: releaseStage, stepSize * Release(releasestage) = (releasestage,0) @@ -733,9 +831,9 @@ typedef struct _PTPIPHeader PTPIPHeader; * AutofocusPush() = (1,0) ... same as AEStart? * KeepCameraActive() = (0xe,0) */ -#define PTP_OC_LEICA_Release 0x9004 -#define PTP_OC_LEICA_OpenLESession 0x9005 -#define PTP_OC_LEICA_CloseLESession 0x9006 +#define PTP_OC_LEICA_LEReleaseStages 0x9004 /* lrplugin seeing 1 (push af control), 2 (release af control), 0x0c (continuous start), 0x0d (continuous end) as potential arguments */ +#define PTP_OC_LEICA_LEOpenSession 0x9005 /* lrplugin one argument, possible 0 is ok? */ +#define PTP_OC_LEICA_LECloseSession 0x9006 /* lrplugin */ #define PTP_OC_LEICA_RequestObjectTransferReady 0x9007 #define PTP_OC_LEICA_GetGeoTrackingData 0x9008 #define PTP_OC_LEICA_OpenDebugSession 0x900a @@ -745,9 +843,22 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_OC_LEICA_GetDebugRoute 0x900e #define PTP_OC_LEICA_SetIPTCData 0x900f #define PTP_OC_LEICA_GetIPTCData 0x9010 +#define PTP_OC_LEICA_LEControlAutoFocus 0x9016 /* lr plugin */ +#define PTP_OC_LEICA_LEControlBulbExposure 0x9019 /* seen in lr plugin ... similar to 9004 and 901a release/press shutter */ +#define PTP_OC_LEICA_LEControlContinuousExposure 0x901a /* seen in lr plugin ... similar to 9004 and 9019 release/press shutter */ +#define PTP_OC_LEICA_901b 0x901b /* seen in lr plugin ... related to release not listed in debugprint */ +#define PTP_OC_LEICA_LEControlPhotoLiveView 0x901c /* seen in lr plugin ... */ +#define PTP_OC_LEICA_LEKeepSessionActive 0x901d /* seen in lr plugin ... */ +#define PTP_OC_LEICA_LEMoveLens 0x901e /* seen in image shuttle ... 1? arg */ #define PTP_OC_LEICA_Get3DAxisData 0x9020 +#define PTP_OC_LEICA_LESetZoomMode 0x9021 /* lr plugin */ +#define PTP_OC_LEICA_LESetFocusCrossPosition 0x9022 /* lr plugin */ +#define PTP_OC_LEICA_LESetDisplayWindowPosition 0x9024 /* lr plugin */ +#define PTP_OC_LEICA_LEGetStreamData 0x9025 /* lr plugin */ #define PTP_OC_LEICA_OpenLiveViewSession 0x9030 #define PTP_OC_LEICA_CloseLiveViewSession 0x9031 +#define PTP_OC_LEICA_LESetDateTime 0x9036 /* lr plugin */ +#define PTP_OC_LEICA_GetObjectPropListPaginated 0x9037 #define PTP_OC_LEICA_OpenProductionSession 0x9100 #define PTP_OC_LEICA_CloseProductionSession 0x9101 #define PTP_OC_LEICA_UpdateFirmware 0x9102 @@ -790,7 +901,7 @@ typedef struct _PTPIPHeader PTPIPHeader; /* 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 - .... +0020 00 00 00 00 - .... */ #define PTP_OC_PANASONIC_9107 0x9107 /* getsize? */ @@ -830,12 +941,66 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_OC_PANASONIC_LiveviewImage 0x9706 /* Get Liveview Data */ #define PTP_OC_PANASONIC_9707 0x9707 /* 4k6k cutting get stream */ +/* Samsung NX: + * 9002 send check event + * 9003 send get event + * 9004 require capture exec + * 9005 capture exec + * 9006 liveview info + * 9007 liveview exec / check get file + * 9008 set focus position + * 9009 get focus position + * 900a reset device + * 900b format device + * 900d get tick + * 900e set tick + * 900f set hidden command + * 9010 get record status + * 9011 file transfer + * 9012 set enlarge + * 9013 movie complete exec / movie transfer + * 9014 set record pause + * 9015 set record resume + * 9017 set live view + * 9018 image transfer + * 9019 set imge receive complete + * 901a set dev prop value + * 901b get dev unique id / get dev mode index / get dev prop desc + * 901d get dev unique id + * 9020 set live receive complete + * 9021 sensor cleaning device + * 9022 interval capture stop + * 9023 display save mode wakeup + * 9024 movie cancel + * 9025 get capture count + * 9026 control touch af + * 9027 get image path + * 9028 tracking af stop + * 902a connect try ptp/ip + * 902b connect confirm ptp/ip + * 90fe firmware update + */ +/* These opcodes are probably FUJI Wifi only (but not USB) */ +#define PTP_OC_FUJI_InitiateMovieCapture 0x9020 +#define PTP_OC_FUJI_TerminateMovieCapture 0x9021 +#define PTP_OC_FUJI_GetCapturePreview 0x9022 +#define PTP_OC_FUJI_SetFocusPoint 0x9026 /* LockS1Lock */ +#define PTP_OC_FUJI_ResetFocusPoint 0x9027 /* UnlockS1Lock */ +#define PTP_OC_FUJI_GetDeviceInfo 0x902B +#define PTP_OC_FUJI_SetShutterSpeed 0x902C /* StepShutterSpeed */ +#define PTP_OC_FUJI_SetAperture 0x902D /* StepFNumber */ +#define PTP_OC_FUJI_SetExposureCompensation 0x902E /* StepExposureBias */ +#define PTP_OC_FUJI_CancelInitiateCapture 0x9030 +#define PTP_OC_FUJI_FmSendObjectInfo 0x9040 +#define PTP_OC_FUJI_FmSendObject 0x9041 +#define PTP_OC_FUJI_FmSendPartialObject 0x9042 /* Proprietary vendor extension operations mask */ #define PTP_OC_EXTENSION_MASK 0xF000 #define PTP_OC_EXTENSION 0x9000 + /* Response Codes */ /* PTP v1.0 response codes */ @@ -896,7 +1061,17 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_RC_NIKON_NotLiveView 0xA00B #define PTP_RC_NIKON_MfDriveStepEnd 0xA00C #define PTP_RC_NIKON_MfDriveStepInsufficiency 0xA00E -#define PTP_RC_NIKON_AdvancedTransferCancel 0xA022 +#define PTP_RC_NIKON_NoFullHDPresent 0xA00F +#define PTP_RC_NIKON_StoreError 0xA021 +#define PTP_RC_NIKON_StoreUnformatted 0xA022 /* from z6 sdk */ +#define PTP_RC_NIKON_AdvancedTransferCancel 0xA022 /* dup from me*/ +#define PTP_RC_NIKON_Bulb_Release_Busy 0xA200 +#define PTP_RC_NIKON_Silent_Release_Busy 0xA201 +#define PTP_RC_NIKON_MovieFrame_Release_Busy 0xA202 +#define PTP_RC_NIKON_Shutter_Speed_Time 0xA204 +#define PTP_RC_NIKON_Waiting_2ndRelease 0xA207 +#define PTP_RC_NIKON_MirrorUpCapture_Already_Start 0xA208 +#define PTP_RC_NIKON_Invalid_SBAttribute_Value 0xA209 /* Canon specific response codes */ #define PTP_RC_CANON_UNKNOWN_COMMAND 0xA001 @@ -928,9 +1103,9 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_RC_MTP_Object_Too_Large 0xA809 #define PTP_RC_MTP_ObjectProp_Not_Supported 0xA80A -/* Microsoft Advanced Audio/Video Transfer response codes +/* Microsoft Advanced Audio/Video Transfer response codes (microsoft.com/AAVT 1.0) */ -#define PTP_RC_MTP_Invalid_Media_Session_ID 0xA170 +#define PTP_RC_MTP_Invalid_Media_Session_ID 0xA170 #define PTP_RC_MTP_Media_Session_Limit_Reached 0xA171 #define PTP_RC_MTP_No_More_Data 0xA172 @@ -980,6 +1155,7 @@ typedef struct _PTPIPHeader PTPIPHeader; /* Canon EOS events */ #define PTP_EC_CANON_EOS_RequestGetEvent 0xc101 +#define PTP_EC_CANON_EOS_RequestCancelTransferMA 0xc180 #define PTP_EC_CANON_EOS_ObjectAddedEx 0xc181 #define PTP_EC_CANON_EOS_ObjectRemoved 0xc182 #define PTP_EC_CANON_EOS_RequestGetObjectInfoEx 0xc183 @@ -1022,20 +1198,29 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_EC_CANON_EOS_ImportError 0xc1af #define PTP_EC_CANON_EOS_BlePairing 0xc1b0 #define PTP_EC_CANON_EOS_RequestAutoSendImages 0xc1b1 +#define PTP_EC_CANON_EOS_RequestTranscodedBlockTransfer 0xc1b2 +#define PTP_EC_CANON_EOS_RequestCAssistImage 0xc1b4 #define PTP_EC_CANON_EOS_RequestObjectTransferFTP 0xc1f1 /* Nikon extension Event Codes */ /* Nikon extension Event Codes */ -#define PTP_EC_Nikon_ObjectAddedInSDRAM 0xC101 -#define PTP_EC_Nikon_CaptureCompleteRecInSdram 0xC102 +#define PTP_EC_Nikon_ObjectAddedInSDRAM 0xC101 /* e1: objecthandle */ +#define PTP_EC_Nikon_CaptureCompleteRecInSdram 0xC102 /* no args */ /* Gets 1 parameter, objectid pointing to DPOF object */ #define PTP_EC_Nikon_AdvancedTransfer 0xC103 #define PTP_EC_Nikon_PreviewImageAdded 0xC104 - -/* Olympus E series */ -#define PTP_EC_Olympus_PropertyChanged 0xC102 -#define PTP_EC_Olympus_CaptureComplete 0xC103 +#define PTP_EC_Nikon_MovieRecordInterrupted 0xC105 /* e1: errocode, e2: recordkind */ +#define PTP_EC_Nikon_MovieRecordComplete 0xC108 /* e1: recordkind */ +#define PTP_EC_Nikon_MovieRecordStarted 0xC10A /* e1: recordkind */ +#define PTP_EC_Nikon_PictureControlAdjustChanged 0xC10B /* e1: picctrlitem e2: shootingmode */ +#define PTP_EC_Nikon_LiveViewStateChanged 0xC10C /* e1: liveview state */ +#define PTP_EC_Nikon_ManualSettingsLensDataChanged 0xC10E /* e1: lensnr */ +#define PTP_EC_Nikon_ActiveSelectionInterrupted 0xC112 /* e1: errorcode */ +#define PTP_EC_Nikon_SBAdded 0xC120 /* e1: sbhandle */ +#define PTP_EC_Nikon_SBRemoved 0xC121 /* e1: sbhandle */ +#define PTP_EC_Nikon_SBAttrChanged 0xC122 /* e1: sbhandle, e2: attrid */ +#define PTP_EC_Nikon_SBGroupAttrChanged 0xC123 /* e1: sbgroupid, e2: groupattrid */ /* Sony */ #define PTP_EC_Sony_ObjectAdded 0xC201 @@ -1053,6 +1238,43 @@ typedef struct _PTPIPHeader PTPIPHeader; #define PTP_EC_PANASONIC_ObjectAdded 0xC108 #define PTP_EC_PANASONIC_ObjectAddedSDRAM 0xC109 +/* 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 + +#define PTP_EC_FUJI_PreviewAvailable 0xC001 +#define PTP_EC_FUJI_ObjectAdded 0xC004 /* constants for GetObjectHandles */ #define PTP_GOH_ALL_STORAGE 0xffffffff @@ -1106,6 +1328,18 @@ struct _PTPStorageInfo { }; typedef struct _PTPStorageInfo PTPStorageInfo; +/* PTP Stream Info */ +struct _PTPStreamInfo { + uint64_t DatasetSize; + uint64_t TimeResolution; + uint32_t FrameHeaderSize; + uint32_t FrameMaxSize; + uint32_t PacketHeaderSize; + uint32_t PacketMaxSize; + uint32_t PacketAlignment; +}; +typedef struct _PTPStreamInfo PTPStreamInfo; + /* PTP objecthandles structure (returned by GetObjectHandles) */ struct _PTPObjectHandles { @@ -1460,7 +1694,7 @@ struct _PTPNIKONWifiProfile { uint8_t display_order; char creation_date[16]; char lastusage_date[16]; - + /* Values only valid when writing */ uint32_t ip_address; uint8_t subnet_mask; /* first zero bit position, e.g. 24 for 255.255.255.0 */ @@ -1747,7 +1981,10 @@ typedef struct _PTPCanonEOSDeviceInfo { #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_StroboSettingExpCompositionControl 0xD126 #define PTP_DPC_CANON_EOS_ConnectStatus 0xD127 +#define PTP_DPC_CANON_EOS_LensBarrelStatus 0xD128 +#define PTP_DPC_CANON_EOS_SilentShutterSetting 0xD129 #define PTP_DPC_CANON_EOS_LV_AF_EyeDetect 0xD12C #define PTP_DPC_CANON_EOS_AutoTransMobile 0xD12D #define PTP_DPC_CANON_EOS_URLSupportFormat 0xD12E @@ -1801,7 +2038,8 @@ typedef struct _PTPCanonEOSDeviceInfo { #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_ShutterReleaseCounter 0xD167 +#define PTP_DPC_CANON_EOS_MovieAVModeFine 0xD166 +#define PTP_DPC_CANON_EOS_ShutterReleaseCounter 0xD167 /* perhaps send a requestdeviceprop ex ? */ #define PTP_DPC_CANON_EOS_AvailableImageSize 0xD168 #define PTP_DPC_CANON_EOS_ErrorHistory 0xD169 #define PTP_DPC_CANON_EOS_LensExchangeHistory 0xD16A @@ -1915,6 +2153,29 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_CANON_EOS_LCDBrightness 0xD1de #define PTP_DPC_CANON_EOS_CADarkBright 0xD1df +#define PTP_DPC_CANON_EOS_CAssistPreset 0xD201 +#define PTP_DPC_CANON_EOS_CAssistBrightness 0xD202 +#define PTP_DPC_CANON_EOS_CAssistContrast 0xD203 +#define PTP_DPC_CANON_EOS_CAssistSaturation 0xD204 +#define PTP_DPC_CANON_EOS_CAssistColorBA 0xD205 +#define PTP_DPC_CANON_EOS_CAssistColorMG 0xD206 +#define PTP_DPC_CANON_EOS_CAssistMonochrome 0xD207 +#define PTP_DPC_CANON_EOS_FocusShiftSetting 0xD208 +#define PTP_DPC_CANON_EOS_MovieSelfTimer 0xD209 +#define PTP_DPC_CANON_EOS_Clarity 0xD20B +#define PTP_DPC_CANON_EOS_2GHDRSetting 0xD20C +#define PTP_DPC_CANON_EOS_MovieParam5 0xD20D +#define PTP_DPC_CANON_EOS_HDRViewAssistModeRec 0xD20E +#define PTP_DPC_CANON_EOS_PropFinderAFFrame 0xD214 +#define PTP_DPC_CANON_EOS_VariableMovieRecSetting 0xD215 +#define PTP_DPC_CANON_EOS_PropAutoRotate 0xD216 +#define PTP_DPC_CANON_EOS_MFPeakingSetting 0xD217 +#define PTP_DPC_CANON_EOS_MovieSpatialOversampling 0xD218 +#define PTP_DPC_CANON_EOS_MovieCropMode 0xD219 +#define PTP_DPC_CANON_EOS_ShutterType 0xD21A +#define PTP_DPC_CANON_EOS_WFTBatteryPower 0xD21B +#define PTP_DPC_CANON_EOS_BatteryInfoEx 0xD21C + /* Nikon extension device property codes */ #define PTP_DPC_NIKON_ShootingBank 0xD010 #define PTP_DPC_NIKON_ShootingBankNameA 0xD011 @@ -1946,9 +2207,12 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_NIKON_ToneCompensation 0xD02B #define PTP_DPC_NIKON_ColorModel 0xD02C #define PTP_DPC_NIKON_HueAdjustment 0xD02D -#define PTP_DPC_NIKON_NonCPULensDataFocalLength 0xD02E /* Set FMM Manual */ -#define PTP_DPC_NIKON_NonCPULensDataMaximumAperture 0xD02F /* Set F0 Manual */ -#define PTP_DPC_NIKON_ShootingMode 0xD030 +#define PTP_DPC_NIKON_NonCPULensDataFocalLength 0xD02E +#define PTP_DPC_NIKON_FmmManualSetting 0xD02E /* on z6, same as PTP_DPC_NIKON_NonCPULensDataFocalLength? */ +#define PTP_DPC_NIKON_NonCPULensDataMaximumAperture 0xD02F +#define PTP_DPC_NIKON_F0ManualSetting 0xD02F /* on z6, same as PTP_DPC_NIKON_NonCPULensDataMaximumAperture? */ +#define PTP_DPC_NIKON_ShootingMode 0xD030 /* also Capture Area Crop on Z6 */ +#define PTP_DPC_NIKON_CaptureAreaCrop 0xD030 /* on z6, (DX = 1/FX = 0 / 1:1=2, 16:9=3)*/ #define PTP_DPC_NIKON_JPEG_Compression_Policy 0xD031 #define PTP_DPC_NIKON_ColorSpace 0xD032 #define PTP_DPC_NIKON_AutoDXCrop 0xD033 @@ -1957,12 +2221,22 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_NIKON_VideoMode 0xD036 #define PTP_DPC_NIKON_EffectMode 0xD037 #define PTP_DPC_NIKON_1_Mode 0xD038 +#define PTP_DPC_NIKON_WhiteBalancePresetName5 0xD038 /* z6 */ +#define PTP_DPC_NIKON_WhiteBalancePresetName6 0xD039 /* z6 */ +#define PTP_DPC_NIKON_WhiteBalanceTunePreset5 0xD03A /* z6 */ +#define PTP_DPC_NIKON_WhiteBalanceTunePreset6 0xD03B /* z6 */ +#define PTP_DPC_NIKON_WhiteBalancePresetProtect5 0xD03C /* z6 */ +#define PTP_DPC_NIKON_WhiteBalancePresetProtect6 0xD03D /* z6 */ +#define PTP_DPC_NIKON_WhiteBalancePresetValue5 0xD03E /* z6 */ +#define PTP_DPC_NIKON_WhiteBalancePresetValue6 0xD03F /* z6 */ #define PTP_DPC_NIKON_CSMMenuBankSelect 0xD040 #define PTP_DPC_NIKON_MenuBankNameA 0xD041 #define PTP_DPC_NIKON_MenuBankNameB 0xD042 #define PTP_DPC_NIKON_MenuBankNameC 0xD043 #define PTP_DPC_NIKON_MenuBankNameD 0xD044 #define PTP_DPC_NIKON_ResetBank 0xD045 +#define PTP_DPC_NIKON_AFStillLockOnAcross 0xD046 +#define PTP_DPC_NIKON_AFStillLockOnMove 0xD047 #define PTP_DPC_NIKON_A1AFCModePriority 0xD048 #define PTP_DPC_NIKON_A2AFSModePriority 0xD049 #define PTP_DPC_NIKON_A3GroupDynamicAF 0xD04A @@ -1971,6 +2245,7 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_NIKON_FocusAreaIllumContinuous 0xD04D #define PTP_DPC_NIKON_FocusAreaIllumWhenSelected 0xD04E #define PTP_DPC_NIKON_FocusAreaWrap 0xD04F /* area sel */ +#define PTP_DPC_NIKON_FocusAreaSelect 0xD04F /* z6 */ #define PTP_DPC_NIKON_VerticalAFON 0xD050 #define PTP_DPC_NIKON_AFLockOn 0xD051 #define PTP_DPC_NIKON_FocusAreaZone 0xD052 @@ -1980,22 +2255,22 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_NIKON_EVStep 0xD056 /* EV Step SS FN */ #define PTP_DPC_NIKON_EVStepExposureComp 0xD057 #define PTP_DPC_NIKON_ExposureCompensation 0xD058 -#define PTP_DPC_NIKON_CenterWeightArea 0xD059 +#define PTP_DPC_NIKON_CenterWeightArea 0xD059 /* CenterweightedExRange */ #define PTP_DPC_NIKON_ExposureBaseMatrix 0xD05A #define PTP_DPC_NIKON_ExposureBaseCenter 0xD05B #define PTP_DPC_NIKON_ExposureBaseSpot 0xD05C #define PTP_DPC_NIKON_LiveViewAFArea 0xD05D /* FIXME: AfAtLiveview? */ #define PTP_DPC_NIKON_AELockMode 0xD05E #define PTP_DPC_NIKON_AELAFLMode 0xD05F -#define PTP_DPC_NIKON_LiveViewAFFocus 0xD061 +#define PTP_DPC_NIKON_LiveViewAFFocus 0xD061 /* AfModeAtLiveView */ #define PTP_DPC_NIKON_MeterOff 0xD062 #define PTP_DPC_NIKON_SelfTimer 0xD063 #define PTP_DPC_NIKON_MonitorOff 0xD064 #define PTP_DPC_NIKON_ImgConfTime 0xD065 #define PTP_DPC_NIKON_AutoOffTimers 0xD066 #define PTP_DPC_NIKON_AngleLevel 0xD067 -#define PTP_DPC_NIKON_D1ShootingSpeed 0xD068 /* continous speed low */ -#define PTP_DPC_NIKON_D2MaximumShots 0xD069 +#define PTP_DPC_NIKON_D1ShootingSpeed 0xD068 /* continuous speed low */ +#define PTP_DPC_NIKON_D2MaximumShots 0xD069 /* BurstMaxNumer */ #define PTP_DPC_NIKON_ExposureDelayMode 0xD06A #define PTP_DPC_NIKON_LongExposureNoiseReduction 0xD06B #define PTP_DPC_NIKON_FileNumberSequence 0xD06C @@ -2015,6 +2290,9 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_NIKON_BracketOrder 0xD07A #define PTP_DPC_NIKON_E8AutoBracketSelection 0xD07B /* Bracket Method? */ #define PTP_DPC_NIKON_BracketingSet 0xD07C +#define PTP_DPC_NIKON_AngleLevelPitching 0xD07D +#define PTP_DPC_NIKON_AngleLevelYawing 0xD07E +#define PTP_DPC_NIKON_ExtendShootingMenu 0xD07F #define PTP_DPC_NIKON_F1CenterButtonShootingMode 0xD080 #define PTP_DPC_NIKON_CenterButtonPlaybackMode 0xD081 #define PTP_DPC_NIKON_F2Multiselector 0xD082 @@ -2035,6 +2313,10 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_NIKON_ImageCommentEnable 0xD091 #define PTP_DPC_NIKON_ImageRotation 0xD092 #define PTP_DPC_NIKON_ManualSetLensNo 0xD093 +#define PTP_DPC_NIKON_RetractableLensWarning 0xD09C +#define PTP_DPC_NIKON_FaceDetection 0xD09D +#define PTP_DPC_NIKON_3DTrackingCaptureArea 0xD09E +#define PTP_DPC_NIKON_MatrixMetering 0xD09F #define PTP_DPC_NIKON_MovScreenSize 0xD0A0 #define PTP_DPC_NIKON_MovVoice 0xD0A1 #define PTP_DPC_NIKON_MovMicrophone 0xD0A2 @@ -2042,14 +2324,33 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_NIKON_MovRecProhibitCondition 0xD0A4 #define PTP_DPC_NIKON_ManualMovieSetting 0xD0A6 #define PTP_DPC_NIKON_MovQuality 0xD0A7 +#define PTP_DPC_NIKON_MovRecordMicrophoneLevelValue 0xD0A8 +#define PTP_DPC_NIKON_MovWindNoiseReduction 0xD0AA +#define PTP_DPC_NIKON_MovRecordingZone 0xD0AC +#define PTP_DPC_NIKON_MovISOAutoControl 0xD0AD +#define PTP_DPC_NIKON_MovISOAutoHighLimit 0xD0AE +#define PTP_DPC_NIKON_MovFileType 0xD0AF /* 0: mov, 1: mp4 */ #define PTP_DPC_NIKON_LiveViewScreenDisplaySetting 0xD0B2 #define PTP_DPC_NIKON_MonitorOffDelay 0xD0B3 +#define PTP_DPC_NIKON_ExposureIndexEx 0xD0B4 +#define PTP_DPC_NIKON_ISOControlSensitivity 0xD0B5 +#define PTP_DPC_NIKON_RawImageSize 0xD0B6 +#define PTP_DPC_NIKON_MultiBatteryInfo 0xD0B9 +#define PTP_DPC_NIKON_FlickerReductionSetting 0xD0B7 +#define PTP_DPC_NIKON_DiffractionCompensatipn 0xD0BA +#define PTP_DPC_NIKON_MovieLogOutput 0xD0BB +#define PTP_DPC_NIKON_MovieAutoDistortion 0xD0BC +#define PTP_DPC_NIKON_RemainingExposureTime 0xD0BE +#define PTP_DPC_NIKON_MovieLogSetting 0xD0BF #define PTP_DPC_NIKON_Bracketing 0xD0C0 #define PTP_DPC_NIKON_AutoExposureBracketStep 0xD0C1 #define PTP_DPC_NIKON_AutoExposureBracketProgram 0xD0C2 #define PTP_DPC_NIKON_AutoExposureBracketCount 0xD0C3 #define PTP_DPC_NIKON_WhiteBalanceBracketStep 0xD0C4 #define PTP_DPC_NIKON_WhiteBalanceBracketProgram 0xD0C5 +#define PTP_DPC_NIKON_ADLBracketingPattern 0xD0C6 +#define PTP_DPC_NIKON_ADLBracketingStep 0xD0C7 +#define PTP_DPC_NIKON_HDMIOutputDataDepth 0xD0CC #define PTP_DPC_NIKON_LensID 0xD0E0 #define PTP_DPC_NIKON_LensSort 0xD0E1 #define PTP_DPC_NIKON_LensType 0xD0E2 @@ -2057,6 +2358,7 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_NIKON_FocalLengthMax 0xD0E4 #define PTP_DPC_NIKON_MaxApAtMinFocalLength 0xD0E5 #define PTP_DPC_NIKON_MaxApAtMaxFocalLength 0xD0E6 +#define PTP_DPC_NIKON_LensTypeML 0xD0E7 #define PTP_DPC_NIKON_FinderISODisp 0xD0F0 #define PTP_DPC_NIKON_AutoOffPhoto 0xD0F2 #define PTP_DPC_NIKON_AutoOffMenu 0xD0F3 @@ -2065,6 +2367,7 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_NIKON_VignetteCtrl 0xD0F7 #define PTP_DPC_NIKON_AutoDistortionControl 0xD0F8 #define PTP_DPC_NIKON_SceneMode 0xD0F9 +#define PTP_DPC_NIKON_UserMode 0xD0FC #define PTP_DPC_NIKON_SceneMode2 0xD0FD #define PTP_DPC_NIKON_SelfTimerInterval 0xD0FE #define PTP_DPC_NIKON_ExposureTime 0xD100 /* Shutter Speed */ @@ -2089,6 +2392,7 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_NIKON_AVLockSetting 0xD113 #define PTP_DPC_NIKON_IllumSetting 0xD114 #define PTP_DPC_NIKON_FocusPointBright 0xD115 +#define PTP_DPC_NIKON_ExposureCompFlashUsed 0xD118 #define PTP_DPC_NIKON_ExternalFlashAttached 0xD120 #define PTP_DPC_NIKON_ExternalFlashStatus 0xD121 #define PTP_DPC_NIKON_ExternalFlashSort 0xD122 @@ -2096,10 +2400,15 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_NIKON_ExternalFlashCompensation 0xD124 #define PTP_DPC_NIKON_NewExternalFlashMode 0xD125 #define PTP_DPC_NIKON_FlashExposureCompensation 0xD126 +#define PTP_DPC_NIKON_ExternalFlashMultiFlashMode 0xD12D +#define PTP_DPC_NIKON_ConnectionPath 0xD12E #define PTP_DPC_NIKON_HDRMode 0xD130 #define PTP_DPC_NIKON_HDRHighDynamic 0xD131 #define PTP_DPC_NIKON_HDRSmoothing 0xD132 +#define PTP_DPC_NIKON_HDRSaveIndividualImages 0xD133 +#define PTP_DPC_NIKON_VibrationReduction 0xD138 #define PTP_DPC_NIKON_OptimizeImage 0xD140 +#define PTP_DPC_NIKON_WBAutoType 0xD141 #define PTP_DPC_NIKON_Saturation 0xD142 #define PTP_DPC_NIKON_BW_FillerEffect 0xD143 #define PTP_DPC_NIKON_BW_Sharpness 0xD144 @@ -2115,11 +2424,19 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_NIKON_TunePreset2 0xD153 #define PTP_DPC_NIKON_TunePreset3 0xD154 #define PTP_DPC_NIKON_TunePreset4 0xD155 -#define PTP_DPC_NIKON_WhiteBalanceNaturalLightAutoBias 0xD15E /* Only encountered in D850? */ +#define PTP_DPC_NIKON_PrimarySlot 0xD156 +#define PTP_DPC_NIKON_WBPresetProtect1 0xD158 +#define PTP_DPC_NIKON_WBPresetProtect2 0xD159 +#define PTP_DPC_NIKON_WBPresetProtect3 0xD15A +#define PTP_DPC_NIKON_ActiveFolder 0xD15B +#define PTP_DPC_NIKON_WBPresetProtect4 0xD15C +#define PTP_DPC_NIKON_WhiteBalanceReset 0xD15D +#define PTP_DPC_NIKON_WhiteBalanceNaturalLightAutoBias 0xD15E /* Only encountered in D850, z6? */ #define PTP_DPC_NIKON_BeepOff 0xD160 #define PTP_DPC_NIKON_AutofocusMode 0xD161 #define PTP_DPC_NIKON_AFAssist 0xD163 #define PTP_DPC_NIKON_PADVPMode 0xD164 /* iso auto time */ +#define PTP_DPC_NIKON_ISOAutoShutterTime 0xD164 /* z6 */ #define PTP_DPC_NIKON_ImageReview 0xD165 #define PTP_DPC_NIKON_AFAreaIllumination 0xD166 #define PTP_DPC_NIKON_FlashMode 0xD167 @@ -2136,6 +2453,13 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_NIKON_DateCountData 0xD172 #define PTP_DPC_NIKON_DateCountDisplaySetting 0xD173 #define PTP_DPC_NIKON_RangeFinderSetting 0xD174 +#define PTP_DPC_NIKON_LimitedAFAreaMode 0xD176 +#define PTP_DPC_NIKON_AFModeRestrictions 0xD177 +#define PTP_DPC_NIKON_LowLightAF 0xD17A +#define PTP_DPC_NIKON_ApplyLiveViewSetting 0xD17B +#define PTP_DPC_NIKON_MovieAfSpeed 0xD17C +#define PTP_DPC_NIKON_MovieAfSpeedWhenToApply 0xD17D +#define PTP_DPC_NIKON_MovieAfTrackingSensitivity 0xD17E #define PTP_DPC_NIKON_CSMMenu 0xD180 #define PTP_DPC_NIKON_WarningDisplay 0xD181 #define PTP_DPC_NIKON_BatteryCellKind 0xD182 @@ -2149,19 +2473,36 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_NIKON_IndicatorDisp 0xD18D #define PTP_DPC_NIKON_CellKindPriority 0xD18E #define PTP_DPC_NIKON_BracketingFramesAndSteps 0xD190 +#define PTP_DPC_NIKON_MovieReleaseButton 0xD197 +#define PTP_DPC_NIKON_FlashISOAutoHighLimit 0xD199 #define PTP_DPC_NIKON_LiveViewMode 0xD1A0 #define PTP_DPC_NIKON_LiveViewDriveMode 0xD1A1 #define PTP_DPC_NIKON_LiveViewStatus 0xD1A2 #define PTP_DPC_NIKON_LiveViewImageZoomRatio 0xD1A3 #define PTP_DPC_NIKON_LiveViewProhibitCondition 0xD1A4 +#define PTP_DPC_NIKON_LiveViewExposurePreview 0xD1A5 +#define PTP_DPC_NIKON_LiveViewSelector 0xD1A6 +#define PTP_DPC_NIKON_LiveViewWhiteBalance 0xD1A7 #define PTP_DPC_NIKON_MovieShutterSpeed 0xD1A8 #define PTP_DPC_NIKON_MovieFNumber 0xD1A9 #define PTP_DPC_NIKON_MovieISO 0xD1AA +#define PTP_DPC_NIKON_MovieExposureBiasCompensation 0xD1AB #define PTP_DPC_NIKON_LiveViewMovieMode 0xD1AC /* ? */ +#define PTP_DPC_NIKON_LiveViewImageSize 0xD1AC /* d850 */ +#define PTP_DPC_NIKON_LiveViewPhotography 0xD1AD +#define PTP_DPC_NIKON_MovieExposureMeteringMode 0xD1AF #define PTP_DPC_NIKON_ExposureDisplayStatus 0xD1B0 #define PTP_DPC_NIKON_ExposureIndicateStatus 0xD1B1 #define PTP_DPC_NIKON_InfoDispErrStatus 0xD1B2 #define PTP_DPC_NIKON_ExposureIndicateLightup 0xD1B3 +#define PTP_DPC_NIKON_ContinousShootingCount 0xD1B4 +#define PTP_DPC_NIKON_MovieRecFrameCount 0xD1B7 +#define PTP_DPC_NIKON_CameraLiveViewStatus 0xD1B8 +#define PTP_DPC_NIKON_DetectionPeaking 0xD1B9 +#define PTP_DPC_NIKON_LiveViewTFTStatus 0xD1BA +#define PTP_DPC_NIKON_LiveViewImageStatus 0xD1BB +#define PTP_DPC_NIKON_LiveViewImageCompression 0xD1BC +#define PTP_DPC_NIKON_LiveViewZoomArea 0xD1BD #define PTP_DPC_NIKON_FlashOpen 0xD1C0 #define PTP_DPC_NIKON_FlashCharged 0xD1C1 #define PTP_DPC_NIKON_FlashMRepeatValue 0xD1D0 @@ -2177,11 +2518,101 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_NIKON_FlashCommandBMode 0xD1DA #define PTP_DPC_NIKON_FlashCommandBCompensation 0xD1DB #define PTP_DPC_NIKON_FlashCommandBValue 0xD1DC +#define PTP_DPC_NIKON_ExternalRecordingControl 0xD1DE +#define PTP_DPC_NIKON_HighlightBrightness 0xD1DF +#define PTP_DPC_NIKON_SBWirelessMode 0xD1E2 +#define PTP_DPC_NIKON_SBWirelessMultipleFlashMode 0xD1E3 +#define PTP_DPC_NIKON_SBUsableGroup 0xD1E4 +#define PTP_DPC_NIKON_WirelessCLSEntryMode 0xD1E5 +#define PTP_DPC_NIKON_SBPINCode 0xD1E6 +#define PTP_DPC_NIKON_RadioMultipleFlashChannel 0xD1E7 +#define PTP_DPC_NIKON_OpticalMultipleFlashChannel 0xD1E8 +#define PTP_DPC_NIKON_FlashRangeDisplay 0xD1E9 +#define PTP_DPC_NIKON_AllTestFiringDisable 0xD1EA +#define PTP_DPC_NIKON_SBSettingMemberLock 0xD1EC +#define PTP_DPC_NIKON_SBIntegrationFlashReady 0xD1ED #define PTP_DPC_NIKON_ApplicationMode 0xD1F0 +#define PTP_DPC_NIKON_ExposureRemaining 0xD1F1 #define PTP_DPC_NIKON_ActiveSlot 0xD1F2 +#define PTP_DPC_NIKON_ISOAutoShutterCorrectionTime 0xD1F4 +#define PTP_DPC_NIKON_MirrorUpStatus 0xD1F6 +#define PTP_DPC_NIKON_MirrorUpReleaseShootingCount 0xD1F7 +#define PTP_DPC_NIKON_MovieAfAreaMode 0xD1F8 +#define PTP_DPC_NIKON_MovieVibrationReduction 0xD1F9 +#define PTP_DPC_NIKON_MovieFocusMode 0xD1FA +#define PTP_DPC_NIKON_RecordTimeCodes 0xD1FB +#define PTP_DPC_NIKON_CountUpMethod 0xD1FC +#define PTP_DPC_NIKON_TimeCodeOrigin 0xD1FD +#define PTP_DPC_NIKON_DropFrame 0xD1FE #define PTP_DPC_NIKON_ActivePicCtrlItem 0xD200 #define PTP_DPC_NIKON_ChangePicCtrlItem 0xD201 +#define PTP_DPC_NIKON_ElectronicFrontCurtainShutter 0xD20D +#define PTP_DPC_NIKON_MovieResetShootingMenu 0xD20E +#define PTP_DPC_NIKON_MovieCaptureAreaCrop 0xD20F +#define PTP_DPC_NIKON_MovieAutoDxCrop 0xD210 +#define PTP_DPC_NIKON_MovieWbAutoType 0xD211 +#define PTP_DPC_NIKON_MovieWbTuneAuto 0xD212 +#define PTP_DPC_NIKON_MovieWbTuneIncandescent 0xD213 +#define PTP_DPC_NIKON_MovieWbFlourescentType 0xD214 +#define PTP_DPC_NIKON_MovieWbTuneFlourescent 0xD215 +#define PTP_DPC_NIKON_MovieWbTuneSunny 0xD216 +#define PTP_DPC_NIKON_MovieWbTuneCloudy 0xD218 +#define PTP_DPC_NIKON_MovieWbTuneShade 0xD219 +#define PTP_DPC_NIKON_MovieWbColorTemp 0xD21A +#define PTP_DPC_NIKON_MovieWbTuneColorTemp 0xD21B +#define PTP_DPC_NIKON_MovieWbPresetData0 0xD21C +#define PTP_DPC_NIKON_MovieWbPresetDataComment1 0xD21D +#define PTP_DPC_NIKON_MovieWbPresetDataComment2 0xD21E +#define PTP_DPC_NIKON_MovieWbPresetDataComment3 0xD21F +#define PTP_DPC_NIKON_MovieWbPresetDataComment4 0xD220 +#define PTP_DPC_NIKON_MovieWbPresetDataComment5 0xD221 +#define PTP_DPC_NIKON_MovieWbPresetDataComment6 0xD222 +#define PTP_DPC_NIKON_MovieWbPresetDataValue1 0xD223 +#define PTP_DPC_NIKON_MovieWbPresetDataValue2 0xD224 +#define PTP_DPC_NIKON_MovieWbPresetDataValue3 0xD225 +#define PTP_DPC_NIKON_MovieWbPresetDataValue4 0xD226 +#define PTP_DPC_NIKON_MovieWbPresetDataValue5 0xD227 +#define PTP_DPC_NIKON_MovieWbPresetDataValue6 0xD228 +#define PTP_DPC_NIKON_MovieWbTunePreset1 0xD229 +#define PTP_DPC_NIKON_MovieWbTunePreset2 0xD22A +#define PTP_DPC_NIKON_MovieWbTunePreset3 0xD22B +#define PTP_DPC_NIKON_MovieWbTunePreset4 0xD22C +#define PTP_DPC_NIKON_MovieWbTunePreset5 0xD22D +#define PTP_DPC_NIKON_MovieWbTunePreset6 0xD22E +#define PTP_DPC_NIKON_MovieWbPresetProtect1 0xD22F +#define PTP_DPC_NIKON_MovieWbPresetProtect2 0xD230 +#define PTP_DPC_NIKON_MovieWbPresetProtect3 0xD231 +#define PTP_DPC_NIKON_MovieWbPresetProtect4 0xD232 +#define PTP_DPC_NIKON_MovieWbPresetProtect5 0xD233 +#define PTP_DPC_NIKON_MovieWbPresetProtect6 0xD234 +#define PTP_DPC_NIKON_MovieWhiteBalanceReset 0xD235 #define PTP_DPC_NIKON_MovieNrHighISO 0xD236 +#define PTP_DPC_NIKON_MovieActivePicCtrlItem 0xD237 +#define PTP_DPC_NIKON_MovieChangePicCtrlItem 0xD238 +#define PTP_DPC_NIKON_ExposureBaseCompHighlight 0xD239 +#define PTP_DPC_NIKON_MovieWhiteBalance 0xD23A +#define PTP_DPC_NIKON_MovieActiveDLighting 0xD23B +#define PTP_DPC_NIKON_MovieWbTuneNatural 0xD23C +#define PTP_DPC_NIKON_MovieAttenuator 0xD23D +#define PTP_DPC_NIKON_MovieVignetteControl 0xD23E +#define PTP_DPC_NIKON_MovieDiffractionCompensation 0xD23F +#define PTP_DPC_NIKON_UseDeviceStageFlag 0xD303 +#define PTP_DPC_NIKON_MovieCaptureMode 0xD304 +#define PTP_DPC_NIKON_SlowMotionMovieRecordScreenSize 0xD305 +#define PTP_DPC_NIKON_HighSpeedStillCaptureRate 0xD306 +#define PTP_DPC_NIKON_BestMomentCaptureMode 0xD307 +#define PTP_DPC_NIKON_ActiveSelectionFrameSavedDefault 0xD308 +#define PTP_DPC_NIKON_ActiveSelectionCapture40frameOver 0xD309 +#define PTP_DPC_NIKON_ActiveSelectionOnReleaseRecord 0xD310 +#define PTP_DPC_NIKON_ActiveSelectionSelectedPictures 0xD311 +#define PTP_DPC_NIKON_ExposureRemainingInMovie 0xD312 +#define PTP_DPC_NIKON_OpticalVR 0xD313 +#define PTP_DPC_NIKON_ElectronicVR 0xD314 +#define PTP_DPC_NIKON_SilentPhotography 0xD315 +#define PTP_DPC_NIKON_FacePriority 0xD316 +#define PTP_DPC_NIKON_LensTypeNikon1 0xD317 +#define PTP_DPC_NIKON_ISONoiseReduction 0xD318 +#define PTP_DPC_NIKON_MovieLoopLength 0xD323 /* Nikon V1 (or WU adapter?) Trace */ @@ -2200,23 +2631,254 @@ typedef struct _PTPCanonEOSDeviceInfo { /* this is irregular, as it should be -0x5000 or 0xD000 based */ #define PTP_DPC_NIKON_1_ISO 0xF002 +#define PTP_DPC_NIKON_1_FNumber 0xF003 +#define PTP_DPC_NIKON_1_ShutterSpeed 0xF004 +#define PTP_DPC_NIKON_1_FNumber2 0xF006 +#define PTP_DPC_NIKON_1_ShutterSpeed2 0xF007 #define PTP_DPC_NIKON_1_ImageCompression 0xF009 #define PTP_DPC_NIKON_1_ImageSize 0xF00A #define PTP_DPC_NIKON_1_WhiteBalance 0xF00C #define PTP_DPC_NIKON_1_LongExposureNoiseReduction 0xF00D #define PTP_DPC_NIKON_1_HiISONoiseReduction 0xF00E #define PTP_DPC_NIKON_1_ActiveDLighting 0xF00F +#define PTP_DPC_NIKON_1_Language 0xF018 +#define PTP_DPC_NIKON_1_ReleaseWithoutCard 0xF019 /* no sd card */ #define PTP_DPC_NIKON_1_MovQuality 0xF01C /* Fuji specific */ + +#define PTP_DPC_FUJI_FilmSimulation 0xD001 +#define PTP_DPC_FUJI_FilmSimulationTune 0xD002 +#define PTP_DPC_FUJI_DRangeMode 0xD007 +#define PTP_DPC_FUJI_ColorMode 0xD008 +#define PTP_DPC_FUJI_ColorSpace 0xD00A +#define PTP_DPC_FUJI_WhitebalanceTune1 0xD00B +#define PTP_DPC_FUJI_WhitebalanceTune2 0xD00C #define PTP_DPC_FUJI_ColorTemperature 0xD017 #define PTP_DPC_FUJI_Quality 0xD018 +#define PTP_DPC_FUJI_RecMode 0xD019 /* LiveViewColorMode? */ +#define PTP_DPC_FUJI_LiveViewBrightness 0xD01A +#define PTP_DPC_FUJI_ThroughImageZoom 0xD01B +#define PTP_DPC_FUJI_NoiseReduction 0xD01C +#define PTP_DPC_FUJI_MacroMode 0xD01D +#define PTP_DPC_FUJI_LiveViewStyle 0xD01E +#define PTP_DPC_FUJI_FaceDetectionMode 0xD020 +#define PTP_DPC_FUJI_RedEyeCorrectionMode 0xD021 +#define PTP_DPC_FUJI_RawCompression 0xD022 +#define PTP_DPC_FUJI_GrainEffect 0xD023 +#define PTP_DPC_FUJI_SetEyeAFMode 0xD024 +#define PTP_DPC_FUJI_FocusPoints 0xD025 +#define PTP_DPC_FUJI_MFAssistMode 0xD026 +#define PTP_DPC_FUJI_InterlockAEAFArea 0xD027 +#define PTP_DPC_FUJI_CommandDialMode 0xD028 +#define PTP_DPC_FUJI_Shadowing 0xD029 +/* d02a - d02c also appear in setafmode */ +#define PTP_DPC_FUJI_ExposureIndex 0xD02A +#define PTP_DPC_FUJI_MovieISO 0xD02B +#define PTP_DPC_FUJI_WideDynamicRange 0xD02E +#define PTP_DPC_FUJI_TNumber 0xD02F +#define PTP_DPC_FUJI_Comment 0xD100 +#define PTP_DPC_FUJI_SerialMode 0xD101 +#define PTP_DPC_FUJI_ExposureDelay 0xD102 +#define PTP_DPC_FUJI_PreviewTime 0xD103 +#define PTP_DPC_FUJI_BlackImageTone 0xD104 +#define PTP_DPC_FUJI_Illumination 0xD105 +#define PTP_DPC_FUJI_FrameGuideMode 0xD106 +#define PTP_DPC_FUJI_ViewfinderWarning 0xD107 +#define PTP_DPC_FUJI_AutoImageRotation 0xD108 +#define PTP_DPC_FUJI_DetectImageRotation 0xD109 +#define PTP_DPC_FUJI_ShutterPriorityMode1 0xD10A +#define PTP_DPC_FUJI_ShutterPriorityMode2 0xD10B +#define PTP_DPC_FUJI_AFIlluminator 0xD112 +#define PTP_DPC_FUJI_Beep 0xD113 +#define PTP_DPC_FUJI_AELock 0xD114 +#define PTP_DPC_FUJI_ISOAutoSetting1 0xD115 +#define PTP_DPC_FUJI_ISOAutoSetting2 0xD116 +#define PTP_DPC_FUJI_ISOAutoSetting3 0xD117 +#define PTP_DPC_FUJI_ExposureStep 0xD118 +#define PTP_DPC_FUJI_CompensationStep 0xD119 +#define PTP_DPC_FUJI_ExposureSimpleSet 0xD11A +#define PTP_DPC_FUJI_CenterPhotometryRange 0xD11B +#define PTP_DPC_FUJI_PhotometryLevel1 0xD11C +#define PTP_DPC_FUJI_PhotometryLevel2 0xD11D +#define PTP_DPC_FUJI_PhotometryLevel3 0xD11E +#define PTP_DPC_FUJI_FlashTuneSpeed 0xD11F +#define PTP_DPC_FUJI_FlashShutterLimit 0xD120 +#define PTP_DPC_FUJI_BuiltinFlashMode 0xD121 +#define PTP_DPC_FUJI_FlashManualMode 0xD122 +#define PTP_DPC_FUJI_FlashRepeatingMode1 0xD123 +#define PTP_DPC_FUJI_FlashRepeatingMode2 0xD124 +#define PTP_DPC_FUJI_FlashRepeatingMode3 0xD125 +#define PTP_DPC_FUJI_FlashCommanderMode1 0xD126 +#define PTP_DPC_FUJI_FlashCommanderMode2 0xD127 +#define PTP_DPC_FUJI_FlashCommanderMode3 0xD128 +#define PTP_DPC_FUJI_FlashCommanderMode4 0xD129 +#define PTP_DPC_FUJI_FlashCommanderMode5 0xD12A +#define PTP_DPC_FUJI_FlashCommanderMode6 0xD12B +#define PTP_DPC_FUJI_FlashCommanderMode7 0xD12C +#define PTP_DPC_FUJI_ModelingFlash 0xD12D +#define PTP_DPC_FUJI_BKT 0xD12E +#define PTP_DPC_FUJI_BKTChange 0xD12F +#define PTP_DPC_FUJI_BKTOrder 0xD130 +#define PTP_DPC_FUJI_BKTSelection 0xD131 +#define PTP_DPC_FUJI_AEAFLockButton 0xD132 +#define PTP_DPC_FUJI_CenterButton 0xD133 +#define PTP_DPC_FUJI_MultiSelectorButton 0xD134 +#define PTP_DPC_FUJI_FunctionLock 0xD136 +#define PTP_DPC_FUJI_Password 0xD145 +#define PTP_DPC_FUJI_ChangePassword 0xD146 /* ? */ +#define PTP_DPC_FUJI_CommandDialSetting1 0xD147 +#define PTP_DPC_FUJI_CommandDialSetting2 0xD148 +#define PTP_DPC_FUJI_CommandDialSetting3 0xD149 +#define PTP_DPC_FUJI_CommandDialSetting4 0xD14A +#define PTP_DPC_FUJI_ButtonsAndDials 0xD14B +#define PTP_DPC_FUJI_NonCPULensData 0xD14C +#define PTP_DPC_FUJI_MBD200Batteries 0xD14E +#define PTP_DPC_FUJI_AFOnForMBD200Batteries 0xD14F +#define PTP_DPC_FUJI_FirmwareVersion 0xD153 +#define PTP_DPC_FUJI_ShotCount 0xD154 +#define PTP_DPC_FUJI_ShutterExchangeCount 0xD155 +#define PTP_DPC_FUJI_WorldClock 0xD157 +#define PTP_DPC_FUJI_TimeDifference1 0xD158 +#define PTP_DPC_FUJI_TimeDifference2 0xD159 +#define PTP_DPC_FUJI_Language 0xD15A +#define PTP_DPC_FUJI_FrameNumberSequence 0xD15B +#define PTP_DPC_FUJI_VideoMode 0xD15C +#define PTP_DPC_FUJI_SetUSBMode 0xD15D +#define PTP_DPC_FUJI_CommentWriteSetting 0xD161 +#define PTP_DPC_FUJI_BCRAppendDelimiter 0xD162 +#define PTP_DPC_FUJI_CommentEx 0xD167 +#define PTP_DPC_FUJI_VideoOutOnOff 0xD168 +#define PTP_DPC_FUJI_CropMode 0xD16F +#define PTP_DPC_FUJI_LensZoomPos 0xD170 +#define PTP_DPC_FUJI_FocusPosition 0xD171 +#define PTP_DPC_FUJI_LiveViewImageQuality 0xD173 +#define PTP_DPC_FUJI_LiveViewImageSize 0xD174 +#define PTP_DPC_FUJI_LiveViewCondition 0xD175 +#define PTP_DPC_FUJI_StandbyMode 0xD176 +#define PTP_DPC_FUJI_LiveViewExposure 0xD177 +#define PTP_DPC_FUJI_LiveViewWhiteBalance 0xD178 /* same values as 0x5005 */ +#define PTP_DPC_FUJI_LiveViewWhiteBalanceGain 0xD179 +#define PTP_DPC_FUJI_LiveViewTuning 0xD17A +#define PTP_DPC_FUJI_FocusMeteringMode 0xD17C +#define PTP_DPC_FUJI_FocusLength 0xD17D +#define PTP_DPC_FUJI_CropAreaFrameInfo 0xD17E +#define PTP_DPC_FUJI_ResetSetting 0xD17F /* also clean sensor? */ +#define PTP_DPC_FUJI_IOPCode 0xD184 +#define PTP_DPC_FUJI_TetherRawConditionCode 0xD186 +#define PTP_DPC_FUJI_TetherRawCompatibilityCode 0xD187 +#define PTP_DPC_FUJI_LightTune 0xD200 #define PTP_DPC_FUJI_ReleaseMode 0xD201 +#define PTP_DPC_FUJI_BKTFrame1 0xD202 +#define PTP_DPC_FUJI_BKTFrame2 0xD203 +#define PTP_DPC_FUJI_BKTStep 0xD204 +#define PTP_DPC_FUJI_ProgramShift 0xD205 #define PTP_DPC_FUJI_FocusAreas 0xD206 -#define PTP_DPC_FUJI_AELock 0xD213 +#define PTP_DPC_FUJI_PriorityMode 0xD207 /* from setprioritymode */ +/* D208 is some kind of control, likely bitmasked. reported like an enum. + * 0x200 seems to mean focusing? + * 0x208 capture? + * camera starts with 0x304 + * xt2: 0x104,0x200,0x4,0x304,0x500,0xc,0xa000,6,0x9000,2,0x9100,1,0x9300,5 + * xt3: 0x104,0x200,0x4,0x304,0x500,0xc,0xa000,6,0x9000,2,0x9100,1,0x9200,0x40,0x9300,5,0x804,0x80 + * xt30: 0x104,0x200,0x4,0x304,0x500,0xc,0xa000,6,0x9000,2,0x9100,1,0x9200,0x40,0x9300,5 + * xt4: 0x104,0x200,0x4,0x304,0x500,0xc,0x8000,0xa000,6,0x9000,2,0x9100,1,0x9300,5,0xe,0x9200,0x40,0x804,0x80 + * xh1: 0x104,0x200,0x4,0x304,0x500,0xc,0xa000,6,0x9000,2,0x9100,1,0x9300,5 + * gfx100: 0x104,0x200,0x4,0x304,0x500,0xc,0x8000,0xa000,6,0x9000,2,0x9100,1,0x9300,5,0xe,0x9200 + * gfx50r: 0x104,0x200,0x4,0x304,0x500,0xc,0xa000,6,0x9000,2,0x9100,1,0x9300,5,0xe + * xpro2: 0x104,0x200,0x4,0x304,0x500,0xc,0xa000,6,0x9000,2,0x9100,1 + * + * 0x304 is for regular capture SDK_ShootS2toS0 (default) (SDK_Shoot) + * 0x200 seems for autofocus (s1?) SDK_ShootS1 + * 0x500 start bulb? 0xc end bulb? SDK_StartBulb + * 0x400 might also be start bulb? SDK_StartBulb + * 0xc SDK_EndBulb + * 0x600 SDK_1PushAF + * 0x4 SDK_CancelS1 + * 0x300 SDK_ShootS2 + * 0x8000 migh be autowhitebalance + */ +#define PTP_DPC_FUJI_AFStatus 0xD209 +#define PTP_DPC_FUJI_DeviceName 0xD20B +#define PTP_DPC_FUJI_MediaRecord 0xD20C /* from capmediarecord */ +#define PTP_DPC_FUJI_MediaCapacity 0xD20D +#define PTP_DPC_FUJI_FreeSDRAMImages 0xD20E /* free images in SDRAM */ +#define PTP_DPC_FUJI_MediaStatus 0xD211 +#define PTP_DPC_FUJI_CurrentState 0xD212 +#define PTP_DPC_FUJI_AELock2 0xD213 #define PTP_DPC_FUJI_Copyright 0xD215 +#define PTP_DPC_FUJI_Copyright2 0xD216 #define PTP_DPC_FUJI_Aperture 0xD218 #define PTP_DPC_FUJI_ShutterSpeed 0xD219 +#define PTP_DPC_FUJI_DeviceError 0xD21B +#define PTP_DPC_FUJI_SensitivityFineTune1 0xD222 +#define PTP_DPC_FUJI_SensitivityFineTune2 0xD223 +#define PTP_DPC_FUJI_CaptureRemaining 0xD229 /* Movie AF Mode? */ +#define PTP_DPC_FUJI_MovieRemainingTime 0xD22A /* Movie Focus Area? */ +#define PTP_DPC_FUJI_ForceMode 0xD230 +#define PTP_DPC_FUJI_ShutterSpeed2 0xD240 /* Movie Aperture */ +#define PTP_DPC_FUJI_ImageAspectRatio 0xD241 +#define PTP_DPC_FUJI_BatteryLevel 0xD242 /* Movie Sensitivity???? */ +#define PTP_DPC_FUJI_TotalShotCount 0xD310 +#define PTP_DPC_FUJI_HighLightTone 0xD320 +#define PTP_DPC_FUJI_ShadowTone 0xD321 +#define PTP_DPC_FUJI_LongExposureNR 0xD322 +#define PTP_DPC_FUJI_FullTimeManualFocus 0xD323 +#define PTP_DPC_FUJI_ISODialHn1 0xD332 +#define PTP_DPC_FUJI_ISODialHn2 0xD333 +#define PTP_DPC_FUJI_ViewMode1 0xD33F +#define PTP_DPC_FUJI_ViewMode2 0xD340 +#define PTP_DPC_FUJI_DispInfoMode 0xD343 +#define PTP_DPC_FUJI_LensISSwitch 0xD346 +#define PTP_DPC_FUJI_FocusPoint 0xD347 +#define PTP_DPC_FUJI_InstantAFMode 0xD34A +#define PTP_DPC_FUJI_PreAFMode 0xD34B +#define PTP_DPC_FUJI_CustomSetting 0xD34C +#define PTP_DPC_FUJI_LMOMode 0xD34D +#define PTP_DPC_FUJI_LockButtonMode 0xD34E +#define PTP_DPC_FUJI_AFLockMode 0xD34F +#define PTP_DPC_FUJI_MicJackMode 0xD350 +#define PTP_DPC_FUJI_ISMode 0xD351 +#define PTP_DPC_FUJI_DateTimeDispFormat 0xD352 +#define PTP_DPC_FUJI_AeAfLockKeyAssign 0xD353 +#define PTP_DPC_FUJI_CrossKeyAssign 0xD354 +#define PTP_DPC_FUJI_SilentMode 0xD355 +#define PTP_DPC_FUJI_PBSound 0xD356 +#define PTP_DPC_FUJI_EVFDispAutoRotate 0xD358 +#define PTP_DPC_FUJI_ExposurePreview 0xD359 +#define PTP_DPC_FUJI_DispBrightness1 0xD35A +#define PTP_DPC_FUJI_DispBrightness2 0xD35B +#define PTP_DPC_FUJI_DispChroma1 0xD35C +#define PTP_DPC_FUJI_DispChroma2 0xD35D +#define PTP_DPC_FUJI_FocusCheckMode 0xD35E +#define PTP_DPC_FUJI_FocusScaleUnit 0xD35F +#define PTP_DPC_FUJI_SetFunctionButton 0xD361 +#define PTP_DPC_FUJI_SensorCleanTiming 0xD363 +#define PTP_DPC_FUJI_CustomAutoPowerOff 0xD364 +#define PTP_DPC_FUJI_FileNamePrefix1 0xD365 +#define PTP_DPC_FUJI_FileNamePrefix2 0xD366 +#define PTP_DPC_FUJI_BatteryInfo1 0xD36A +#define PTP_DPC_FUJI_BatteryInfo2 0xD36B +#define PTP_DPC_FUJI_LensNameAndSerial 0xD36D +#define PTP_DPC_FUJI_CustomDispInfo 0xD36E +#define PTP_DPC_FUJI_FunctionLockCategory1 0xD36F +#define PTP_DPC_FUJI_FunctionLockCategory2 0xD370 +#define PTP_DPC_FUJI_CustomPreviewTime 0xD371 +#define PTP_DPC_FUJI_FocusArea1 0xD372 +#define PTP_DPC_FUJI_FocusArea2 0xD373 +#define PTP_DPC_FUJI_FocusArea3 0xD374 +#define PTP_DPC_FUJI_FrameGuideGridInfo1 0xD375 +#define PTP_DPC_FUJI_FrameGuideGridInfo2 0xD376 +#define PTP_DPC_FUJI_FrameGuideGridInfo3 0xD377 +#define PTP_DPC_FUJI_FrameGuideGridInfo4 0xD378 +#define PTP_DPC_FUJI_LensUnknownData 0xD38A +#define PTP_DPC_FUJI_LensZoomPosCaps 0xD38C +#define PTP_DPC_FUJI_LensFNumberList 0xD38D +#define PTP_DPC_FUJI_LensFocalLengthList 0xD38E +#define PTP_DPC_FUJI_FocusLimiter 0xD390 +#define PTP_DPC_FUJI_FocusArea4 0xD395 +#define PTP_DPC_FUJI_InitSequence 0xDF01 +#define PTP_DPC_FUJI_AppVersion 0xDF24 /* Microsoft/MTP specific */ #define PTP_DPC_MTP_SecureTime 0xD101 @@ -2337,6 +2999,7 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_OLYMPUS_FlashBracket 0xD15C #define PTP_DPC_OLYMPUS_ISOBracket 0xD15D #define PTP_DPC_OLYMPUS_MyModeStatus 0xD15E +#define PTP_DPC_OLYMPUS_DateTimeUTC 0xD176 /* check */ /* Sony A900 */ #define PTP_DPC_SONY_DPCCompensation 0xD200 @@ -2347,23 +3010,149 @@ typedef struct _PTPCanonEOSDeviceInfo { #define PTP_DPC_SONY_CCFilter 0xD210 #define PTP_DPC_SONY_AspectRatio 0xD211 #define PTP_DPC_SONY_FocusFound 0xD213 /* seems to be signaled (1->2) when focus is achieved */ +#define PTP_DPC_SONY_Zoom 0xD214 /* might be focal length * 1.000.000 */ #define PTP_DPC_SONY_ObjectInMemory 0xD215 /* used to signal when to retrieve new object */ #define PTP_DPC_SONY_ExposeIndex 0xD216 #define PTP_DPC_SONY_BatteryLevel 0xD218 +#define PTP_DPC_SONY_SensorCrop 0xD219 #define PTP_DPC_SONY_PictureEffect 0xD21B #define PTP_DPC_SONY_ABFilter 0xD21C -#define PTP_DPC_SONY_ISO 0xD21E /* ? */ +#define PTP_DPC_SONY_ISO 0xD21E /* ? */ +#define PTP_DPC_SONY_StillImageStoreDestination 0xD222 /* (type=0x4) Enumeration [1,17,16] value: 17 */ +/* guessed DPC_SONY_DateTimeSettings 0xD223 error on query */ +/* guessed DPC_SONY_FocusArea 0xD22C (type=0x4) Enumeration [1,2,3,257,258,259,260,513,514,515,516,517,518,519,261,520] value: 1 */ +/* guessed DPC_SONY_LiveDisplayEffect 0xD231 (type=0x2) Enumeration [1,2] value: 1 */ +/* guessed DPC_SONY_FileType 0xD235 (enum: 0,1) */ +/* guessed DPC_SONY_JpegQuality 0xD252 */ +/* guessed DPC_SONY_PriorityKeySettings 0xD25A */ +/* d255 reserved 5 */ +/* d254 reserved 4 */ +#define PTP_DPC_SONY_ExposureCompensation 0xD224 +#define PTP_DPC_SONY_ISO2 0xD226 +#define PTP_DPC_SONY_ShutterSpeed2 0xD229 #define PTP_DPC_SONY_AutoFocus 0xD2C1 /* ? half-press */ #define PTP_DPC_SONY_Capture 0xD2C2 /* ? full-press */ -/* also seen: D2C3 D2C4 */ +/* D2DB (2) , D2D3 (2) , D2C8 (2) also seen in Camera Remote related to D2C2 */ +/* S1 ? + * AEL - d2c3 + * FEL - d2c9 + * AFL - d2c4 + * AWBL - d2d9 + */ /* semi control opcodes */ #define PTP_DPC_SONY_Movie 0xD2C8 /* ? */ #define PTP_DPC_SONY_StillImage 0xD2C7 /* ? */ +#define PTP_DPC_SONY_NearFar 0xD2D1 +/*#define PTP_DPC_SONY_AutoFocus 0xD2D2 something related */ + +#define PTP_DPC_SONY_AF_Area_Position 0xD2DC + +/* Sony QX properties */ +/* all for 96f8 Control Device */ +#define PTP_DPC_SONY_QX_Zoom_Absolute 0xD60E +#define PTP_DPC_SONY_QX_Movie_Rec 0xD60F +#define PTP_DPC_SONY_QX_Request_For_Update 0xD612 +#define PTP_DPC_SONY_QX_Zoom_Wide_For_One_Shot 0xD613 +#define PTP_DPC_SONY_QX_Zoom_Tele_For_One_Shot 0xD614 +#define PTP_DPC_SONY_QX_S2_Button 0xD617 +#define PTP_DPC_SONY_QX_Media_Format 0xD61C +#define PTP_DPC_SONY_QX_S1_Button 0xD61D +#define PTP_DPC_SONY_QX_AE_Lock 0xD61E +#define PTP_DPC_SONY_QX_Request_For_Update_For_Lens 0xD625 +#define PTP_DPC_SONY_QX_Power_Off 0xD637 +#define PTP_DPC_SONY_QX_RequestOneShooting 0xD638 +#define PTP_DPC_SONY_QX_AF_Lock 0xD63B +#define PTP_DPC_SONY_QX_Zoom_Tele 0xD63C +#define PTP_DPC_SONY_QX_Zoom_Wide 0xD63E +#define PTP_DPC_SONY_QX_Focus_Magnification 0xD641 +#define PTP_DPC_SONY_QX_Focus_Near_For_One_Shot 0xD6A1 +#define PTP_DPC_SONY_QX_Focus_Far_For_One_Shot 0xD6A2 +#define PTP_DPC_SONY_QX_Focus_Near_For_Continuous 0xD6A3 +#define PTP_DPC_SONY_QX_Focus_Far_For_Continuous 0xD6A4 +#define PTP_DPC_SONY_QX_Camera_Setting_Reset 0xD6D9 +#define PTP_DPC_SONY_QX_Camera_Initialize 0xD6DA + +/* old */ +#define PTP_DPC_SONY_QX_Capture 0xD617 +#define PTP_DPC_SONY_QX_AutoFocus 0xD61D + +/* set via 96fa */ +#define PTP_DPC_SONY_QX_PictureProfileInitialize 0xD620 +#define PTP_DPC_SONY_QX_PictureProfile 0xD621 +#define PTP_DPC_SONY_QX_AFSPrioritySetting 0xD622 +#define PTP_DPC_SONY_QX_AFCPrioritySetting 0xD623 +#define PTP_DPC_SONY_QX_LensUpdateState 0xD624 +#define PTP_DPC_SONY_QX_SilentShooting 0xD626 +#define PTP_DPC_SONY_QX_HDMIInfoDisplay 0xD627 +#define PTP_DPC_SONY_QX_TCUBDisp 0xD628 +#define PTP_DPC_SONY_QX_TCPreset 0xD629 +#define PTP_DPC_SONY_QX_TCMake 0xD62A +#define PTP_DPC_SONY_QX_TCRun 0xD62B +#define PTP_DPC_SONY_QX_UBPreset 0xD62C +#define PTP_DPC_SONY_QX_TCFormat 0xD62D +#define PTP_DPC_SONY_QX_LongExposureNR 0xD62E +#define PTP_DPC_SONY_QX_UBTimeRec 0xD62F +#define PTP_DPC_SONY_QX_FocusMagnificationLevel 0xD6A7 +#define PTP_DPC_SONY_QX_FocusMagnificationPosition 0xD6A8 +#define PTP_DPC_SONY_QX_LensStatus 0xD6A9 +#define PTP_DPC_SONY_QX_LiveviewResolution 0xD6AA +#define PTP_DPC_SONY_QX_NotifyFocusPosition 0xD6AF +#define PTP_DPC_SONY_QX_DriveMode 0xD6B0 +#define PTP_DPC_SONY_QX_DateTime 0xD6B1 +#define PTP_DPC_SONY_QX_AspectRatio 0xD6B3 +#define PTP_DPC_SONY_QX_ImageSize 0xD6B7 +#define PTP_DPC_SONY_QX_WhiteBalance 0xD6B8 +#define PTP_DPC_SONY_QX_CompressionSetting 0xD6B9 +#define PTP_DPC_SONY_QX_CautionError 0xD6BA +#define PTP_DPC_SONY_QX_StorageInformation 0xD6BB +#define PTP_DPC_SONY_QX_MovieQualitySetting 0xD6BC +#define PTP_DPC_SONY_QX_MovieFormatSetting 0xD6BD +#define PTP_DPC_SONY_QX_ZoomSetAbsolute 0xD6BE +#define PTP_DPC_SONY_QX_ZoomInformation 0xD6BF +#define PTP_DPC_SONY_QX_FocusSpeedForOneShot 0xD6C1 +#define PTP_DPC_SONY_QX_FlashCompensation 0xD6C2 +#define PTP_DPC_SONY_QX_ExposureCompensation 0xD6C3 +#define PTP_DPC_SONY_QX_Aperture 0xD6C5 +#define PTP_DPC_SONY_QX_ShootingFileInformation 0xD6C6 +#define PTP_DPC_SONY_QX_MediaFormatState 0xD6C7 +#define PTP_DPC_SONY_QX_ZoomMode 0xD6C9 +#define PTP_DPC_SONY_QX_FlashMode 0xD6CA +#define PTP_DPC_SONY_QX_FocusMode 0xD6CB +#define PTP_DPC_SONY_QX_ExposureMode 0xD6CC +#define PTP_DPC_SONY_QX_MovieRecordingState 0xD6CD +#define PTP_DPC_SONY_QX_SelectSaveMedia 0xD6CF +#define PTP_DPC_SONY_QX_StillSteady 0xD6D0 +#define PTP_DPC_SONY_QX_MovieSteady 0xD6D1 +#define PTP_DPC_SONY_QX_Housing 0xD6D2 +#define PTP_DPC_SONY_QX_K4OutputSetting 0xD6D3 +#define PTP_DPC_SONY_QX_HDMIRECControl 0xD6D4 +#define PTP_DPC_SONY_QX_TimeCodeOutputToHDMI 0xD6D5 +#define PTP_DPC_SONY_QX_HDMIResolution 0xD6D6 +#define PTP_DPC_SONY_QX_NTSC_PAL_Selector 0xD6D7 +#define PTP_DPC_SONY_QX_HDMIOutput 0xD6D8 +#define PTP_DPC_SONY_QX_ISOAutoMinimum 0xD6DB +#define PTP_DPC_SONY_QX_ISOAutoMaximum 0xD6DC +#define PTP_DPC_SONY_QX_APSCSuper35mm 0xD6DD +#define PTP_DPC_SONY_QX_LiveviewStatus 0xD6DE +#define PTP_DPC_SONY_QX_WhiteBalanceInitialize 0xD6DF +#define PTP_DPC_SONY_QX_OperatingMode 0xD6E2 +#define PTP_DPC_SONY_QX_BiaxialFineTuningABDirection 0xD6E3 +#define PTP_DPC_SONY_QX_HighISONr 0xD6E5 +#define PTP_DPC_SONY_QX_AELockIndication 0xD6E8 +#define PTP_DPC_SONY_QX_ElectronicFrontCurtainShutter 0xD6E9 +#define PTP_DPC_SONY_QX_ShutterSpeed 0xD6EA +#define PTP_DPC_SONY_QX_FocusIndication 0xD6EC +#define PTP_DPC_SONY_QX_BiaxialFineTuningGMDirection 0xD6EF +#define PTP_DPC_SONY_QX_ColorTemperature 0xD6F0 +#define PTP_DPC_SONY_QX_BatteryLevelIndication 0xD6F1 +#define PTP_DPC_SONY_QX_ISO 0xD6F2 +#define PTP_DPC_SONY_QX_AutoSlowShutter 0xD6F3 +#define PTP_DPC_SONY_QX_DynamicRangeOptimizer 0xD6FE /* Casio EX-F1 */ -#define PTP_DPC_CASIO_MONITOR 0xD001 +#define PTP_DPC_CASIO_MONITOR 0xD001 #define PTP_DPC_CASIO_STORAGE 0xD002 //Not reported by DeviceInfo? #define PTP_DPC_CASIO_UNKNOWN_1 0xD004 #define PTP_DPC_CASIO_UNKNOWN_2 0xD005 @@ -2445,7 +3234,7 @@ typedef struct _PTPCanonEOSDeviceInfo { 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 - .... +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 ................ @@ -2464,17 +3253,17 @@ typedef struct _PTPCanonEOSDeviceInfo { #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 - ...... +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 - ,... +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 ................ @@ -2484,17 +3273,24 @@ typedef struct _PTPCanonEOSDeviceInfo { 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- ........ +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... +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 */ +/* Leica */ +#define PTP_DPC_LEICA_ExternalShooting 0xD018 +/* d040 */ +/* d60c */ +/* d60e */ +/* d610 */ + /* MTP specific Object Properties */ #define PTP_OPC_StorageID 0xDC01 @@ -2757,6 +3553,19 @@ struct _PTPDeviceProperty { }; typedef struct _PTPDeviceProperty PTPDeviceProperty; +struct _MTPPropertyDesc { + uint16_t opc; + PTPObjectPropDesc opd; +}; +typedef struct _MTPPropertyDesc MTPPropertyDesc; + +struct _MTPObjectFormat { + uint16_t ofc; + unsigned int nrofpds; + MTPPropertyDesc *pds; +}; +typedef struct _MTPObjectFormat MTPObjectFormat; + /* Transaction data phase description, internal flags to sendreq / transaction driver. */ #define PTP_DP_NODATA 0x0000 /* no data phase */ #define PTP_DP_SENDDATA 0x0001 /* sending data */ @@ -2801,6 +3610,9 @@ struct _PTPParams { int split_header_data; int ocs64; /* 64bit objectsize */ + int nrofobjectformats; + MTPObjectFormat *objectformats; + /* PTP: internal structures used by ptp driver */ PTPObject *objects; unsigned int nrofobjects; @@ -2811,6 +3623,9 @@ struct _PTPParams { PTPContainer *events; int nrofevents; + /* Capture count for SDRAM capture style images */ + unsigned int capcnt; + /* live view enabled */ int inliveview; @@ -2842,13 +3657,16 @@ struct _PTPParams { int event90c7works; int deletesdramfails; + /* PTP: Sony specific */ + struct timeval starttime; + /* PTP: Wifi profiles */ uint8_t wifi_profiles_version; uint8_t wifi_profiles_number; PTPNIKONWifiProfile *wifi_profiles; /* IO: PTP/IP related data */ - int cmdfd, evtfd; + int cmdfd, evtfd, jpgfd; uint8_t cameraguid[16]; uint32_t eventpipeid; char *cameraname; @@ -2880,7 +3698,7 @@ uint16_t ptp_usb_sendreq (PTPParams* params, PTPContainer* req, int dataphase); uint16_t ptp_usb_senddata (PTPParams* params, PTPContainer* ptp, uint64_t size, PTPDataHandler *handler); uint16_t ptp_usb_getresp (PTPParams* params, PTPContainer* resp); -uint16_t ptp_usb_getdata (PTPParams* params, PTPContainer* ptp, +uint16_t ptp_usb_getdata (PTPParams* params, PTPContainer* ptp, PTPDataHandler *handler); uint16_t ptp_usb_event_async (PTPParams *params, PTPEventCbFn cb, void *user_data); uint16_t ptp_usb_event_wait (PTPParams* params, PTPContainer* event); @@ -2899,19 +3717,33 @@ uint16_t ptp_ptpip_sendreq (PTPParams* params, PTPContainer* req, int dataphase) uint16_t ptp_ptpip_senddata (PTPParams* params, PTPContainer* ptp, uint64_t size, PTPDataHandler *handler); uint16_t ptp_ptpip_getresp (PTPParams* params, PTPContainer* resp); -uint16_t ptp_ptpip_getdata (PTPParams* params, PTPContainer* ptp, +uint16_t ptp_ptpip_getdata (PTPParams* params, PTPContainer* ptp, PTPDataHandler *handler); uint16_t ptp_ptpip_event_wait (PTPParams* params, PTPContainer* event); uint16_t ptp_ptpip_event_check (PTPParams* params, PTPContainer* event); uint16_t ptp_ptpip_event_check_queue (PTPParams* params, PTPContainer* event); +int ptp_fujiptpip_connect (PTPParams* params, const char *port); +int ptp_fujiptpip_init_event (PTPParams* params, const char *address); +uint16_t ptp_fujiptpip_sendreq (PTPParams* params, PTPContainer* req, int dataphase); +uint16_t ptp_fujiptpip_senddata (PTPParams* params, PTPContainer* ptp, + uint64_t size, PTPDataHandler *handler); +uint16_t ptp_fujiptpip_getresp (PTPParams* params, PTPContainer* resp); +uint16_t ptp_fujiptpip_getdata (PTPParams* params, PTPContainer* ptp, + PTPDataHandler *handler); +uint16_t ptp_fujiptpip_event_wait (PTPParams* params, PTPContainer* event); +uint16_t ptp_fujiptpip_event_check (PTPParams* params, PTPContainer* event); +uint16_t ptp_fujiptpip_event_check_queue(PTPParams* params, PTPContainer* event); + +uint16_t ptp_fujiptpip_jpeg (PTPParams* params, unsigned char** xdata, unsigned int *xsize); + uint16_t ptp_getdeviceinfo (PTPParams* params, PTPDeviceInfo* deviceinfo); uint16_t ptp_generic_no_data (PTPParams* params, uint16_t opcode, unsigned int cnt, ...); uint16_t ptp_opensession (PTPParams *params, uint32_t session); -uint16_t ptp_transaction_new (PTPParams* params, PTPContainer* ptp, +uint16_t ptp_transaction_new (PTPParams* params, PTPContainer* ptp, uint16_t flags, uint64_t sendlen, PTPDataHandler *handler ); @@ -2942,7 +3774,7 @@ uint16_t ptp_transaction (PTPParams* params, PTPContainer* ptp, /** * ptp_resetdevice: * params: PTPParams* - * + * * Uses the built-in function to reset the device * * Return values: Some PTP_RC_* code. @@ -3009,7 +3841,7 @@ uint16_t ptp_sendobjectinfo (PTPParams* params, uint32_t* store, * ptp_setobjectprotection: * params: PTPParams* * uint16_t newprot - object protection flag - * + * * Set protection of object. * * Return values: Some PTP_RC_* code. @@ -3025,7 +3857,7 @@ uint16_t ptp_sendobject_from_handler (PTPParams* params, PTPDataHandler*, uint6 * params: PTPParams* * storageid - destination StorageID on Responder * ofc - object format code - * + * * Causes device to initiate the capture of one or more new data objects * according to its current device properties, storing the data into store * indicated by storageid. If storageid is 0x00000000, the object(s) will @@ -3052,7 +3884,8 @@ uint16_t ptp_generic_setdevicepropvalue (PTPParams* params, uint16_t propcode, uint16_t ptp_getfilesystemmanifest (PTPParams* params, uint32_t storage, uint32_t objectformatcode, uint32_t associationOH, uint64_t *numoifs, PTPObjectFilesystemInfo **oifs); - +uint16_t ptp_getstreaminfo (PTPParams *params, uint32_t streamid, PTPStreamInfo *si); +uint16_t ptp_getstream (PTPParams* params, unsigned char **data, unsigned int *size); uint16_t ptp_check_event (PTPParams *params); @@ -3067,7 +3900,7 @@ int ptp_get_one_eos_event (PTPParams *params, PTPCanon_changes_entry *entry); /* Microsoft MTP extensions */ uint16_t ptp_mtp_getobjectpropdesc (PTPParams* params, uint16_t opc, uint16_t ofc, PTPObjectPropDesc *objectpropertydesc); -uint16_t ptp_mtp_getobjectpropvalue (PTPParams* params, uint32_t oid, uint16_t opc, +uint16_t ptp_mtp_getobjectpropvalue (PTPParams* params, uint32_t oid, uint16_t opc, PTPPropertyValue *value, uint16_t datatype); uint16_t ptp_mtp_setobjectpropvalue (PTPParams* params, uint32_t oid, uint16_t opc, PTPPropertyValue *value, uint16_t datatype); @@ -3115,7 +3948,7 @@ uint16_t ptp_canon_get_mac_address (PTPParams* params, unsigned char **mac); /** * ptp_canon_startshootingmode: * params: PTPParams* - * + * * Starts shooting session. It emits a StorageInfoChanged * event via the interrupt pipe and pushes the StorageInfoChanged * and CANON_CameraModeChange events onto the event stack @@ -3128,9 +3961,9 @@ uint16_t ptp_canon_get_mac_address (PTPParams* params, unsigned char **mac); /** * ptp_canon_endshootingmode: * params: PTPParams* - * - * This operation is observed after pressing the Disconnect - * button on the Remote Capture app. It emits a StorageInfoChanged + * + * This operation is observed after pressing the Disconnect + * button on the Remote Capture app. It emits a StorageInfoChanged * event via the interrupt pipe and pushes the StorageInfoChanged * and CANON_CameraModeChange events onto the event stack * (see operation PTP_OC_CANON_CheckEvent). @@ -3142,7 +3975,7 @@ uint16_t ptp_canon_get_mac_address (PTPParams* params, unsigned char **mac); /** * ptp_canon_viewfinderon: * params: PTPParams* - * + * * Prior to start reading viewfinder images, one must call this operation. * Supposedly, this operation affects the value of the CANON_ViewfinderMode * property. @@ -3154,7 +3987,7 @@ uint16_t ptp_canon_get_mac_address (PTPParams* params, unsigned char **mac); /** * ptp_canon_viewfinderoff: * params: PTPParams* - * + * * Before changing the shooting mode, or when one doesn't need to read * viewfinder images any more, one must call this operation. * Supposedly, this operation affects the value of the CANON_ViewfinderMode @@ -3171,7 +4004,7 @@ uint16_t ptp_canon_get_mac_address (PTPParams* params, unsigned char **mac); * 1 - autoexposure * 2 - autofocus * 4 - autowhitebalance - * + * * Called "Reset AeAfAwb" (auto exposure, focus, white balance) * * Return values: Some PTP_RC_* code. @@ -3180,14 +4013,14 @@ uint16_t ptp_canon_get_mac_address (PTPParams* params, unsigned char **mac); #define PTP_CANON_RESET_AF 0x2 #define PTP_CANON_RESET_AWB 0x4 #define ptp_canon_reset_aeafawb(params,flags) ptp_generic_no_data(params,PTP_OC_CANON_DoAeAfAwb,1,flags) -uint16_t ptp_canon_checkevent (PTPParams* params, +uint16_t ptp_canon_checkevent (PTPParams* params, PTPContainer* event, int* isevent); /** * ptp_canon_focuslock: * * This operation locks the focus. It is followed by the CANON_GetChanges(?) - * operation in the log. - * It affects the CANON_MacroMode property. + * operation in the log. + * It affects the CANON_MacroMode property. * * params: PTPParams* * @@ -3199,9 +4032,9 @@ uint16_t ptp_canon_checkevent (PTPParams* params, * ptp_canon_focusunlock: * * This operation unlocks the focus. It is followed by the CANON_GetChanges(?) - * operation in the log. + * operation in the log. * It sets the CANON_MacroMode property value to 1 (where it occurs in the log). - * + * * params: PTPParams* * * Return values: Some PTP_RC_* code. @@ -3212,7 +4045,7 @@ uint16_t ptp_canon_checkevent (PTPParams* params, * ptp_canon_keepdeviceon: * * This operation sends a "ping" style message to the camera. - * + * * params: PTPParams* * * Return values: Some PTP_RC_* code. @@ -3223,7 +4056,7 @@ uint16_t ptp_canon_checkevent (PTPParams* params, * ptp_canon_eos_keepdeviceon: * * This operation sends a "ping" style message to the camera. - * + * * params: PTPParams* * * Return values: Some PTP_RC_* code. @@ -3235,7 +4068,7 @@ uint16_t ptp_canon_checkevent (PTPParams* params, * ptp_canon_eos_popupflash: * * This operation pops up the builtin flash of the Canon EOS. - * + * * params: PTPParams* * * Return values: Some PTP_RC_* code. @@ -3244,7 +4077,7 @@ uint16_t ptp_canon_checkevent (PTPParams* params, #define ptp_canon_eos_popupflash(params) ptp_generic_no_data(params,PTP_OC_CANON_EOS_PopupBuiltinFlash,0) /** * ptp_canon_initiatecaptureinmemory: - * + * * This operation starts the image capture according to the current camera * settings. When the capture has happened, the camera emits a CaptureComplete * event via the interrupt pipe and pushes the CANON_RequestObjectTransfer, @@ -3264,7 +4097,7 @@ uint16_t ptp_canon_checkevent (PTPParams* params, * ptp_canon_eos_requestdevicepropvalue: * * This operation sends a "ping" style message to the camera. - * + * * params: PTPParams* * * Return values: Some PTP_RC_* code. @@ -3278,19 +4111,20 @@ uint16_t ptp_canon_checkevent (PTPParams* params, #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_getremotemode (PTPParams*, uint32_t *); 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, +uint16_t ptp_canon_getpartialobject (PTPParams* params, uint32_t handle, uint32_t offset, uint32_t size, - uint32_t pos, unsigned char** block, + uint32_t pos, unsigned char** block, uint32_t* readnum); uint16_t ptp_canon_getviewfinderimage (PTPParams* params, unsigned char** image, uint32_t* size); uint16_t ptp_canon_getchanges (PTPParams* params, uint16_t** props, - uint32_t* propnum); + uint32_t* propnum); uint16_t ptp_canon_getobjectinfo (PTPParams* params, uint32_t store, uint32_t p2, uint32_t parenthandle, - uint32_t handle, + uint32_t handle, PTPCANONFolderEntry** entries, uint32_t* entnum); uint16_t ptp_canon_eos_getdeviceinfo (PTPParams* params, PTPCanonEOSDeviceInfo*di); @@ -3298,7 +4132,7 @@ uint16_t ptp_canon_eos_getdeviceinfo (PTPParams* params, PTPCanonEOSDeviceInfo*d * ptp_canon_eos_setuilock: * * This command sets UI lock - * + * * params: PTPParams* * * Return values: Some PTP_RC_* code. @@ -3309,7 +4143,7 @@ uint16_t ptp_canon_eos_getdeviceinfo (PTPParams* params, PTPCanonEOSDeviceInfo*d * ptp_canon_eos_resetuilock: * * This command sets UI lock - * + * * params: PTPParams* * * Return values: Some PTP_RC_* code. @@ -3320,7 +4154,7 @@ uint16_t ptp_canon_eos_getdeviceinfo (PTPParams* params, PTPCanonEOSDeviceInfo*d * ptp_canon_eos_start_viewfinder: * * This command starts Viewfinder mode of newer Canon DSLRs. - * + * * params: PTPParams* * * Return values: Some PTP_RC_* code. @@ -3331,7 +4165,7 @@ uint16_t ptp_canon_eos_getdeviceinfo (PTPParams* params, PTPCanonEOSDeviceInfo*d * ptp_canon_eos_end_viewfinder: * * This command ends Viewfinder mode of newer Canon DSLRs. - * + * * params: PTPParams* * * Return values: Some PTP_RC_* code. @@ -3369,7 +4203,7 @@ uint16_t ptp_canon_eos_setdevicepropvalueex (PTPParams* params, unsigned char* d #define ptp_canon_eos_seteventmode(params,p1) ptp_generic_no_data(params,PTP_OC_CANON_EOS_SetEventMode,1,p1) /** * ptp_canon_eos_transfercomplete: - * + * * This ends a direct object transfer from an EOS camera. * * params: PTPParams* @@ -3389,28 +4223,37 @@ uint16_t ptp_canon_eos_getdevicepropdesc (PTPParams* params, uint16_t propcode, uint16_t ptp_canon_eos_setdevicepropvalue (PTPParams* params, uint16_t propcode, PTPPropertyValue* value, uint16_t datatype); uint16_t ptp_nikon_get_vendorpropcodes (PTPParams* params, uint16_t **props, unsigned int *size); -uint16_t ptp_nikon_curve_download (PTPParams* params, +uint16_t ptp_nikon_curve_download (PTPParams* params, unsigned char **data, unsigned int *size); +uint16_t ptp_nikon_getlargethumb (PTPParams *params, uint32_t handle, + unsigned char** object, unsigned int *len); uint16_t ptp_nikon_getptpipinfo (PTPParams* params, unsigned char **data, unsigned int *size); uint16_t ptp_nikon_getwifiprofilelist (PTPParams* params); uint16_t ptp_nikon_writewifiprofile (PTPParams* params, PTPNIKONWifiProfile* profile); uint16_t ptp_sony_sdioconnect (PTPParams* params, uint32_t p1, uint32_t p2, uint32_t p3); +uint16_t ptp_sony_qx_connect (PTPParams* params, uint32_t p1, uint32_t p2, uint32_t p3); uint16_t ptp_sony_get_vendorpropcodes (PTPParams* params, uint16_t **props, unsigned int *size); +uint16_t ptp_sony_qx_get_vendorpropcodes (PTPParams* params, uint16_t **props, unsigned int *size); uint16_t ptp_sony_getdevicepropdesc (PTPParams* params, uint16_t propcode, PTPDevicePropDesc *devicepropertydesc); uint16_t ptp_sony_getalldevicepropdesc (PTPParams* params); +uint16_t ptp_sony_qx_getalldevicepropdesc (PTPParams* params); uint16_t ptp_sony_setdevicecontrolvaluea (PTPParams* params, uint16_t propcode, PTPPropertyValue* value, uint16_t datatype); +uint16_t ptp_sony_qx_setdevicecontrolvaluea (PTPParams* params, uint16_t propcode, + PTPPropertyValue* value, uint16_t datatype); uint16_t ptp_sony_setdevicecontrolvalueb (PTPParams* params, uint16_t propcode, PTPPropertyValue* value, uint16_t datatype); +uint16_t ptp_sony_qx_setdevicecontrolvalueb (PTPParams* params, uint16_t propcode, + PTPPropertyValue* value, uint16_t datatype); uint16_t ptp_sony_9280 (PTPParams* params, uint32_t additional, uint32_t data1, uint32_t data2, uint32_t data3, uint32_t data4, uint8_t x, uint8_t y); uint16_t ptp_sony_9281 (PTPParams* params, uint32_t param1); /** * ptp_nikon_deletewifiprofile: * * This command deletes a wifi profile. - * + * * params: PTPParams* * unsigned int profilenr - profile number * @@ -3419,25 +4262,25 @@ uint16_t ptp_sony_9281 (PTPParams* params, uint32_t param1); **/ #define ptp_nikon_deletewifiprofile(params,profilenr) ptp_generic_no_data(params,PTP_OC_NIKON_DeleteProfile,1,profilenr) /** - * ptp_nikon_setcontrolmode: + * ptp_nikon_changecameramode: * * This command can switch the camera to full PC control mode. - * + * * params: PTPParams* * uint32_t mode - mode * * Return values: Some PTP_RC_* code. * **/ -#define ptp_nikon_setcontrolmode(params,mode) ptp_generic_no_data(params,PTP_OC_NIKON_SetControlMode,1,mode) +#define ptp_nikon_changecameramode(params,mode) ptp_generic_no_data(params,PTP_OC_NIKON_ChangeCameraMode,1,mode) /** * ptp_nikon_terminatecapture: * * This command appears to terminate a longer capture - * + * * params: PTPParams* - * uint32_t a - * uint32_t b + * uint32_t a + * uint32_t b * * Return values: Some PTP_RC_* code. * @@ -3447,7 +4290,7 @@ uint16_t ptp_sony_9281 (PTPParams* params, uint32_t param1); * ptp_nikon_afdrive: * * This command runs (drives) the lens autofocus. - * + * * params: PTPParams* * * Return values: Some PTP_RC_* code. @@ -3458,7 +4301,7 @@ uint16_t ptp_sony_9281 (PTPParams* params, uint32_t param1); * ptp_nikon_changeafarea: * * This command starts movie capture (to card) - * + * * params: PTPParams* * x: x coordinate * y: y coordinate @@ -3471,7 +4314,7 @@ uint16_t ptp_sony_9281 (PTPParams* params, uint32_t param1); * ptp_nikon_startmovie: * * This command starts movie capture (to card) - * + * * params: PTPParams* * * Return values: Some PTP_RC_* code. @@ -3482,7 +4325,7 @@ uint16_t ptp_sony_9281 (PTPParams* params, uint32_t param1); * ptp_nikon_stopmovie: * * This command stops movie capture (to card) - * + * * params: PTPParams* * * Return values: Some PTP_RC_* code. @@ -3493,7 +4336,7 @@ uint16_t ptp_sony_9281 (PTPParams* params, uint32_t param1); * ptp_canon_eos_afdrive: * * This command runs (drives) the lens autofocus. - * + * * params: PTPParams* * * Return values: Some PTP_RC_* code. @@ -3504,7 +4347,7 @@ uint16_t ptp_sony_9281 (PTPParams* params, uint32_t param1); * ptp_canon_eos_afcancel: * * This command cancels the lens autofocus. - * + * * params: PTPParams* * * Return values: Some PTP_RC_* code. @@ -3515,7 +4358,7 @@ uint16_t ptp_sony_9281 (PTPParams* params, uint32_t param1); * ptp_canon_eos_zoom: * * This command runs (drives) the lens autofocus. - * + * * params: PTPParams* * params: arg1 unknown * @@ -3531,7 +4374,7 @@ uint16_t ptp_sony_9281 (PTPParams* params, uint32_t param1); * ptp_nikon_mfdrive: * * This command runs (drives) the lens focus manually. - * + * * params: PTPParams* * flag: 0x1 for (no limit - closest), 0x2 for (closest - no limit) * amount: amount of steps @@ -3545,7 +4388,7 @@ uint16_t ptp_sony_9281 (PTPParams* params, uint32_t param1); * ptp_canon_eos_drivelens: * * This command runs (drives) the lens focus manually. - * + * * params: PTPParams* * amount: 0x1-0x3 for near range, 0x8001-0x8003 for far range. * @@ -3557,20 +4400,20 @@ uint16_t ptp_sony_9281 (PTPParams* params, uint32_t param1); * ptp_nikon_capture: * * This command captures a picture on the Nikon. - * + * * params: PTPParams* * uint32_t x: unknown parameter. seen to be -1. * * Return values: Some PTP_RC_* code. * **/ -#define ptp_nikon_capture(params,x) ptp_generic_no_data(params,PTP_OC_NIKON_Capture,1,x) +#define ptp_nikon_capture(params,x) ptp_generic_no_data(params,PTP_OC_NIKON_InitiateCaptureRecInSdram,1,x) /** * ptp_nikon_capture2: * * This command captures a picture on the Nikon. - * + * * params: PTPParams* * af: autofocus before capture (1 yes , 0 no) * target: sdram 1, card 0 @@ -3585,7 +4428,7 @@ uint16_t ptp_sony_9281 (PTPParams* params, uint32_t param1); * ptp_nikon_capture_sdram: * * This command captures a picture on the Nikon. - * + * * params: PTPParams* * * Return values: Some PTP_RC_* code. @@ -3596,7 +4439,7 @@ uint16_t ptp_sony_9281 (PTPParams* params, uint32_t param1); * ptp_nikon_delete_sdram_image: * * This command deletes the current SDRAM image - * + * * params: PTPParams* * uint32_t oid * @@ -3608,7 +4451,7 @@ uint16_t ptp_sony_9281 (PTPParams* params, uint32_t param1); * ptp_nikon_start_liveview: * * This command starts LiveView mode of newer Nikons DSLRs. - * + * * params: PTPParams* * * Return values: Some PTP_RC_* code. @@ -3621,7 +4464,7 @@ uint16_t ptp_nikon_get_preview_image (PTPParams* params, unsigned char**, unsign * ptp_nikon_end_liveview: * * This command ends LiveView mode of newer Nikons DSLRs. - * + * * params: PTPParams* * * Return values: Some PTP_RC_* code. @@ -3636,7 +4479,7 @@ uint16_t ptp_nikon_getfileinfoinblock (PTPParams* params, uint32_t p1, uint32_t * * This command checks if the device is ready. Used after * a capture. - * + * * params: PTPParams* * * Return values: Some PTP_RC_* code. @@ -3726,7 +4569,7 @@ typedef struct tagptp_chdk_videosettings { long bitmap_buffer_width; long bitmap_width; long bitmap_height; - unsigned palette[16]; + unsigned palette[16]; } ptp_chdk_videosettings; /* Nafraf: Test this!!!*/ @@ -3783,6 +4626,7 @@ uint16_t ptp_chdk_call_function(PTPParams* params, int *args, int size, int *ret /*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); +uint16_t ptp_fuji_getdeviceinfo (PTPParams* params, uint16_t **props, unsigned int *numprops); #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); @@ -3798,6 +4642,8 @@ uint16_t ptp_panasonic_9401 (PTPParams* params, uint32_t x); 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_omd_bulbstart (PTPParams* params); +uint16_t ptp_olympus_omd_bulbend (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); @@ -3805,6 +4651,10 @@ uint16_t ptp_olympus_sdram_image (PTPParams* params, unsigned char **data, unsig #define ptp_panasonic_capture(params) ptp_generic_no_data(params,PTP_OC_PANASONIC_InitiateCapture,1,0x3000011) +#define ptp_leica_leopensession(params,session) ptp_generic_no_data(params,PTP_OC_LEICA_LEOpenSession,1,session) +#define ptp_leica_leclosesession(params) ptp_generic_no_data(params,PTP_OC_LEICA_LECloseSession,0) +uint16_t ptp_leica_getstreamdata (PTPParams* params, unsigned char **data, unsigned int *size); + #ifdef __cplusplus } #endif /* __cplusplus */ |