1 //<MStar Software> 2 //****************************************************************************** 3 // MStar Software 4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved. 5 // All software, firmware and related documentation herein ("MStar Software") are 6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by 7 // law, including, but not limited to, copyright law and international treaties. 8 // Any use, modification, reproduction, retransmission, or republication of all 9 // or part of MStar Software is expressly prohibited, unless prior written 10 // permission has been granted by MStar. 11 // 12 // By accessing, browsing and/or using MStar Software, you acknowledge that you 13 // have read, understood, and agree, to be bound by below terms ("Terms") and to 14 // comply with all applicable laws and regulations: 15 // 16 // 1. MStar shall retain any and all right, ownership and interest to MStar 17 // Software and any modification/derivatives thereof. 18 // No right, ownership, or interest to MStar Software and any 19 // modification/derivatives thereof is transferred to you under Terms. 20 // 21 // 2. You understand that MStar Software might include, incorporate or be 22 // supplied together with third party`s software and the use of MStar 23 // Software may require additional licenses from third parties. 24 // Therefore, you hereby agree it is your sole responsibility to separately 25 // obtain any and all third party right and license necessary for your use of 26 // such third party`s software. 27 // 28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as 29 // MStar`s confidential information and you agree to keep MStar`s 30 // confidential information in strictest confidence and not disclose to any 31 // third party. 32 // 33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any 34 // kind. Any warranties are hereby expressly disclaimed by MStar, including 35 // without limitation, any warranties of merchantability, non-infringement of 36 // intellectual property rights, fitness for a particular purpose, error free 37 // and in conformity with any international standard. You agree to waive any 38 // claim against MStar for any loss, damage, cost or expense that you may 39 // incur related to your use of MStar Software. 40 // In no event shall MStar be liable for any direct, indirect, incidental or 41 // consequential damages, including without limitation, lost of profit or 42 // revenues, lost or damage of data, and unauthorized system use. 43 // You agree that this Section 4 shall still apply without being affected 44 // even if MStar Software has been modified by MStar in accordance with your 45 // request or instruction for your use, except otherwise agreed by both 46 // parties in writing. 47 // 48 // 5. If requested, MStar may from time to time provide technical supports or 49 // services in relation with MStar Software to you for your use of 50 // MStar Software in conjunction with your or your customer`s product 51 // ("Services"). 52 // You understand and agree that, except otherwise agreed by both parties in 53 // writing, Services are provided on an "AS IS" basis and the warranty 54 // disclaimer set forth in Section 4 above shall apply. 55 // 56 // 6. Nothing contained herein shall be construed as by implication, estoppels 57 // or otherwise: 58 // (a) conferring any license or right to use MStar name, trademark, service 59 // mark, symbol or any other identification; 60 // (b) obligating MStar or any of its affiliates to furnish any person, 61 // including without limitation, you and your customers, any assistance 62 // of any kind whatsoever, or any information; or 63 // (c) conferring any license or right under any intellectual property right. 64 // 65 // 7. These terms shall be governed by and construed in accordance with the laws 66 // of Taiwan, R.O.C., excluding its conflict of law rules. 67 // Any and all dispute arising out hereof or related hereto shall be finally 68 // settled by arbitration referred to the Chinese Arbitration Association, 69 // Taipei in accordance with the ROC Arbitration Law and the Arbitration 70 // Rules of the Association by three (3) arbitrators appointed in accordance 71 // with the said Rules. 72 // The place of arbitration shall be in Taipei, Taiwan and the language shall 73 // be English. 74 // The arbitration award shall be final and binding to both parties. 75 // 76 //****************************************************************************** 77 //<MStar Software> 78 /********************************************************************* 79 * HEADER NAME: 80 * drvUSBHost_PTP.h 81 * 82 * Written by Derek.Horng@MSTAR Inc. 83 *--------------------------------------------------------------------- 84 * 85 * Initial revision. 86 *********************************************************************/ 87 #ifndef DRVUSBHOST_PTP_H 88 #define DRVUSBHOST_PTP_H 89 90 #include "../../include/drvUsbPTPLib.h" 91 92 /*-------------------------------------------------------------------- 93 GENERAL INCLUDES 94 --------------------------------------------------------------------*/ 95 96 97 /*-------------------------------------------------------------------- 98 LITERAL CONSTANTS 99 --------------------------------------------------------------------*/ 100 // USB interface class 101 #define USB_CLASS_IMAGE_INTERFACE 0x06 102 // interface subclass 103 #define USB_STILL_IMAGE_CAPTURE_DEVICE 0x01 104 // interface protocol 105 #define USB_PIMA15740 0x01 106 107 #define INVALID_HANDLE_NO 0xFFFFFFFF 108 109 /*-------------------------------------------------------------------- 110 TYPES 111 --------------------------------------------------------------------*/ 112 //------------------------------------------- 113 // The stucture define var 114 // should be assigned by us 115 //------------------------------------------ 116 typedef struct _ASSIGNVAR { 117 118 U16 u16OpCode; 119 U32 u32TransId; 120 U32 u32Buf; 121 U32 u32Param1; 122 U32 u32Param2; 123 U32 u32Param3; 124 } ASSIGNVAR, *PASSIGNVAR; 125 126 //----------------------------------------------------- 127 // The stucture define variable 128 // will dynamic change from the data fetting from DSC 129 //----------------------------------------------------- 130 typedef struct _DYMNVAR { 131 132 //U8 u8FileName[8]; 133 //U8 u8ExtName [4]; 134 U16 u16FileName[13]; 135 U16 u16FileType; 136 137 U32 u32DataLen; 138 U32 u32StorageId; 139 U32 u32FileLength; 140 U32 u32FileOffset; 141 U32 u32DramAddr; 142 U32 ImagePixWidth; 143 U32 ImagePixHeight; 144 //------------------------------------------------------- 145 // In current status we do not get every Handle from DSC 146 // We get the HandlNum and First Handle ID the seq add 147 // the Handle ID ---> for saving memory 148 //------------------------------------------------------- 149 //U32 u32HandleNum; 150 U32 u32HandleId; 151 struct _DATETIME sDateTime; 152 U16 u16ThumbFormat; 153 U32 u32ThumbSize; 154 U32 u32ThumbPixWidth; 155 U32 u32ThumbPixHeight; 156 U32 u32ParentObject; 157 } DYMNVAR, *PDYMNVAR; 158 159 160 161 typedef struct PTP_CONTAINER{ 162 U32 u32ConLen; 163 U16 u16ConType; 164 U16 u16OpCode; 165 U32 u32TransActionID; 166 U32 u32Param1; 167 U32 u32Param2; 168 U32 u32Param3; 169 }OTGH_PTP_CONTAINER; 170 171 172 typedef struct _PTP_DRIVER { 173 U32 u32CapacityH; 174 U32 u32CapacityL; 175 U32 u32FreeSpaceH; 176 U32 u32FreeSpaceL; 177 U32 u32FirstFileHandleNo; 178 U32 u32TotalHandleNo; 179 U32 u32FirstHandleNo; 180 U32 u32CurHandleIdx; 181 U32 u32ObjectHandleNumBuf; 182 }HOST_PTP_DRIVER; 183 184 /*-------------------------------------------------------------------- 185 PROJECT INCLUDES 186 --------------------------------------------------------------------*/ 187 188 /*-------------------------------------------------------------------- 189 MEMORY CONSTANTS 190 --------------------------------------------------------------------*/ 191 192 /*-------------------------------------------------------------------- 193 VARIABLES 194 --------------------------------------------------------------------*/ 195 196 /*-------------------------------------------------------------------- 197 MACROS 198 --------------------------------------------------------------------*/ 199 200 /*-------------------------------------------------------------------- 201 PROCEDURES 202 --------------------------------------------------------------------*/ 203 U8 drvUSBHost_PTP_SendOpCode(ASSIGNVAR xdata *pAssignVar,DYMNVAR xdata *pDymnVar); 204 void drvUSBHost_PTP_BulkInData (ASSIGNVAR xdata *pAssignVar,DYMNVAR xdata *pDymnVar); 205 void drvUSBHost_PTP_Read1stBulkIn(ASSIGNVAR xdata *pAssignVar,DYMNVAR xdata *pDymnVar); 206 void drvUSBHost_PTP_ReadRemBulkIn(ASSIGNVAR xdata *pAssignVar,DYMNVAR xdata *pDymnVar ); 207 U8 drvUSBHost_PTP_BulkInResponse(void); 208 U8 drvUSBHost_PTP_Initial(void); 209 //DYMNVAR *drvUSBHost_PTP_GetCurObjectInfo(void); 210 DYMNVAR *drvUSBHost_PTP_GetObjectInfo(U32 u32HandleNo ); 211 //DYMNVAR *drvUSBHost_PTP_GetFirstFileObjectInfo(void); 212 //DYMNVAR *drvUSBHost_PTP_GetNextFileObjectInfo(void); 213 //DYMNVAR *drvUSBHost_PTP_GetPrevFileObjectInfo(void); 214 //U32 drvUSBHost_PTP_GetPartialObject(U32 u32TotalSize,U32 u32HandleIdx,U32 u32FileOffset,U32 u32Length,U32 u32DRAMAddr); 215 void drvUSBHost_PTP_GetBulkIn(DYMNVAR xdata *pDymnVar); 216 //U32 drvUSBHost_PTP_GetFreeSpace(void); 217 U32 drvUSBHost_PTP_GetObjectHandleNo(U32 u32HandleIdx); 218 void drvUSBHost_PTP_SaveObjectHandleNo(U32 u32HandleIdx,U32 u32HandleNo); 219 U32 drvUSBHost_PTP_GetObjectHandles(U16 u16ObjFormat, U32 u32AssociObjHandle); 220 //U32 drvUSBHost_PTP_GetThumbnail(U32 u32TotalSize,U32 u32HandleIdx,U32 u32FileOffset,U32 u32Length,U32 u32DRAMAddr); 221 #endif //DRVUSBHOST_PTP_H 222