📄 srcfilter.c
字号:
#ifdef SUPPORT_ATAPI_SOURCE case SOURCE_ATAPI: bResult = ATAPI_GetTrackInfo(bTrackNum, pTrackCtl, pStartPos); break;#endif#ifdef SUPPORT_SERVO_SOURCE case SOURCE_SERVO: bResult = SERVO_GetTrackInfo(bTrackNum, pTrackCtl, pStartPos); break;#endif default: //printf{("Invalid Source\n"); } return bResult;}BYTE SrcFilter_ReadTOC( BYTE bTemp){ BYTE bResult = FALSE; switch (GET_SOURCE_ID(__dwSFStreamID)) {#ifdef SUPPORT_ATAPI_SOURCE case SOURCE_ATAPI: bResult = ATAPI_ReadTOC(bTemp); break;#endif#ifdef SUPPORT_SERVO_SOURCE case SOURCE_SERVO: bResult = SERVO_ReadTOC(bTemp); break;#endif default: //printf{("Invalid Source\n"); } return bResult; }/*--Brian1.15 // CoCo, reduce code size.BYTE SrcFilter_Monitor(){ //if (__bSFSourceID == SOURCE_ATAPI) // { // return TRUE; // return ATAPI_Monitor(); // } // do nothing, should remove this function return TRUE;}*//*Brian1.15 // CoCo, reduce code size.BYTE SrcFilter_CheckDiscEnding(){ BYTE bResult = FALSE; switch (GET_SOURCE_ID(__dwSFStreamID)) {#ifdef SUPPORT_ATAPI_SOURCE case SOURCE_ATAPI: bResult = ATAPI_CheckDiscEnding(); break;#endif#ifdef SUPPORT_SERVO_SOURCE case SOURCE_SERVO: bResult = SERVO_CheckDiscEnding(); break;#endif default: //printf{("Invalid Source\n"); } return bResult; }*//*Brian1.15 // CoCo, reduce code size.// **********************************************************BYTE SrcFilter_ReadDiscKey(){ BYTE bResult = FALSE; switch (GET_SOURCE_ID(__dwSFStreamID)) {#ifdef SUPPORT_ATAPI_SOURCE case SOURCE_ATAPI: bResult = ATAPI_ReadDiscKey(); break;#endif#ifdef SUPPORT_SERVO_SOURCE case SOURCE_SERVO: bResult = SERVO_ReadDiscKey(); break;#endif default: //printf{("Invalid Source\n"); } return bResult; }*/WORD SrcFilter_GetDiscType(){ switch (GET_SOURCE_ID(__dwSFStreamID)) {#ifdef SUPPORT_ATAPI_SOURCE case SOURCE_ATAPI: return ATAPI_GetDiscType(); break;#endif#ifdef SUPPORT_SERVO_SOURCE case SOURCE_SERVO: return SERVO_GetDiscType(); break;#endif default: //printf{("Invalid Source\n"); } return BOOK_UNKNOW; }BYTE SrcFilter_CheckTrayStatus(void){ BYTE bResult = SRC_TRAY_CLOSED; switch (GET_SOURCE_ID(__dwSFStreamID)) {#ifdef SUPPORT_ATAPI_SOURCE case SOURCE_ATAPI: bResult = ATAPI_CheckTrayStatus(); break;#endif#ifdef SUPPORT_SERVO_SOURCE case SOURCE_SERVO: bResult = SERVO_CheckTrayStatus(); break;#endif default: //printf{("Invalid Source\n"); } return bResult;}BOOL SrcFilter_EnableRunning ( BYTE bGo ){ return FALSE;}// wyc1.06-909, support SERVO resume function from STOP mode.BYTE SrcFilter_Seek (DWORD dwSeekLBA, BYTE bResumeRead){ BYTE bResult = FALSE; switch (GET_SOURCE_ID(__dwSFStreamID)) {#ifdef SUPPORT_ATAPI_SOURCE case SOURCE_ATAPI: bResult = ATAPI_Seek(dwSeekLBA, bResumeRead); break;#endif#ifdef SUPPORT_SERVO_SOURCE case SOURCE_SERVO: bResult = SERVO_Seek( (ULONG_UNION) dwSeekLBA, bResumeRead ); break;#endif default: //printf{("Invalid Source\n"); } // wyc1.06-909, seek will wake up source, so need to set __bSFSourcePWDown to FALSE. __bSFSourcePWDown = FALSE; return bResult;}BYTE SrcFilter_ReadTitleKey(DWORD dwSectorNumber, BYTE bStore){ BYTE bResult = FALSE; switch (GET_SOURCE_ID(__dwSFStreamID)) {#ifdef SUPPORT_ATAPI_SOURCE case SOURCE_ATAPI: bResult = ATAPI_ReadTitleKey(dwSectorNumber, bStore); break;#endif#ifdef SUPPORT_SERVO_SOURCE case SOURCE_SERVO: bResult = SERVO_ReadTitleKey(dwSectorNumber, bStore); break;#endif default: //printf{("Invalid Source\n"); } return bResult; }BYTE SrcFilter_GetTrackEnd(BYTE bTrackNum, PDWORD pLength){ BYTE bResult = FALSE; switch (GET_SOURCE_ID(__dwSFStreamID)) {#ifdef SUPPORT_ATAPI_SOURCE case SOURCE_ATAPI: bResult = ATAPI_GetTrackEnd(bTrackNum, pLength); break;#endif#ifdef SUPPORT_SERVO_SOURCE case SOURCE_SERVO: bResult = SERVO_GetTrackEnd(bTrackNum, pLength); break;#endif default: //printf{("Invalid Source\n"); } return bResult;}BYTE SrcFilter_SetTitleKey(BYTE bStore){ BYTE bResult = FALSE; switch (GET_SOURCE_ID(__dwSFStreamID)) {#ifdef SUPPORT_ATAPI_SOURCE case SOURCE_ATAPI: bResult = ATAPI_SetTitleKey(bStore); break;#endif#ifdef SUPPORT_SERVO_SOURCE case SOURCE_SERVO: bResult = SERVO_SetTitleKey(bStore); break;#endif default: //printf{("Invalid Source\n"); } return bResult; }BYTE SrcFilter_ResetRecover (BYTE bNeedStable){ BYTE bResult = FALSE; switch (GET_SOURCE_ID(__dwSFStreamID)) {#ifdef SUPPORT_ATAPI_SOURCE case SOURCE_ATAPI: bResult = ATAPI_ResetRecover(bNeedStable); break;#endif#ifdef SUPPORT_SERVO_SOURCE case SOURCE_SERVO: /* Brian1.15 // CoCo, reduce code size. bResult = SERVO_ResetRecover(bNeedStable); break; */ return FALSE; //Brian1.15 // CoCo, reduce code size.#endif default: //printf{("Invalid Source\n"); } return bResult; }BYTE SrcFilter_GetDiscLength(PDWORD pLength){ BYTE bResult = FALSE; switch (GET_SOURCE_ID(__dwSFStreamID)) {#ifdef SUPPORT_ATAPI_SOURCE case SOURCE_ATAPI: bResult = ATAPI_GetDiscLength(pLength); break;#endif#ifdef SUPPORT_SERVO_SOURCE case SOURCE_SERVO: bResult = SERVO_GetDiscLength(pLength); break;#endif default: //printf{("Invalid Source\n"); } return bResult; }BYTE SrcFilter_Abort(void){ BYTE bResult = FALSE; switch (GET_SOURCE_ID(__dwSFStreamID)) {#ifdef SUPPORT_ATAPI_SOURCE case SOURCE_ATAPI: bResult = ATAPI_Abort(); break;#endif#ifdef SUPPORT_SERVO_SOURCE case SOURCE_SERVO: bResult = SERVO_Abort(); break;#endif // wyc1.01-909, add USB source function in srcfilter.#ifdef SUPPORT_USB_SOURCE case SOURCE_USB0_0: bResult = USBSRC_Abort(); break;#endif default: //printf{("Invalid Source\n"); } return bResult;}BYTE SrcFilter_GetStatus(BYTE bSrcIndex){ BYTE bResult = FALSE; if (bSrcIndex == 0xFF) { switch (GET_SOURCE_ID(__dwSFStreamID)) {#ifdef SUPPORT_ATAPI_SOURCE case SOURCE_ATAPI: bResult = ATAPI_GetStatus(); break;#endif#ifdef SUPPORT_SERVO_SOURCE case SOURCE_SERVO: bResult = SERVOFilter_GetStatus(); break;#endif#ifdef SUPPORT_USB_SOURCE case SOURCE_USB0_0: bResult = USBSRC_GetUSBSRCStatus(SOURCE_USB0_0); break;#endif default: //printf{("Invalid Source\n"); } } else { switch (bSrcIndex) {#ifdef SUPPORT_SERVO_SOURCE case SOURCE_SERVO: bResult = SERVOFilter_GetStatus(); break;#endif //#ifdef SUPPORT_USB_SOURCE case SOURCE_USB0_0: bResult = USBSRC_GetUSBSRCStatus(SOURCE_USB0_0); break;#endif // default: break; } } return bResult; }void SrcFilter_ClearState(void){#ifdef SUPPORT_USB_SOURCE USBSRC_ClearUSBSRCState();#endif}BYTE SrcFilter_PowerMode (BYTE bMode){ BYTE bResult = FALSE; switch (GET_SOURCE_ID(__dwSFStreamID)) {#ifdef SUPPORT_ATAPI_SOURCE case SOURCE_ATAPI: bResult = ATAPI_PowerMode(bMode); break;#endif#ifdef SUPPORT_SERVO_SOURCE case SOURCE_SERVO: bResult = SERVO_PowerMode(bMode); break;#endif default: //printf{("Invalid Source\n"); } // wyc1.06-909, set to TRUE to represent SERVO stop mode. __bSFSourcePWDown = TRUE; return bResult;}void SRCFilter_ThreadDelete(void){ switch (GET_SOURCE_ID(__dwSFStreamID)) {#ifdef SUPPORT_ATAPI_SOURCE case SOURCE_ATAPI: ATAPI_ThreadDelete(); break;#endif#ifdef SUPPORT_SERVO_SOURCE case SOURCE_SERVO: break;#endif#ifdef SUPPORT_USB_SOURCE case SOURCE_USB0_0: return USBSRC_ThreadDelete(); break;#endif default: //printf{("Invalid Source\n"); }}// F100CSC_102, BEGIN// This function only turns on the flag when issue command to SERVO and ask SERVO to flush its CACHEvoid SRCFilter_EnableCacheFlush( void ){#ifdef SUPPORT_SERVO_SOURCE SERVO_EnableCacheFlush( );#endif // return;}// F100CSC_102, END// wyc1.05-909, add one functino for dump data from source.// ***********************************************************************// Function : SRCFilter_DumpData// Description : Dump the data to specific pointer address from source by calling USB function directly.// Arguments : dwSecNO: The dump location(logical location). dwNum: The dump sector num(Parser sector unit, 2048 bytes).// : pFATTable: The dumped pointer.// Return : TRUE/FALSE// Side Effect :// ***********************************************************************BYTE SRCFilter_DumpData(DWORD dwSecNO, DWORD dwNum, DWORD* pFATBuff){#ifdef SUPPORT_USB_SOURCE // wyc1.07-909, modify 3th parameter to DWORD* for support FAT32 return USBSRC_DumpData(dwSecNO, dwNum, (DWORD*)(pFATBuff));#endif // //return TRUE;}// wyc1.20-909, new function to dump data from USB source to read USB data.// ***********************************************************************// Function : SRCFilter_DumpDatabySource// Description : Dump the data to specific pointer address from source by wait USBSRC to call USB function to read data.// Arguments : dwSecNO: The dump location(logical location). dwNum: The dump sector num(Parser sector unit, 2048 bytes).// : pFATTable: The dumped pointer.// Return : TRUE/FALSE// Side Effect :// ***********************************************************************BYTE SRCFilter_DumpDatabySource(DWORD dwSecNO, DWORD dwNum, DWORD* pFATBuff){#ifdef SUPPORT_USB_SOURCE // wyc1.07-909, modify 3th parameter to DWORD* for support FAT32 return USBSRC_DumpDatabySource(dwSecNO, dwNum, (DWORD*)(pFATBuff));#endif // //return TRUE;}// wyc2.05-909S, add one new function to exit source mode.// ***********************************************************************// Function : SRCFilter_ExitSource// Description : Exit the source mode to avoid some H/W still active to affect other module.// Arguments : None// Return : TRUE/FALSE// Side Effect :// ***********************************************************************BYTE SRCFilter_ExitSource(void){ switch (GET_SOURCE_ID(__dwSFStreamID)) {#ifdef SUPPORT_ATAPI_SOURCE case SOURCE_ATAPI: break;#endif#ifdef SUPPORT_SERVO_SOURCE case SOURCE_SERVO: break;#endif#ifdef SUPPORT_USB_SOURCE case SOURCE_USB0_0: USBSRC_HCExit(); break;#endif default: //printf{("Invalid Source\n"); } return TRUE;}// wyc2.37-909s, function to force usbsrc to exit running H/W functions.BYTE SRCFilter_USBSRCExit(void){ return USBSRC_SRCExit();}// Added by J500CSC_218, support F/W to update source ID indexBOOL SrcFilter_ChangeSourceID( DWORD dwStreamIdx, BYTE bSourceIdx ){ if( dwStreamIdx >= MAX_STREAM_COUNT ) { return FALSE; } __SF_SourceGBL[dwStreamIdx].bSourceIndex = bSourceIdx; return TRUE;}// J200Aron_231, to check source is ready or notextern BYTE SRVIF_MpegCheckServo(void);BOOL SrcFilter_CheckSrcReady(VOID){ switch (GET_SOURCE_ID(__dwSFStreamID)) {#ifdef SUPPORT_SERVO_SOURCE case SOURCE_SERVO: if (!SRVIF_MpegCheckServo()) { return FALSE; } break;#endif default: } return TRUE;}BYTE SrcFilter_TriggerUSBSRCCmd(BYTE flag, DWORD dwCmd){ return USBSRC_TriggerCmdAPI(flag, dwCmd);}BYTE SrcFilter_PeekUSBSRCCmd(BYTE flag, DWORD dwCmd){ return USBSRC_PeekCmdAPI(flag, dwCmd);}void SrcFilter_ClearUSBSRCCmd(BYTE flag, DWORD dwCmd){ USBSRC_ClearCmdAPI(flag, dwCmd);}//wyc2.78-909P, function to issue command for usbsrc to config the OTG mode.void SrcFilter_SetOTGMode(BYTE bUSBOTGMode){#if (USB_SYSTEM == USB2_0_JUNGO) USBSRC_SetOTGMode(bUSBOTGMode);#endif //}BYTE SrcFilter_GetOTGMode(void){#if (USB_SYSTEM == USB2_0_JUNGO) return USBSRC_GetOTGMode();#endif //}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -