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

📄 media.c

📁 ct952 source code use for Digital Frame Photo
💻 C
📖 第 1 页 / 共 5 页
字号:
// Micky0.65-909, enable MSG_WAITING. during parsing.// The file "winav.h" must be included in first line#include "winav.h"#include "ctkav.h"  // ** TCH0.60; #include    <string.h>#include "initial.h"#include "utl.h"#include "hal.h"#include "SrcFilter.h"#include "input.h"#include "chips.h"#include "thumb.h"#include "comutl.h"#include "gdi.h" //CoCo.CT909#include "osdmm.h" //CoCo.CT909#include "setup.h"#include "navigate.h"#include "cell.h"#include "dvdinfo.h"    // ** TCH0.27;#include "infofilter.h"#include "vcd20.h"#include "digest.h"#include "cc.h"#include "osd.h"#include "linear.h"#include "monitor.h"#include "media.h"  // ** TCH0.60; #include "disp.h"#include "parser.h"//#include "mpeg2dec.h"#include "subpict.h"#include "osddsply.h"// wyc0.50-909, need to include this file.#include "infofilter.h"#include "srcfilter.h"#include "osddlg.h"#include "osdss.h"// wyc2.75-909P, include usbwrap.h if USB2.0 mode#if (USB_SYSTEM == USB2_0_JUNGO)#include "usbwrap.h"#elif (USB_SYSTEM == USB1_1_CT909R)#include "usb.h"#endif //#include "mmanager.h"// elmer2.38a#include "usbsrc.h"#ifdef SUPPORT_POWERON_MENU //CoCo2.38#include "poweronmenu.h"#endif#ifdef SUPPORT_STB#include "sysmenu_op.h"#endif#ifdef CTK_CARDREADER#include "card.h"#endif// wyc2.78-909P,#ifdef SUPPORT_USB_HOST_DEVICE#include "notedlg.h"#include "osdss.h"#endif //// ============================= Definition =============================// wyc1.01-909, re-allocate the layout.#define NULL_0      0       // ** TCH0.60; // The first 2 is source servo/ source atapi#define MAX_REMOVABLE_MEDIAS     (PER_USB_NO*SUPPORT_USB_PORT_NUM)// 0 is for 0x10, 1 is for 0x20// 3~10 is for 0x30,31,32,33,34,35,36,37// 11~18 is for 0x40,41,42,43,44,45,46,47// LLY2.17, remove top open/close pin to pio.h//#define PIN_TOP_OPENCLOSE 16///////////////////////////////////////////////////////////////#define SUPPORT_REMOVABLE_MEDIA  // for real media//#define DEBUG_MEDIA_STATUS// ============================= Variables =============================// Check tray force closed??// Check tray open fail??// Micky1.00_909_mediaBYTE    __bMediaServoAction;BYTE    __bMediaServoState;BYTE    __bMediaUSBAction;BYTE    __bMediaUSBState;// Micky_909_play_item// [Navigator Mode]// assigned by infofilterBYTE    __bNavigateMode = NAVIGATE_NONE;BYTE    __bChooseMedia;BYTE    _bPrevMedia,_bNextMedia;BYTE    _bShowNoMedia;// wyc2.75-909P, make default init USB one time.// wyc2.75-909P, include usbwrap.h if USB2.0 mode#ifdef SUPPORT_USB_SOURCEBYTE    _bMediaInitUSB = FALSE;#endif //// wyc2.17a-909S#define SERVO_SECTOR_SZIE   0xa00// Micky2.17c#ifdef  SUPPORT_SERVO_SOURCE#define SERVO_EDC_BUFFER_SIZE   ((DS_INPUT_BITBUF_END-DS_INPUT_BITBUF_ST)/SERVO_SECTOR_SZIE)WORD    _wSrvEDCBuff[SERVO_EDC_BUFFER_SIZE];#endif  //#ifdef    SUPPORT_SERVO_SOURCE#ifdef SUPPORT_STBBYTE    __bPreMediaMode = MEDIA_SELECT_UNKNOW;BYTE    __bMediaSelected = FALSE;// wyc2.21-909s, add members' code.extern BYTE __bSubtitlingMode;extern VOID DVB_SbtlStop(VOID);extern VOID DVB_TTX_Stop(VOID);#ifndef NO_DISC_MODEextern VOID SERVO_Enable(VOID);extern VOID SERVO_Disable(VOID);#endif //NO_DISC_MODEextern VOID AP_ConfigGDIRegion(BYTE bClearRegion);#endif// [Media]// Micky0.85, reference srcfilter.h define.// wyc1.01-909, need remember to remove this variable and use __SF_SourceGBL[__dwSFStreamID].bSourceIndex to replace it.//BYTE    __bSourceID = SOURCE_DISC;// Micky0.85, index to MediaInfoBYTE    __bActionMediaID = 0;MEDIAINFO   MediaInfo[TOTAL_MEDIA];// Micky0.85, index to MediaInfoBYTE    _bNextServiceID = 2;// [Media Selction dialog]BYTE    __bMediaSelectUI = FALSE;DWORD _dwMediaTemp1;DWORD _dwMediaChkTime;// wyc2.78-909P,DWORD _dwMediaUSBOTGChkTime = 0;BYTE _bMediaUSBConnPC = FALSE;BYTE _bMediaExitingUSBStack = FALSE;// wyc1.21-909, variable to represent the active port to let F/W can init the correct H/W port.DWORD _dwUSBSRCActivePort;#ifdef SUPPORT_SLOT_IN      // KCHong 2.17, for slot-in loaderDWORD __dwCloseTrayTimer=0;#endif //#ifdef SUPPORT_POWERON_MENU#ifdef SUPPORT_USB_SWITCH// check three times, including card-reader, USB, CF-card in order default, except specified in SETUPBYTE    __bMediaRegCnt = 2;#else// check two times, including USB, card-reader default, except specified in SETUPBYTE    __bMediaRegCnt = 1;#endif#endifBYTE _bTriggerCmd1, _bTriggerCmd2;// wyc2.78-909P,BYTE _bTriggerCmdHD = FALSE;BYTE _bTriggerCmdChkCARD = FALSE;BYTE _bTriggerCmdExitUSBStack = FALSE;BYTE _bIssueCmdExitUSBStack = FALSE;BYTE __bMediaFirstLUN = 0xFF;#ifdef SUPPORT_USB_SWITCHBYTE _bMediaSource = 1; // CTK card-reader first#elseBYTE _bMediaSource = 0; // USB first#endif#ifdef SUPPORT_CHOOSE_MEDIA//BYTE __bMediaFirstLUN = 0xFF;BYTE _bDisableCheckPort;BYTE _bFirstCheckPort = 1;DWORD _dwPortStatus = 0, _dwPrePortStatus;DWORD _dwDefaultDevice = 0x00010000;    // set to 0x00010000 to detect USB first#endif /* SUPPORT_CHOOSE_MEDIA */// ============================= Extern Variables =============================extern BYTE __bCloseCommand ;   // ** TCH0.60; // ============================= Internal function =============================void _MEDIA_MonitorMediaStatus(void);void _MEDIA_MonitorServoStatus(void);void _ResetSuspendMedia(void);BYTE _QuerySuspendMedia(void);BYTE _MapIndex2SourceID(BYTE bIndex);BYTE _MEDIA_Initial(void);BOOL _MEDIA_SwitchPreAct ( BYTE bPreMedia);BOOL _MEDIA_SwitchPostAct ( BYTE bPostMedia);#ifdef SUPPORT_CHOOSE_MEDIA#ifdef CTK_CARDREADERDWORD _MEDIA_GetCardReaderStatus(DWORD dwInsert);#endif#endifBYTE MEDIA_ShowSelDlg(VOID){    if ( __bMediaSelectUI == FALSE )    {        // wyc2.22-909s,#ifdef PRESTOP_BEFORE_SETUP_AND_PROGRAM        if (!CC_ForceStop(CC_FORCE_STOP_FROM_MEDIA_SELECT_UI))            return FALSE;#endif //        // wyc1.05-909, update Brian's code.        _bPrevMedia = __bChooseMedia; // Brian        _bNextMedia = __bChooseMedia;        //OSD_ChangeUI(OSD_UI_MEDIA_SELECT_DLG, OSD_ENTER_UI);  // enter the UI        // wyc2.00-909S,because some OSD will be clear in non-MM mode when call this message OSDDLG_MSG_SHOW_DLG, so we need to         // separate two mode to avoid clear still active message in non-MM mode.        // wyc2.32-909S, clear all region when thumbnail mode.        if (((__wDiscType & CDROM_M1) && (__bMMMenuID != MM_MENU_NONE)) || (__bThumbnailMode))            OSDDLG_MEDIA_SELECT_Update(OSDDLG_MSG_SHOW_DLG, OSDDLG_MEDIA_SELECT_BACKGROUND_MM_MODE);        else            OSDDLG_MEDIA_SELECT_Update(OSDDLG_MSG_SHOW_DLG, OSDDLG_MEDIA_SELECT_BACKGROUND_GENERAL_MODE);        OSDDLG_MEDIA_SELECT_Update(OSDDLG_MSG_DRAW_HIGHLIGHT, __bChooseMedia);        __bMediaSelectUI = TRUE;        //__bChooseMedia = FALSE;        //__bMediaServoState = MEDIA_SERVO_PROMPT;        if (__wDiscType & CDROM_M1)        {            // wyc1.10-909, keep all video/motion when JPG & all motion mode. Because if disable the video in JPG mode, when next            // in effect transfer mode, the video won't disable.            if (__btPlaying || __btPause)            {                if ((__bAttrPlay & TYPE_CDROM_AUDIO) || (__bThumbnailMode))                {                    DISP_DisplayCtrl(DISP_MAINVIDEO, FALSE);                    HAL_Display ( HAL_DISPLAY_SPST1, FALSE );                }            }            else            {                DISP_DisplayCtrl(DISP_MAINVIDEO, FALSE);                HAL_Display ( HAL_DISPLAY_SPST1, FALSE );            }        }        // wyc2.16-909S#ifdef SUPPORT_STB                        if(__bPreMediaMode != MEDIA_SELECT_STB)#endif                        {            // wyc1.06-909, make system pause after enter select media UI. Because if not pause system, MP3 in CDROM mode won't go            // next file automatically because KEY_NEXT / KEY_PREV is reject in MEDIA_MediaSelection_ProcessKey.            // wyc2.22-909s, only no pre-stop mode do the pause command. Otherwise __btPause will error update and make resume error action.#ifndef PRESTOP_BEFORE_SETUP_AND_PROGRAM            __btPause= TRUE;            __btPlaying=FALSE;            CHIPS_OpenAudio(FALSE);            UTL_TransferCommandID(KEY_PAUSE);#endif //        }    }    return TRUE;}//  *********************************************************************//  Function    :   MEDIA_MediaSelection_ProcessKey//  Description :   This function will process the key when media selection UI is prompt.//  Arguments   :   bKey, the input key//  Return      :   KEY_NO_KEY or the key to be processed.//  Side Effect ://  *********************************************************************// Micky0.80, remove bKey Parameter an dreturn valueBYTE    MEDIA_MediaSelection_ProcessKey(void){    if (( __bMediaSelectUI == FALSE ) && (__bKey != KEY_SELECTMEDIA))        return KEY_BYPASS;#ifdef SUPPORT_AV_IN    if(__btPowerDown==TRUE&&(_btTFT_PowerDown == _btAVIN))        return KEY_BYPASS;#endif        // wyc1.10-909, need to add define to reduce code when remove USB function.    //Aron2.21-909R, don't need to do the checking when DVB mode    if( __SF_SourceGBL[__dwSFStreamID].bSourceIndex != SOURCE_DVB )    {        __bTemp = MediaInfo[_MapSourceID2Index(__SF_SourceGBL[__dwSFStreamID].bSourceIndex)].bState;        // wyc1.50-909, when doing pre-scan action, don't allow entering media select UI, otherwise system will auto play after exit        // media select UI but system should pause when entering media select UI.        if ((__bTemp == MEDIA_INSERT) || (__bTemp == MEDIA_PARSING) || ((__wDiscType & CDROM_M1) && (__bMotionState == MOTION_STATE_PRESCAN)))            return INVALID_KEY;    }    // wyc2.38a-909s, can't process KEY_FUNCTIOM when power down mode, otherwise LOGO will be abnormal when enter power down -> KEY_FUNCTION -> power on.    if ((__btPowerDown) || (__bModeCmd == KEY_SCF) || (__bModeCmd == KEY_SCB) || (__bModeCmd == KEY_FF))    {        return INVALID_KEY;    }    switch(__bKey)    {    case    KEY_UP:        OSDDLG_MEDIA_SELECT_Update(OSDDLG_MSG_CLEAR_HIGHLIGHT, _bNextMedia);         if (_bNextMedia == (MEDIA_SELECT_BEGIN))            _bNextMedia = (MEDIA_SELECT_END-1);        else            _bNextMedia--;        OSDDLG_MEDIA_SELECT_Update(OSDDLG_MSG_DRAW_HIGHLIGHT, _bNextMedia);         break;    case    KEY_DOWN:        OSDDLG_MEDIA_SELECT_Update(OSDDLG_MSG_CLEAR_HIGHLIGHT, _bNextMedia);         if (_bNextMedia == (MEDIA_SELECT_END-1))            _bNextMedia = (MEDIA_SELECT_BEGIN);        else            _bNextMedia++;        OSDDLG_MEDIA_SELECT_Update(OSDDLG_MSG_DRAW_HIGHLIGHT, _bNextMedia);         break;    case    KEY_SELECTMEDIA: // Brian        if ( __bMediaSelectUI == FALSE )        {#ifdef SUPPORT_STB            if(__bSubtitlingMode==TRUE)            {                DVB_SbtlStop();                DVB_TTX_Stop();            }#endif                #ifdef USE_ONE_KEY_SELECT            _bPrevMedia = __bChooseMedia;#ifdef SUPPORT_AV_IN            if(_btAVIN == TRUE)            {                _bPrevMedia =  MEDIA_SELECT_AV_IN;            }#endif                                _bNextMedia = _bPrevMedia + 1;            if(_bNextMedia == MEDIA_SELECT_END)            {                _bNextMedia = MEDIA_SELECT_BEGIN;            }            __bKey = KEY_PLAY;

⌨️ 快捷键说明

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