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

📄 ptp.h

📁 Media transfer protocol implementation on POSIX. Have detailed readme on how to move to windows
💻 H
📖 第 1 页 / 共 4 页
字号:
#define PTP_OPC_Duration				0xDC89#define PTP_OPC_Rating					0xDC8A#define PTP_OPC_Track					0xDC8B#define PTP_OPC_Genre					0xDC8C#define PTP_OPC_Credits					0xDC8D#define PTP_OPC_Lyrics					0xDC8E#define PTP_OPC_SubscriptionContentID			0xDC8F#define PTP_OPC_ProducedBy				0xDC90#define PTP_OPC_UseCount				0xDC91#define PTP_OPC_SkipCount				0xDC92#define PTP_OPC_LastAccessed				0xDC93#define PTP_OPC_ParentalRating				0xDC94#define PTP_OPC_MetaGenre				0xDC95#define PTP_OPC_Composer				0xDC96#define PTP_OPC_EffectiveRating				0xDC97#define PTP_OPC_Subtitle				0xDC98#define PTP_OPC_OriginalReleaseDate			0xDC99#define PTP_OPC_AlbumName				0xDC9A#define PTP_OPC_AlbumArtist				0xDC9B#define PTP_OPC_Mood					0xDC9C#define PTP_OPC_DRMStatus				0xDC9D#define PTP_OPC_SubDescription				0xDC9E#define PTP_OPC_IsCropped				0xDCD1#define PTP_OPC_IsColorCorrected			0xDCD2#define PTP_OPC_TotalBitRate				0xDE91#define PTP_OPC_BitRateType				0xDE92#define PTP_OPC_SampleRate				0xDE93#define PTP_OPC_NumberOfChannels			0xDE94#define PTP_OPC_AudioBitDepth				0xDE95#define PTP_OPC_ScanDepth				0xDE97#define PTP_OPC_AudioWAVECodec				0xDE99#define PTP_OPC_AudioBitRate				0xDE9A#define PTP_OPC_VideoFourCCCodec			0xDE9B#define PTP_OPC_VideoBitRate				0xDE9C#define PTP_OPC_FramesPerThousandSeconds		0xDE9D#define PTP_OPC_KeyFrameDistance			0xDE9E#define PTP_OPC_BufferSize				0xDE9F#define PTP_OPC_EncodingQuality				0xDEA0/* Device Property Form Flag */#define PTP_DPFF_None			0x00#define PTP_DPFF_Range			0x01#define PTP_DPFF_Enumeration		0x02/* Object Property Codes used by MTP (first 3 are same as DPFF codes) */#define PTP_OPFF_None			0x00#define PTP_OPFF_Range			0x01#define PTP_OPFF_Enumeration		0x02#define PTP_OPFF_DateTime		0x03#define PTP_OPFF_FixedLengthArray	0x04#define PTP_OPFF_RegularExpression	0x05#define PTP_OPFF_ByteArray		0x06#define PTP_OPFF_LongString		0xFF/* 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, unsigned int *readlen);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,					 int from_fd);typedef uint16_t (* PTPIOGetResp)	(PTPParams* params, PTPContainer* resp);typedef uint16_t (* PTPIOGetData)	(PTPParams* params, PTPContainer* ptp,	                                unsigned char **data, unsigned int *recvlen,	                                int to_fd);/* debug functions */typedef void (* PTPErrorFunc) (void *data, const char *format, va_list args)#if (__GNUC__ >= 3)	__attribute__((__format__(printf,2,0)))#endif;typedef void (* PTPDebugFunc) (void *data, const char *format, va_list args)#if (__GNUC__ >= 3)	__attribute__((__format__(printf,2,0)))#endif;struct _PTPParams {	/* data layer byteorder */	uint8_t		byteorder;	/* IO: Data layer IO functions */	PTPIOReadFunc	read_func;	PTPIOWriteFunc	write_func;	PTPIOReadFunc	check_int_func;	PTPIOReadFunc	check_int_fast_func;	/* PTP IO: 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;	/* PTP IO: if we have MTP style split header/data transfers */	int		split_header_data;	/* PTP: internal structures used by ptp driver */	PTPObjectHandles handles;	PTPObjectInfo	*objectinfo;	PTPDeviceInfo	deviceinfo;	/* PTP: Canon specific flags list */	uint32_t	*canon_flags; /* size(handles.n) */	/* PTP: Wifi profiles */	uint8_t 	wifi_profiles_version;	uint8_t		wifi_profiles_number;	PTPNIKONWifiProfile *wifi_profiles;	/* IO: PTP/IP related data */	int		cmdfd, evtfd;	uint8_t		cameraguid[16];	uint32_t	eventpipeid;	char		*cameraname;	/* PTP: iconv converters */	iconv_t	cd_locale_to_ucs2;	iconv_t cd_ucs2_to_locale;	/* IO: Sometimes the response packet get send in the dataphase	 * too. This only happens for a Samsung player now.	 */	uint8_t		*response_packet;	uint16_t	response_packet_size;};/* 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,				 int from_fd);uint16_t ptp_usb_getresp	(PTPParams* params, PTPContainer* resp);uint16_t ptp_usb_getdata	(PTPParams* params, PTPContainer* ptp, 				 unsigned char **data, unsigned int *readlen,	                         int to_fd);uint16_t ptp_usb_event_check	(PTPParams* params, PTPContainer* event);uint16_t ptp_usb_event_wait	(PTPParams* params, PTPContainer* event);int      ptp_ptpip_connect	(PTPParams* params, const char *port);uint16_t ptp_ptpip_sendreq	(PTPParams* params, PTPContainer* req);uint16_t ptp_ptpip_senddata	(PTPParams* params, PTPContainer* ptp,				unsigned char *data, unsigned int size,				int to_fd);uint16_t ptp_ptpip_getresp	(PTPParams* params, PTPContainer* resp);uint16_t ptp_ptpip_getdata	(PTPParams* params, PTPContainer* ptp, 				 unsigned char **data, unsigned int *readlen,	                         int to_fd);uint16_t ptp_ptpip_event_wait	(PTPParams* params, PTPContainer* event);uint16_t ptp_ptpip_event_check	(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_formatstore        (PTPParams* params, uint32_t storageid);uint16_t ptp_getobjecthandles 	(PTPParams* params, uint32_t storage,				uint32_t objectformatcode,				uint32_t associationOH,				PTPObjectHandles* objecthandles);uint16_t ptp_getnumobjects 	(PTPParams* params, uint32_t storage,				uint32_t objectformatcode,				uint32_t associationOH,				uint32_t* numobs);uint16_t ptp_getobjectinfo	(PTPParams *params, uint32_t handle,				PTPObjectInfo* objectinfo);uint16_t ptp_getobject		(PTPParams *params, uint32_t handle,				unsigned char** object);uint16_t ptp_getobject_tofd     (PTPParams* params, uint32_t handle, int fd);uint16_t ptp_getpartialobject	(PTPParams* params, uint32_t handle, uint32_t offset,				uint32_t maxbytes, unsigned char** object);uint16_t ptp_getthumb		(PTPParams *params, uint32_t handle,				unsigned 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, unsigned char* object,				 uint32_t size);uint16_t ptp_sendobject_fromfd  (PTPParams* params, int fd, 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,				PTPPropertyValue* value, uint16_t datatype);uint16_t ptp_setdevicepropvalue (PTPParams* params, uint16_t propcode,                        	PTPPropertyValue* value, uint16_t datatype);/* 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, 				PTPPropertyValue *value, uint16_t datatype);uint16_t ptp_mtp_setobjectpropvalue (PTPParams* params, uint32_t oid, uint16_t opc,				PTPPropertyValue *value, uint16_t datatype);uint16_t ptp_mtp_getobjectreferences (PTPParams* params, uint32_t handle, uint32_t** ohArray, uint32_t* arraylen);uint16_t ptp_mtp_setobjectreferences (PTPParams* params, uint32_t handle, uint32_t* ohArray, uint32_t arraylen);uint16_t ptp_mtp_getobjectproplist (PTPParams* params, uint32_t handle, MTPPropList **proplist);uint16_t ptp_mtp_sendobjectproplist (PTPParams* params, uint32_t* store, uint32_t* parenthandle, uint32_t* handle,				     uint16_t objecttype, uint64_t objectsize, MTPPropList *proplist);/* Eastman Kodak extensions */uint16_t ptp_ek_9007 (PTPParams* params, unsigned char **serial, unsigned int *size);uint16_t ptp_ek_9009 (PTPParams* params, uint32_t*, uint32_t*);uint16_t ptp_ek_900c (PTPParams* params, unsigned char **serial, unsigned int *size);uint16_t ptp_ek_getserial (PTPParams* params, unsigned char **serial, unsigned int *size);uint16_t ptp_ek_setserial (PTPParams* params, unsigned char *serial, uint32_t size);uint16_t ptp_ek_settext (PTPParams* params, PTPEKTextParams *text);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, unsigned char* object,				uint32_t size);/* Canon PTP extensions */uint16_t ptp_canon_9012 (PTPParams* params);uint16_t ptp_canon_initiate_direct_transfer (PTPParams* params, uint32_t* out);uint16_t ptp_canon_get_target_handles (PTPParams* params, PTPCanon_directtransfer_entry**, unsigned int*cnt);uint16_t ptp_canon_getpartialobjectinfo (PTPParams* params, uint32_t handle,				uint32_t p2, uint32_t* size, uint32_t* rp2);uint16_t ptp_canon_get_mac_address (PTPParams* params, unsigned char **mac);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_aeafawb (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, 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); uint16_t ptp_canon_getobjectinfo (PTPParams* params, uint32_t store,				uint32_t p2, uint32_t parenthandle,				uint32_t handle, 				PTPCANONFolderEntry** entries,				uint32_t* entnum);uint16_t ptp_canon_get_objecthandle_by_name (PTPParams* params, char* name, uint32_t* objectid);uint16_t ptp_canon_get_directory (PTPParams* params, PTPObjectHandles *handles, PTPObjectInfo **oinfos, uint32_t **flags);uint16_t ptp_canon_setobjectarchive (PTPParams* params, uint32_t oid, uint32_t flags);uint16_t ptp_canon_get_customize_data (PTPParams* params, uint32_t themenr,				unsigned char **data, unsigned int *size);uint16_t ptp_nikon_curve_download (PTPParams* params, 				unsigned char **data, unsigned int *size);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_nikon_deletewifiprofile (PTPParams* params, uint32_t profilenr);uint16_t ptp_nikon_setcontrolmode (PTPParams* params, uint32_t mode);uint16_t ptp_nikon_capture (PTPParams* params, uint32_t x);uint16_t ptp_nikon_check_event (PTPParams* params, PTPUSBEventContainer **evt, int *evtcnt);uint16_t ptp_nikon_getfileinfoinblock (PTPParams* params, uint32_t p1, uint32_t p2, uint32_t p3,					unsigned char **data, unsigned int *size);uint16_t ptp_nikon_device_ready (PTPParams* params);uint16_t ptp_mtp_getobjectpropssupported (PTPParams* params, uint16_t ofc, uint32_t *propnum, uint16_t **props);/* Non PTP protocol functions */int ptp_operation_issupported	(PTPParams* params, uint16_t operation);int ptp_event_issupported	(PTPParams* params, uint16_t event);int ptp_property_issupported	(PTPParams* params, uint16_t property);void ptp_free_devicepropdesc	(PTPDevicePropDesc* dpd);void ptp_free_devicepropvalue	(uint16_t dt, PTPPropertyValue* dpd);void ptp_free_objectpropdesc	(PTPObjectPropDesc* dpd);void ptp_perror			(PTPParams* params, uint16_t error);const char*ptp_get_property_description(PTPParams* params, uint16_t dpc);intptp_render_property_value(PTPParams* params, uint16_t dpc,                          PTPDevicePropDesc *dpd, int length, char *out);int ptp_render_ofc(PTPParams* params, uint16_t ofc, int spaceleft, char *txt);int ptp_render_opcode(PTPParams* params, uint16_t opcode, int spaceleft, char *txt);int ptp_render_mtp_propname(uint16_t propid, int spaceleft, char *txt);/* ptpip.c */void ptp_nikon_getptpipguid (unsigned char* guid);#endif /* __PTP_H__ */

⌨️ 快捷键说明

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