ptp.h
来自「AMLOGIC DPF source code」· C头文件 代码 · 共 914 行 · 第 1/3 页
H
914 行
#define PTP_DPC_NIKON_ColourMode 0xD02c
#define PTP_DPC_NIKON_HueAdjustment 0xD02d
#define PTP_DPC_NIKON_NonCPULensDataFocalLength 0xD02e
#define PTP_DPC_NIKON_NonCPULensDataMaximumAperature 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_A6FocusArea 0xD04f
#define PTP_DPC_NIKON_A7VerticalAFON 0xD050
#define PTP_DPC_NIKON_B1ISOAuto 0xD054
#define PTP_DPC_NIKON_B2ISOStep 0xD055
#define PTP_DPC_NIKON_B3EVStep 0xD056
#define PTP_DPC_NIKON_B4ExposureCompEv 0xD057
#define PTP_DPC_NIKON_B5ExposureComp 0xD058
#define PTP_DPC_NIKON_B6CenterWeightArea 0xD059
#define PTP_DPC_NIKON_C1AELock 0xD05e
#define PTP_DPC_NIKON_C2AELAFL 0xD05f
#define PTP_DPC_NIKON_C3AutoMeterOff 0xD062
#define PTP_DPC_NIKON_C4SelfTimer 0xD063
#define PTP_DPC_NIKON_C5MonitorOff 0xD064
#define PTP_DPC_NIKON_D1ShootingSpeed 0xD068
#define PTP_DPC_NIKON_D2MaximumShots 0xD069
#define PTP_DPC_NIKON_D3ExpDelayMode 0xD06a
#define PTP_DPC_NIKON_D4LongExposureNoiseReduction 0xD06b
#define PTP_DPC_NIKON_D5FileNumberSequence 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_E2FlashShutterSpeed 0xD075
#define PTP_DPC_NIKON_E3AAFlashMode 0xD076
#define PTP_DPC_NIKON_E4ModelingFlash 0xD077
#define PTP_DPC_NIKON_E5AutoBracketySet 0xD078
#define PTP_DPC_NIKON_E6ManualModeBracketing 0xD079
#define PTP_DPC_NIKON_E7AutoBracketOrder 0xD07a
#define PTP_DPC_NIKON_E8AutoBracketSelection 0xD07b
#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_ChangeMainSub 0xD086
#define PTP_DPC_NIKON_AperatureSetting 0xD087
#define PTP_DPC_NIKON_MenusAndPlayback 0xD088
#define PTP_DPC_NIKON_F6ButtonsAndDials 0xD089
#define PTP_DPC_NIKON_F7NoCFCard 0xD08a
#define PTP_DPC_NIKON_AutoImageRotation 0xD092
#define PTP_DPC_NIKON_ExposureBracketingOnOff 0xD0c0
#define PTP_DPC_NIKON_ExposureBracketingIntervalDist 0xD0c1
#define PTP_DPC_NIKON_ExposureBracketingNumBracketPlace 0xD0c2
#define PTP_DPC_NIKON_AutofocusLCDTopMode2 0xD107
#define PTP_DPC_NIKON_AutofocusLCDTopMode3AndMode4 0xD108
#define PTP_DPC_NIKON_LightMeter 0xD10a
#define PTP_DPC_NIKON_ExposureAperatureLock(ReadOnly) 0xD111
#define PTP_DPC_NIKON_MaximumShots 0xD103
/* 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);
typedef enum {
PTP_INIT,
PTP_READY,
PTP_CMD,
PTP_DATA,
PTP_RES
} ptp_device_state_e;
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;
ptp_device_state_e state;
uint32_t cur_handle;
uint32_t cur_offset;
uint32_t read_offset; //read offset
uint32_t cur_size; //data size of current object
uint16_t packet_size; //data packet size of usb device
/* internal structures used by ptp driver */
PTPObjectHandles handles;
PTPStorageIDs storages; //add by Andrew
PTPObjectInfo * objectinfo;
PTPDeviceInfo deviceinfo;
struct _PTPUSBBulkContainer bulkcontainer; //add by wanyong
};
typedef struct ptp_device_s {
struct list_head head;
struct usb_endpoint_descriptor *ep_in; /* bulk in endpoint */
struct usb_endpoint_descriptor *ep_out; /* bulk out endpoint */
struct usb_endpoint_descriptor *ep_int; /* interrupt endpoint */
__u8 dev_id;
usb_device_t *dev; //usb device
struct _PTPParams params;
__u8 partialSupport;
__u8* rwbuffer; /* use in unalignment data read/write */
int rwbuffersize;
#ifdef AVOS
avfs_device_major_number major;
avfs_device_minor_number minor;
char * dev_name;
#endif
} ptp_device_t;
/* 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_getstorageids (PTPParams* params, PTPStorageIDs* storageids);
uint16_t ptp_getstorageinfo (PTPParams* params, uint32_t storageid,PTPStorageInfo* storageinfo);
uint16_t ptp_getnumobjects (PTPParams* params, uint32_t storageid,uint32_t objectformatcode,
uint32_t associationOH, uint32_t* numobjects);
uint16_t ptp_getthumb (PTPParams* params, uint32_t handle, char** object);
#ifdef PTP_EXTENTION
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_getviewfinderptp (PTPParams* params, char** ptp,
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);
#endif //PTP_EXTENTION
/* Non PTP protocol functions */
int ptp_operation_issupported (PTPParams* params, uint16_t operation);
int ptp_property_issupported (PTPParams* params, uint16_t property);
void ptp_perror (PTPParams* params, uint16_t error);
const char*
ptp_get_operation_name (PTPParams* params, uint16_t oc);
const char*
ptp_get_property_name (PTPParams* params, uint16_t dpc);
//add by Andrew
void ptp_free_devicepropdesc (PTPDevicePropDesc* dpd);
void ptp_free_dev_info(PTPDeviceInfo* ptr, int self);
void ptp_free_obj_handles(PTPObjectHandles* ptr);
void ptp_free_obj_info(PTPObjectInfo* ptr);
uint16_t ptp_get_object_cmd(PTPParams* params,unsigned handle);
uint16_t ptp_get_object_data(PTPParams* params, unsigned handle, char *buffer,
unsigned offset, unsigned size, unsigned *act_len);
uint16_t ptp_get_partial_object(PTPParams* params, unsigned handle, char *buffer,
unsigned offset, unsigned size, unsigned *act_len);
uint16_t ptp_get_object_res(PTPParams* params, unsigned handle);
uint16_t ptp_ek_get_labelcategorybookinfo (PTPParams* params,
PTPKodakLabelCategoryBookInfo * labelinfo);
#endif /* __PTP_H__ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?