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

📄 msptp.h

📁 MSTAR03的数码相框的代码
💻 H
字号:
#ifndef __MSPTP_H
#define __MSPTP_H

#define PTP_CMD_BUFFER_SIZE 0x100
#define PTP_REP_BUFFER_SIZE 0x100
#define PTP_EVT_BUFFER_SIZE 0x100
#define PTP_DAT_BUFFER_SIZE 0x1000
#define PTP_TRANSFER_SIZE0  0x200 //0x800
#define PTP_TRANSFER_SIZE   0x1000 //0x800

#define PB_PTPCMDADDR PB_DMA_START_ADDR
#define PB_PTPREPADDR PB_PTPCMDADDR+PTP_CMD_BUFFER_SIZE
#define PB_PTPEVTADDR PB_PTPREPADDR+PTP_REP_BUFFER_SIZE
#define PB_PTPDATADDR PB_PTPEVTADDR+PTP_EVT_BUFFER_SIZE

extern __u16 volatile pbCmd_Addr;
extern __u16 volatile pbResp_Addr;
extern __u16 volatile pbEvent_Addr;
extern __u16 volatile pbData_Addr;
//extern __u8  GetPartHeaderTransfer;
extern __u8 volatile pbDPSDisvCompFlag;
//extern __u8 volatile errorhappen;
//extern __u32 volatile counter1;
//extern __u32 volatile counter2;



typedef struct {
        __u32   StorageID;
        __u16	ObjectFormat;
        __u16	ProtectionStatus;
        __u32   ObjectCompressSize;
        __u16   ThumbFormat;
        __u32	ThumbCompressSize;
        __u32	ThumbPixWidth;
        __u32   ThumbPixHeight;
        __u32   ImagePixWidth;
        __u32	ImagePixHeight;
        __u32	ImageBitDepth;
        __u32   ParentObject;
        __u16   AssociationType;
        __u32	AssociationDesc;
        __u32	SequenceNumber;
} Obj_Info;

typedef struct {
        __u32   Length;
        __u16	Type;
        __u16	OPCode;
        __u32   TransactionID;
        __u32	Param1;
        __u32	Param2;
        __u32   Param3;
} GCS;


#define _MemoryCard_Source_Place 0
#define _BaseBand_Source_Place 1

#define PTP_OP_GetDevInfo 0x1001
#define PTP_OP_OpenSession 0x1002
#define PTP_OP_CloseSession 0x1003
#define PTP_OP_GetStorageIDs 0x1004
#define PTP_OP_GetStorageInfo 0x1005
#define PTP_OP_GetNumObjects 0x1006
#define PTP_OP_GetObjectHandles 0x1007
#define PTP_OP_GetObjectInfo 0x1008
#define PTP_OP_GetObject 0x1009
#define PTP_OP_GetThumb 0x100A
#define PTP_OP_SendObjectInfo 0x100C
#define PTP_OP_SendObject 0x100D
#define PTP_OP_GetPartialObject 0x101B

#define PTP_Rep_OK 0x2001
#define PTP_Rep_SessionNotOpen 0x2003
#define PTP_Rep_InvalidTransID 0x2004
#define PTP_Rep_OperNotSupport 0x2005
#define PTP_Rep_ParNotSupport 0x2006
#define PTP_Rep_IncompleteTrans 0x2007
#define PTP_Rep_InvalidStorID 0x2008
#define PTP_Rep_InvalidObjHandle 0x2009
#define PTP_Rep_InvalidObjFormat 0x200B
#define PTP_Rep_StoreFull 0x200C
#define PTP_Rep_StoreReadOnly 0x200E
#define PTP_Rep_AccessDenied 0x200F
#define PTP_Rep_NoThumPresent 0x2010
#define PTP_Rep_StoreNotAvailable 0x2013
#define PTP_Rep_FormatNotSupport 0x2014
#define PTP_Rep_NoValidObjInfo 0x2015
#define PTP_Rep_InvalidCodeFormat 0x2016
#define PTP_Rep_DeviceBusy 0x2019
#define PTP_Rep_InvalidParentObj 0x201A
#define PTP_Rep_InvalidParameter 0x201D
#define PTP_Rep_SessionAlreadyOpen 0x201E

#define PTP_EVT_ObjectAdded 0x4002
#define PTP_EVT_ObjectRemoved 0x4003
#define PTP_EVT_StoreAdded 0x4004
#define PTP_EVT_StoreRemoved 0x4005
#define PTP_EVT_ObjectInfoChanged 0x4007
#define PTP_EVT_ReqObjTrans 0x4009
#if 1
#define Paper_Sizes_Default   0x00000001
#define Paper_Types_Default   0x00000001
#define Paper_Layout_Default  0x00000001

extern __u8 volatile pbDPSJobErrReason;
extern __u8 volatile pbDPSSevSts;
#endif

extern __u8 pbCmdBlock[];
extern __u8 pbRepBlock[];
extern __u8 pbEvtBlock[];
extern __u8 pbDataBlock[];

extern __u32 volatile pbDPSConfPntSevSize;
extern __u32 volatile pbDPSGetDevStsSize;
extern __u32 volatile pbDPSStartJobSize;
extern __u32 volatile pbDPSAbortJobSize;
extern __u32 volatile pbDPSContinueJobSize;
extern __u32 volatile pbDPSDevStsSize;
extern __u32 volatile pbDPSJobStsSize;
//extern __u8 volatile pbDPSGetDevStsFlag;
extern __u8 volatile pbDPSStartJobFlag;

void pbDPSInitFlag(void);
void pbDPSSetGCS(void);
void pbDPSRespBlock(__u16 Response_Type,__u16 Response_Sts);
void pbDPSGetDevInfoCmd(void);
void pbDPSOpenSessCmd(void);
void pbDPSGetNumObjCmd(void);
void pbDPSGetObjHdlCmd(void);
void pbDPSGetObjInfoCmd(__u8 Objtype,__u32 Objsize,__u32 StorID);
int pbDPSGetObjInfoFileCmd(void);
int pbDPSSndObjInfoCmd(__u8 Objtype);
int pbDPSSndObjInCmd(void);
int pbDPSSndObjOutCmd(__u8 DPS_Type);
void pbDPSObjAdded(void);
void pbDPSReqObjTran(void);
void pbDPSObjRem(void);
void pbDPSGetObjCmd(__u8 Optype);
int pbDPSGetPartObjCmd(void);
void pbDPSGetThumbCmd(__u32 ThumbLength);
void pbInitPictureBridge(void);
#ifdef BIG_ENDIAN
__u16 pbReadhw(__u16 addr);
void pbWritehw(__u16 addr,__u16 x);
unsigned long pbReadw(__u16 addr);
void pbWritew(__u16 addr,unsigned long x);
#endif
#endif /* __MSPTP_H */

⌨️ 快捷键说明

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