⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ptp.h

📁 Linux平台。一个好用的ptp传输工具。用来从相机向pc传输照片
💻 H
📖 第 1 页 / 共 2 页
字号:
		PTPPropDescEnumForm	Enum;		PTPPropDescRangeForm	Range;	} FORM;};typedef struct _PTPDevicePropDesc PTPDevicePropDesc;/* Canon filesystem's folder entry Dataset */#define PTP_CANON_FilenameBufferLen	13#define PTP_CANON_FolderEntryLen	sizeof(PTPCANONFolderEntry)struct _PTPCANONFolderEntry {	uint32_t	ObjectHandle;	uint16_t	ObjectFormatCode;	uint8_t		Flags;	uint32_t	ObjectSize;	time_t		Time;    char     Filename[PTP_CANON_FilenameBufferLen];};typedef struct _PTPCANONFolderEntry PTPCANONFolderEntry;/* DataType Codes */#define PTP_DTC_UNDEF		0x0000#define PTP_DTC_INT8		0x0001#define PTP_DTC_UINT8		0x0002#define PTP_DTC_INT16		0x0003#define PTP_DTC_UINT16		0x0004#define PTP_DTC_INT32		0x0005#define PTP_DTC_UINT32		0x0006#define PTP_DTC_INT64		0x0007#define PTP_DTC_UINT64		0x0008#define PTP_DTC_INT128		0x0009#define PTP_DTC_UINT128		0x000A#define PTP_DTC_AINT8		0x4001#define PTP_DTC_AUINT8		0x4002#define PTP_DTC_AINT16		0x4003#define PTP_DTC_AUINT16		0x4004#define PTP_DTC_AINT32		0x4005#define PTP_DTC_AUINT32		0x4006#define PTP_DTC_AINT64		0x4007#define PTP_DTC_AUINT64		0x4008#define PTP_DTC_AINT128		0x4009#define PTP_DTC_AUINT128	0x400A#define PTP_DTC_STR		0xFFFF/* Device Properties Codes */#define PTP_DPC_Undefined		0x5000#define PTP_DPC_BatteryLevel		0x5001#define PTP_DPC_FunctionalMode		0x5002#define PTP_DPC_ImageSize		0x5003#define PTP_DPC_CompressionSetting	0x5004#define PTP_DPC_WhiteBalance		0x5005#define PTP_DPC_RGBGain			0x5006#define PTP_DPC_FNumber			0x5007#define PTP_DPC_FocalLength		0x5008#define PTP_DPC_FocusDistance		0x5009#define PTP_DPC_FocusMode		0x500A#define PTP_DPC_ExposureMeteringMode	0x500B#define PTP_DPC_FlashMode		0x500C#define PTP_DPC_ExposureTime		0x500D#define PTP_DPC_ExposureProgramMode	0x500E#define PTP_DPC_ExposureIndex		0x500F#define PTP_DPC_ExposureBiasCompensation	0x5010#define PTP_DPC_DateTime		0x5011#define PTP_DPC_CaptureDelay		0x5012#define PTP_DPC_StillCaptureMode	0x5013#define PTP_DPC_Contrast		0x5014#define PTP_DPC_Sharpness		0x5015#define PTP_DPC_DigitalZoom		0x5016#define PTP_DPC_EffectMode		0x5017#define PTP_DPC_BurstNumber		0x5018#define PTP_DPC_BurstInterval		0x5019#define PTP_DPC_TimelapseNumber		0x501A#define PTP_DPC_TimelapseInterval	0x501B#define PTP_DPC_FocusMeteringMode	0x501C#define PTP_DPC_UploadURL		0x501D#define PTP_DPC_Artist			0x501E#define PTP_DPC_CopyrightInfo		0x501F/* Proprietary vendor extension device property mask */#define PTP_DPC_EXTENSION_MASK		0xF000#define PTP_DPC_EXTENSION		0xD000/* Vendor Extensions device property codes *//* Eastman Kodak extension device property codes */#define PTP_DPC_EK_ColorTemperature	0xD001#define PTP_DPC_EK_DateTimeStampFormat	0xD002#define PTP_DPC_EK_BeepMode		0xD003#define PTP_DPC_EK_VideoOut		0xD004#define PTP_DPC_EK_PowerSaving		0xD005#define PTP_DPC_EK_UI_Language		0xD006/* Canon extension device property codes */#define PTP_DPC_CANON_BeepMode		0xD001#define PTP_DPC_CANON_ViewfinderMode	0xD003#define PTP_DPC_CANON_ImageQuality	0xD006#define PTP_DPC_CANON_D007		0xD007#define PTP_DPC_CANON_ImageSize		0xD008#define PTP_DPC_CANON_FlashMode		0xD00A#define PTP_DPC_CANON_TvAvSetting	0xD00C#define PTP_DPC_CANON_MeteringMode	0xD010#define PTP_DPC_CANON_MacroMode		0xD011#define PTP_DPC_CANON_FocusingPoint	0xD012#define PTP_DPC_CANON_WhiteBalance	0xD013#define PTP_DPC_CANON_ISOSpeed		0xD01C#define PTP_DPC_CANON_Aperture		0xD01D#define PTP_DPC_CANON_ShutterSpeed	0xD01E#define PTP_DPC_CANON_ExpCompensation	0xD01F#define PTP_DPC_CANON_D029		0xD029#define PTP_DPC_CANON_Zoom		0xD02A#define PTP_DPC_CANON_SizeQualityMode	0xD02C#define PTP_DPC_CANON_FlashMemory	0xD031#define PTP_DPC_CANON_CameraModel	0xD032#define PTP_DPC_CANON_CameraOwner	0xD033#define PTP_DPC_CANON_UnixTime		0xD034#define PTP_DPC_CANON_ViewfinderOutput	0xD036#define PTP_DPC_CANON_RealImageWidth	0xD039#define PTP_DPC_CANON_PhotoEffect	0xD040#define PTP_DPC_CANON_AssistLight	0xD041#define PTP_DPC_CANON_D045		0xD045/* Nikon extension device property codes */#define PTP_DPC_NIKON_ShootingBank			0xD010#define PTP_DPC_NIKON_ShootingBankNameA 		0xD011#define PTP_DPC_NIKON_ShootingBankNameB			0xD012#define PTP_DPC_NIKON_ShootingBankNameC			0xD013#define PTP_DPC_NIKON_ShootingBankNameD			0xD014#define PTP_DPC_NIKON_RawCompression			0xD016#define PTP_DPC_NIKON_WhiteBalanceAutoBias		0xD017#define PTP_DPC_NIKON_WhiteBalanceTungstenBias		0xD018#define PTP_DPC_NIKON_WhiteBalanceFlourescentBias	0xD019#define PTP_DPC_NIKON_WhiteBalanceDaylightBias		0xD01A#define PTP_DPC_NIKON_WhiteBalanceFlashBias		0xD01B#define PTP_DPC_NIKON_WhiteBalanceCloudyBias		0xD01C#define PTP_DPC_NIKON_WhiteBalanceShadeBias		0xD01D#define PTP_DPC_NIKON_WhiteBalanceColorTemperature	0xD01E#define PTP_DPC_NIKON_ImageSharpening			0xD02A#define PTP_DPC_NIKON_ToneCompensation			0xD02B#define PTP_DPC_NIKON_ColorMode				0xD02C#define PTP_DPC_NIKON_HueAdjustment			0xD02D#define PTP_DPC_NIKON_NonCPULensDataFocalLength		0xD02E#define PTP_DPC_NIKON_NonCPULensDataMaximumAperture	0xD02F#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_A1AFCModePriority			0xD048#define PTP_DPC_NIKON_A2AFSModePriority			0xD049#define PTP_DPC_NIKON_A3GroupDynamicAF			0xD04A#define PTP_DPC_NIKON_A4AFActivation			0xD04B#define PTP_DPC_NIKON_A5FocusAreaIllumManualFocus	0xD04C#define PTP_DPC_NIKON_FocusAreaIllumContinuous		0xD04D#define PTP_DPC_NIKON_FocusAreaIllumWhenSelected 	0xD04E#define PTP_DPC_NIKON_FocusAreaWrap			0xD04F#define PTP_DPC_NIKON_A7VerticalAFON			0xD050#define PTP_DPC_NIKON_ISOAuto				0xD054#define PTP_DPC_NIKON_B2ISOStep				0xD055#define PTP_DPC_NIKON_EVStep				0xD056#define PTP_DPC_NIKON_B4ExposureCompEv			0xD057#define PTP_DPC_NIKON_ExposureCompensation		0xD058#define PTP_DPC_NIKON_CenterWeightArea			0xD059#define PTP_DPC_NIKON_AELockMode			0xD05E#define PTP_DPC_NIKON_AELAFLMode			0xD05F#define PTP_DPC_NIKON_MeterOff				0xD062#define PTP_DPC_NIKON_SelfTimer				0xD063#define PTP_DPC_NIKON_MonitorOff			0xD064#define PTP_DPC_NIKON_D1ShootingSpeed			0xD068#define PTP_DPC_NIKON_D2MaximumShots			0xD069#define PTP_DPC_NIKON_D3ExpDelayMode			0xD06A#define PTP_DPC_NIKON_LongExposureNoiseReduction	0xD06B#define PTP_DPC_NIKON_FileNumberSequence		0xD06C#define PTP_DPC_NIKON_D6ControlPanelFinderRearControl	0xD06D#define PTP_DPC_NIKON_ControlPanelFinderViewfinder	0xD06E#define PTP_DPC_NIKON_D7Illumination			0xD06F#define PTP_DPC_NIKON_E1FlashSyncSpeed			0xD074#define PTP_DPC_NIKON_FlashShutterSpeed			0xD075#define PTP_DPC_NIKON_E3AAFlashMode			0xD076#define PTP_DPC_NIKON_E4ModelingFlash			0xD077#define PTP_DPC_NIKON_BracketSet			0xD078#define PTP_DPC_NIKON_E6ManualModeBracketing		0xD079	#define PTP_DPC_NIKON_BracketOrder			0xD07A#define PTP_DPC_NIKON_E8AutoBracketSelection		0xD07B#define PTP_DPC_NIKON_BracketingSet			0xD07C#define PTP_DPC_NIKON_F1CenterButtonShootingMode	0xD080#define PTP_DPC_NIKON_CenterButtonPlaybackMode		0xD081#define PTP_DPC_NIKON_F2Multiselector			0xD082#define PTP_DPC_NIKON_F3PhotoInfoPlayback		0xD083#define PTP_DPC_NIKON_F4AssignFuncButton		0xD084#define PTP_DPC_NIKON_F5CustomizeCommDials		0xD085#define PTP_DPC_NIKON_ReverseCommandDial		0xD086#define PTP_DPC_NIKON_ApertureSetting			0xD087#define PTP_DPC_NIKON_MenusAndPlayback			0xD088#define PTP_DPC_NIKON_F6ButtonsAndDials			0xD089#define PTP_DPC_NIKON_NoCFCard				0xD08A#define PTP_DPC_NIKON_ImageCommentString		0xD090#define PTP_DPC_NIKON_ImageCommentAttach		0xD091#define PTP_DPC_NIKON_ImageRotation			0xD092#define PTP_DPC_NIKON_Bracketing			0xD0C0#define PTP_DPC_NIKON_ExposureBracketingIntervalDist	0xD0C1#define PTP_DPC_NIKON_BracketingProgram			0xD0C2#define PTP_DPC_NIKON_WhiteBalanceBracketStep		0xD0C4#define PTP_DPC_NIKON_LensID                            0xD0E0#define PTP_DPC_NIKON_FocalLengthMin                    0xD0E3#define PTP_DPC_NIKON_FocalLengthMax                    0xD0E4#define PTP_DPC_NIKON_MaxApAtMinFocalLength             0xD0E5#define PTP_DPC_NIKON_MaxApAtMaxFocalLength             0xD0E6#define PTP_DPC_NIKON_ExposureTime			0xD100#define PTP_DPC_NIKON_ACPower				0xD101#define PTP_DPC_NIKON_MaximumShots			0xD103#define PTP_DPC_NIKON_AFLLock				0xD104#define PTP_DPC_NIKON_AutoExposureLock			0xD105#define PTP_DPC_NIKON_AutoFocusLock			0xD106#define PTP_DPC_NIKON_AutofocusLCDTopMode2		0xD107#define PTP_DPC_NIKON_AutofocusArea			0xD108#define PTP_DPC_NIKON_LightMeter			0xD10A#define PTP_DPC_NIKON_CameraOrientation			0xD10E#define PTP_DPC_NIKON_ExposureApertureLock		0xD111#define PTP_DPC_NIKON_BeepOff				0xD160#define PTP_DPC_NIKON_AutofocusMode			0xD161#define PTP_DPC_NIKON_AFAssist				0xD163#define PTP_DPC_NIKON_PADVPMode                         0xD164#define PTP_DPC_NIKON_ImageReview			0xD165#define PTP_DPC_NIKON_AFAreaIllumination                0xD166#define PTP_DPC_NIKON_FlashMode                         0xD167#define PTP_DPC_NIKON_FlashCommanderMode		0xD168#define PTP_DPC_NIKON_FlashSign				0xD169#define PTP_DPC_NIKON_GridDisplay                       0xD16C#define PTP_DPC_NIKON_FlashModeManualPower		0xD16D#define PTP_DPC_NIKON_FlashModeCommanderPower		0xD16E#define PTP_DPC_NIKON_RemoteTimeout                     0xD16B#define PTP_DPC_NIKON_GridDisplay			0xD16C#define PTP_DPC_NIKON_BracketingIncrement		0xD190#define PTP_DPC_NIKON_LowLight                          0xD1B0#define PTP_DPC_NIKON_FlashOpen                         0xD1C0#define PTP_DPC_NIKON_FlashCharged                      0xD1C1#define PTP_DPC_NIKON_FlashExposureCompensation         0xD126#define PTP_DPC_NIKON_CSMMenu			        0xD180#define PTP_DPC_NIKON_OptimizeImage		        0xD140#define PTP_DPC_NIKON_Saturation		        0xD142/* Device Property Form Flag */#define PTP_DPFF_None			0x00#define PTP_DPFF_Range			0x01#define PTP_DPFF_Enumeration		0x02/* Device Property GetSet type */#define PTP_DPGS_Get			0x00#define PTP_DPGS_GetSet			0x01/* Glue stuff starts here */typedef struct _PTPParams PTPParams;/* raw write functions */typedef short (* PTPIOReadFunc)	(unsigned char *bytes, unsigned int size,				 void *data);typedef short (* PTPIOWriteFunc)(unsigned char *bytes, unsigned int size,				 void *data);/* * This functions take PTP oriented arguments and send them over an * appropriate data layer doing byteorder conversion accordingly. */typedef uint16_t (* PTPIOSendReq)	(PTPParams* params, PTPContainer* req);typedef uint16_t (* PTPIOSendData)	(PTPParams* params, PTPContainer* ptp,					unsigned char *data, unsigned int size);typedef uint16_t (* PTPIOGetResp)	(PTPParams* params, PTPContainer* resp);typedef uint16_t (* PTPIOGetData)	(PTPParams* params, PTPContainer* ptp,					unsigned char **data);/* debug functions */typedef void (* PTPErrorFunc) (void *data, const char *format, va_list args);typedef void (* PTPDebugFunc) (void *data, const char *format, va_list args);struct _PTPParams {	/* data layer byteorder */	uint8_t	byteorder;	/* Data layer IO functions */	PTPIOReadFunc	read_func;	PTPIOWriteFunc	write_func;	PTPIOReadFunc	check_int_func;	PTPIOReadFunc	check_int_fast_func;	/* Custom IO functions */	PTPIOSendReq	sendreq_func;	PTPIOSendData	senddata_func;	PTPIOGetResp	getresp_func;	PTPIOGetData	getdata_func;	PTPIOGetResp	event_check;	PTPIOGetResp	event_wait;	/* Custom error and debug function */	PTPErrorFunc error_func;	PTPDebugFunc debug_func;	/* Data passed to above functions */	void *data;	/* ptp transaction ID */	uint32_t transaction_id;	/* ptp session ID */	uint32_t session_id;	/* internal structures used by ptp driver */	PTPObjectHandles handles;	PTPObjectInfo * objectinfo;	PTPDeviceInfo deviceinfo;};/* last, but not least - ptp functions */uint16_t ptp_usb_sendreq	(PTPParams* params, PTPContainer* req);uint16_t ptp_usb_senddata	(PTPParams* params, PTPContainer* ptp,				unsigned char *data, unsigned int size);uint16_t ptp_usb_getresp	(PTPParams* params, PTPContainer* resp);uint16_t ptp_usb_getdata	(PTPParams* params, PTPContainer* ptp, 				unsigned char **data);uint16_t ptp_usb_event_check	(PTPParams* params, PTPContainer* event);uint16_t ptp_usb_event_wait		(PTPParams* params, PTPContainer* event);uint16_t ptp_getdeviceinfo	(PTPParams* params, PTPDeviceInfo* deviceinfo);uint16_t ptp_opensession	(PTPParams *params, uint32_t session);uint16_t ptp_closesession	(PTPParams *params);uint16_t ptp_getstorageids	(PTPParams* params, PTPStorageIDs* storageids);uint16_t ptp_getstorageinfo 	(PTPParams* params, uint32_t storageid,				PTPStorageInfo* storageinfo);uint16_t ptp_getobjecthandles 	(PTPParams* params, uint32_t storage,				uint32_t objectformatcode,				uint32_t associationOH,				PTPObjectHandles* objecthandles);uint16_t ptp_getobjectinfo	(PTPParams *params, uint32_t handle,				PTPObjectInfo* objectinfo);uint16_t ptp_getobject		(PTPParams *params, uint32_t handle,				char** object);uint16_t ptp_getthumb		(PTPParams *params, uint32_t handle,				char** object);uint16_t ptp_deleteobject	(PTPParams* params, uint32_t handle,				uint32_t ofc);uint16_t ptp_sendobjectinfo	(PTPParams* params, uint32_t* store,				uint32_t* parenthandle, uint32_t* handle,				PTPObjectInfo* objectinfo);uint16_t ptp_sendobject		(PTPParams* params, char* object,				uint32_t size);uint16_t ptp_initiatecapture	(PTPParams* params, uint32_t storageid,				uint32_t ofc);uint16_t ptp_getdevicepropdesc	(PTPParams* params, uint16_t propcode,				PTPDevicePropDesc *devicepropertydesc);uint16_t ptp_getdevicepropvalue	(PTPParams* params, uint16_t propcode,				void** value, uint16_t datatype);uint16_t ptp_setdevicepropvalue (PTPParams* params, uint16_t propcode,                        	void* value, uint16_t datatype);uint16_t ptp_ek_sendfileobjectinfo (PTPParams* params, uint32_t* store,				uint32_t* parenthandle, uint32_t* handle,				PTPObjectInfo* objectinfo);uint16_t ptp_ek_sendfileobject	(PTPParams* params, char* object,				uint32_t size);				/* Canon PTP extensions */uint16_t ptp_canon_getobjectsize (PTPParams* params, uint32_t handle,				uint32_t p2, uint32_t* size, uint32_t* rp2);uint16_t ptp_canon_startshootingmode (PTPParams* params);uint16_t ptp_canon_endshootingmode (PTPParams* params);uint16_t ptp_canon_viewfinderon (PTPParams* params);uint16_t ptp_canon_viewfinderoff (PTPParams* params);uint16_t ptp_canon_reflectchanges (PTPParams* params, uint32_t p1);uint16_t ptp_canon_checkevent (PTPParams* params, 				PTPUSBEventContainer* event, int* isevent);uint16_t ptp_canon_focuslock (PTPParams* params);uint16_t ptp_canon_focusunlock (PTPParams* params);uint16_t ptp_canon_initiatecaptureinmemory (PTPParams* params);uint16_t ptp_canon_getpartialobject (PTPParams* params, uint32_t handle, 				uint32_t offset, uint32_t size,				uint32_t pos, char** block, 				uint32_t* readnum);uint16_t ptp_canon_getviewfinderimage (PTPParams* params, char** image,				uint32_t* size);uint16_t ptp_canon_getchanges (PTPParams* params, uint16_t** props,				uint32_t* propnum); uint16_t ptp_canon_getfolderentries (PTPParams* params, uint32_t store,				uint32_t p2, uint32_t parenthandle,				uint32_t handle, 				PTPCANONFolderEntry** entries,				uint32_t* entnum);/* Nikon extensions */uint16_t ptp_nikon_setcontrolmode (PTPParams* params, uint32_t mode);uint16_t ptp_nikon_directcapture (PTPParams* params, uint32_t unknown);uint16_t ptp_nikon_checkevent (PTPParams* params,				PTPUSBEventContainer** event, uint16_t* evnum);uint16_t ptp_nikon_keepalive (PTPParams* params);/* Non PTP protocol functions */int ptp_operation_issupported	(PTPParams* params, uint16_t operation);int ptp_property_issupported	(PTPParams* params, uint16_t property);void ptp_free_devicepropdesc	(PTPDevicePropDesc* dpd);void ptp_perror			(PTPParams* params, uint16_t error);const char*ptp_get_datatype_name		(PTPParams* params, uint16_t dt);const char*ptp_get_operation_name		(PTPParams* params, uint16_t oc);const char*ptp_prop_getname		(PTPParams* params, uint16_t dpc);/* Properties handling functions */const char* ptp_prop_getdesc	(PTPParams* params, PTPDevicePropDesc *dpd,					void *val);const char* ptp_prop_getdescbystring				(PTPParams* params,PTPDevicePropDesc *dpd,				const char *strval);const char * ptp_prop_tostr	(PTPParams* params, PTPDevicePropDesc *dpd,					void *val);uint16_t ptp_prop_getcodebyname	(PTPParams* params, char* propname);const char* ptp_prop_getvalbyname				(PTPParams* params, char* name, uint16_t dpc);#endif /* __PTP_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -