📄 cc.c
字号:
//#define CARD_TEST // Joey2.76: for card test#define MAP_PLAYABLE_MESSAGE_ONLY // ***** Big Modification History Area *****// 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 "panel.h" #include "hal.h"#include "SrcFilter.h"#include "input.h"#include "chips.h"#include "thumb.h"#include "comutl.h"//#include "amp.h"#include "gdi.h" //CoCo.CT909#include "osdmm.h" //CoCo.CT909#include "osddsply.h"#include "osdsrch.h"#include "osdprgm.h"// Micky0.80a, must clear the key value.#ifdef SUPPORT_BOOKMARK#include "osdbmark.h"#endif//#ifdef SUPPORT_BOOKMARK// LLY0.95, include DivX OSD related header file for using OSDCOMDLG_ProcessKey()#ifndef NO_DRM#include "osddlg.h"#endif // #ifndef NO_DRM// ** TCH0.60; #ifndef SYSTEM_8051BYTE EX1, EX0, EA;// ** TCH0.60; #endif#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 "sysdebug.h" //CoCo.sd// ** TCH0.60; begin... #include "thumb.h"#include "media.h" // ** TCH0.60; end... #ifdef CT950_STYLE //CoCo2.38#include "alarm.h"#include "autopower.h"#endif //CT950_STYLE#include "disp.h"#include "parser.h"#include "comdec.h"//#include "mpeg2dec.h"#include "subpict.h"#include "osdss.h"//alex080,support cdrom auto upgrade#include "cdg.h" //LJY0.95#include "osdap.h" // LLY1.50, used to add OSDAP_ProcessKey()#ifdef IMAGE_FRAME_SETUP //CoCo2.38#include "poweronmenu.h"#endif //IMAGE_FRAME_SETUP //CoCo2.38#ifdef SUPPORT_DMP#include "dvdsetup_op.h"#endif //SUPPORT_DMP#ifdef SUPPORT_RADIO_TUNER#include "radio.h"#endif //SUPPORT_RADIO_TUNER#ifdef SUPPORT_CHAR_SUBPICTURE#include "char_subpict.h" //Alan1.10, support char-based subpicture#endif#if defined(SUPPORT_STB) || defined(IMAGE_FRAME_SETUP) //CoCo2.38#include "mainmenu.h"#endif// wyc2.76-909P#if (USB_SYSTEM == USB2_0_JUNGO)#include "usbwrap.h"#endif //#include "usbsrc.h"extern BYTE MAIN_MENU_ProcessKey(void);//#define NO_CDGDWORD __dwW99AV_SrcDRAM;DWORD __dwW99AV_DestDRAM;#define NULL_0 0 // ** TCH0.60; #ifndef NO_MP3#include "Mmanager.h"#endif // #ifndef NO_MP3 //CoCo1.02, add OSD game from XuLi's code#ifdef SUPPORT_OSDGAME#include "GameMain.h"extern EN_GAME_ID __enGameID;#endif#ifdef SUPPORT_TFT #include "tft.h" BIT _btAVIN=0; //Jeff 20060705 Add for AV in BIT _btTFT_PowerDown=0; //Jeff 20060705 Add for AV in#endif char __cBuffer [LENGTH_SHAREBUFFER+ 1]; // Max for SPPaletteBYTE * __pbBuffer; // ** TCH1.60a-2; Pointer to __cBuffer for unsigned operation// elmer2.75, make sure to 8-byte alignmentBYTE __bPool [LENGTH_SHAREPOOL] __attribute__ ((aligned (8))); // Common-Pool for DVD/ VCD // ** TCH1.61;//BYTE __bPool [LENGTH_SHAREPOOL]; // Common-Pool for DVD/ VCD // ** TCH1.61;WORD __wPoolOffset; // record the current usage of Pool// wyc2.37-909s, replace to NO_DISC_MODE#ifndef NO_DISC_MODE //++CoCo2.37pDWORD __dwFWBufUsedSize;#endif //#ifndef NO_DISC_MODE //++CoCo2.37p// Micky2.79, tune the usage of __bCountStop, don't reference DOUBLE_STOP// __bCountStop=0, means playing(include pause)// __bCountStop=1, means pre-stop(Value 1 exist only when DOUBLE_STOP is defined)// __bCountStop>=2, means real-stopBYTE __bCountStop;BYTE __bLOGO; //CoCo, Need to move the variable's declaration to SWOSD.BYTE *__bpDataPointer;BIT __btNTSCBitStream;// for debugging!!!!DWORD __dwCheckTime;BYTE __bZoomFactor;#ifndef NO_DIGESTextern BYTE __bTrackNO; // DIGEST usage, current track NO (Had played)//LJY0.87(LJY2.81), for DVCD discview#endifDWORD __dwOpenTime;// wyc.172-2, extern this variable from servo and move to begin of programextern BYTE __bCloseCommand ;// wyc0.95, extern variable.extern DWORD __dwFileTime;// wyc1.02-909, extern variableextern BYTE _bCDGState;// global definition//DVD_051Micky, add byte size timer count// for avoid DWORD data move by interrupt inteference// must clear it as 0 before using// only alow max. 3 seconds(base on 50Mhz)//BYTE __bSystemTimer;DWORD __dwSystemTimer;DWORD __dwCountSystem;DWORD __dwTimeBegin;DWORD __dwTimeEnd;DWORD __dwTimeNow;WORD __wDiscType; // Record Disc TypeBYTE __bDiscInfo; // ** TCH1.70; Record Disc// wyc1.25, add one variable to record flow when detected as wrong disc for debug usage,BYTE __bTestFlow;BYTE __bKey;// LLY0.62, add new variable to keep F/W assign key for IR and F/W key conflict issueBYTE __bFWKey;// LLY1.05, remove __dwTimeRef to CELL module, since only it will use it.//DWORD __dwTimeRef;// record a disc playable Begin Sectors (VCD is from Track 2)DWORD __dwTimeDiscBegin; // record a disc playable End SectorsDWORD __dwTimeDiscEnd;//Alex1.21,20031210 support bookmark#ifdef SUPPORT_BOOKMARKBYTE __bBookMark_Title[BOOKMARK_NO+ 1]; // record BookMark TitleWORD __wBookMark [BOOKMARK_NO+ 1]; // record BookMark Time //CoCo1.20, reduce code size.//Aron2.38, support still resuming#ifdef SUPPORT_STILLRSMBYTE __bBookMarkIsStill [BOOKMARK_NO+ 1];DWORD __dwBookMarkVOBU [BOOKMARK_NO+ 1];#endifBIT __btBookMark; // BookMark ON/OFF (PBC OFF) //CoCo1.20, reduce code size.#endif //#ifdef SUPPORT_BOOKMARK// default VCD is track 2;WORD __wPlayItem;// wyc2.53-909P,WORD __wBGPlayItem;// record VCD 2.0 List typeWORD __wStatus;// Micky0.62-909, removed// [909 Removed]/*//DVD_047-1. Number confirmvoid _ConfirmAction(WORD wValue);WORD _wPreValue;//Micky2.80, review global variables init.=0xffff;DWORD __dwTimeNumber;*/BYTE __bModeCmd; // Record current macro command // Remove the initialization as it add Initial_Variables()WORD __wTrackBegin;// first valid trackWORD __wTrackEnd;// last valid trackBYTE __bRepeat= REPEAT_NONE; // record repeat mode // REPEAT_NONE: non-repeat, REPEAT_TRACK:repeat one track, // REPEAT_DISC: repeat all tracksBYTE __bModeChannel;// record channel informationBYTE __bAudioType;// record Audio Type informationBYTE __bError;// record the previous errorBYTE __bTimeMin, __bTimeSec; // GOTOTime UsageBYTE __bRepeatAB; // RepeatAB ON/OFF (PBC OFF)BYTE __bShowTimeType;// Output Module use. ref to osd.hBYTE __bGoToTimeNO; // count the I/P Number in GoToTimeDWORD __dwEntryStart;///////////////// DIGEST Usage// Micky1.20, 4M flash#ifndef NO_DIGEST//jyliu.pc908, using BYTE instead of BITBYTE __btDIGEST; // means Digest Mode#endif//////////////////////////////////////////////////////BIT __btPlaying;// means is playing (NPF/FF/...)BIT __btPlayEnd= TRUE; // Check if it's into Play-End modeBIT __btPause;// if it's into Pause modeBIT __btPBC;// means VDC2.0 PBCBIT __btDriveOpen;// means drive is in close mode when Power-ONBYTE __bFirstPlay;// Does it play first time ? // add the usage of recover hangBIT __btMute;// Disable/Enable MuteBIT __btRandom;// in random mode (PBC off)BYTE __bAutoVocal;// Enable Auto-SingBYTE __bScan; // The Status of SCAN Command (encounters IFSC)DWORD _dwTimeCheckTray;// global usage; don't remove those variables// Please don't use in the functions that be called by InterruptDWORD __dwTemp;WORD __wTemp;BYTE __bTemp;BIT __btTemp;// __wSlowSpeed is actual slow speed ratioWORD __wSlowSpeed;// Slow factorBYTE __bSlowLevel;BYTE __bTimeHour; // GoTo Time usage// GOTOTIMEDWORD __dwGoToTime; // Time that use GOTO position BIT __btNewTime;// A flag that means it's a NEW timeBIT __btPlayFromBegin;// Told F/W it should play Track-Begin firstBIT __btFromStopMode;// GOTO position comes from a "STOP" mode// LLY2.36, create a new variable to keep the desired STC value for GoTime action// To avoid the inaccuracy from STC/90K = sec unit, then * 90K again to get PTSDWORD __dwGoTimeSTC;// LLY2.61, create a new variable to keep time A STC value for Repeat A-B// ie. don't share it w/ __dwGoTimeSTC// Since, stop/ resume case also save the STC in __dwGoTimeSTC// So, the value maybe overwritten during repeat A-B --> enter/exit SETUP (do stop/resume)DWORD __dwTimeA_STC;// wyc2.05-909S, porting fish's code for MP3 resume.// Keep the final stop point// DivX/ AVI/ MP4: second unit for parser// Others (not include DVD title): sector ID (will minus buffer remain)DWORD __dwResumeTime;// Time that record final stop point// LLY2.05, porting Wing/ YC code to support MP3 disc resume// [1] __dwResumeItem// HIWORD: playing directory index (from 0); LOWORD: __wPlayItem (from 1)DWORD __dwResumeItem;// [2] __dwGoTimeFrameCnt// Keep GoTime frame count, since it must calculate base on GoTime sector & bitstream bitrate, samplepreframe...// And, the value is only valid after DSP start to decode the audio.// So, the value must be set during // (1) Keep TimeA point for Repeat A-B case// (2) Keep resume time point for resume case// (3) Calculate GoTime value for GoTime caseDWORD __dwGoTimeFrameCnt; BIT __btPowerDown;// PowerDown Mode ON/OFF// TCC155, a flag for checking tray is open or closedBYTE _bOpen;BYTE __bASTN; // Audio Stream Number, from "0".BYTE __bASTNO; // Index of Audio Stream Number, from "0"-"__bASTNs-1". // ** TCH0.451;BYTE __bASTNs; // Max. Audio Stream Number.BYTE __bASTID; // The Real sub_stream_id. DVD may be different than __bASTN.// Micky0.90a, SP2 control, add SP display status for SP2// wyc1.00-909, add comment for __bSP_Disp_OFFBYTE __bSP2_Disp_OFF; // 1, SP2 is off by user, 0x10, SP2 is off by SP1 off.BYTE __bSP_Disp_OFF; // 1, SP1 is off by user,0x10, SP1 is off by NV cmd, 1 ~ 127 means sp off 0, 128 ~ 255 means sp onBYTE __bSPSTN; // SP Stream Number, from "0".BYTE __bSPST2N; // Aron1.01 SP Stream Number for SP2, from "0".BYTE __bSPSTNO; // Index of Audio Stream Number, from "0"-"__bSPSTNs-1". // ** TCH0.451;BYTE __bSPST2NO; // Chuan0.75, Tndex of Subpicture Stream Number2.BYTE __bSPSTNs; // Max. SP/OGT Stream Number.BYTE __bSPSTID; // The Real sub_stream_id. DVD may be different than __bSPSTN.BYTE __bSPST2ID; // Chuan0.75, The Real sub_stream_id 2.BYTE __bAGLN; // Angle Number. from "0".BYTE __bAGL_Ns; // Number of Angles.// LLY2.37, following variable is removed from NAVIAGER.C/ CELL.C// Since, they are not used only for DVD titleBYTE __bACHN; // Record current Audio Channel Number. From "1"..WORD __wChapter_Ns_Title; // Record the Total Chapters/ current Title (PTT)WORD __wV_ATR; // Record Video Attribute (current)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -