📄 dvd_app.h
字号:
/*************************************************************************
** **
** Copyright (C) 1999 Amlogic,Inc. **
** All rights reserved **
** Filename : Dvd_app.h / Group:DvdNavigation / Project: AVOS **
** Revision : 2.0 **
** **
*************************************************************************/
#define DVDAPP_H
#include "dvd_define.h"
#include <avtimer.h>
/***************************** Variable ******************************/
/*
_Variable()
*/
#ifdef DVD_DOM
#define EXTERN
#else
#define EXTERN extern
#endif
EXTERN VMGI *uVMGI;
EXTERN VTSI *uVTSI;
EXTERN PCIDSI *uPCIDSI;
EXTERN PCIDSI *uPCIDSI_Read;
EXTERN DVDVAR uDVD;
EXTERN SPUVAR uSPU;
EXTERN HLIVAR uHLI;
EXTERN DVDFLAG DvdFlag;
EXTERN DVDSTATE DvdState;
EXTERN DATAMSG DataMsg;
EXTERN AB_INFO ABInfo;
EXTERN POINT_INFO PointInfo[MAX_POINT];
EXTERN unsigned ENABLE_PRINT;
EXTERN unsigned char NextMission;
EXTERN unsigned char NeedDomain;
EXTERN unsigned char current_vtsn;
EXTERN unsigned char seamless_play;
EXTERN unsigned char non_stop_nonseamless_play;
EXTERN unsigned char DisplayStatus;
EXTERN unsigned short Player_Parental_ID;
EXTERN unsigned uLastScanAddr;
EXTERN unsigned uABTime;
EXTERN unsigned DvdTvType;
EXTERN unsigned DvdTvWide;
#ifdef DVDAPP_C
DVD_PLAY DvdPlay;
AVSysEvent_t EV_READ_DONE;
AVSysEvent_t EV_UI_COMMAND;
AVSysEvent_t EV_STILL_TIMEOUT;
AVSysEvent_t EV_NV_TIMEOUT;
AVSysEvent_t EV_COLLECT_INFO;
AVSysEvent_t EV_SPU_POST_PROCESS;
OS_EVENT *Mbox2D;
OS_EVENT *Mbox2P;
PAPPTASKARG gpAppArg ;
EventSubscriber_t *playback_sub;
#else
extern DVD_PLAY DvdPlay;
extern AVSysEvent_t EV_READ_DONE;
extern AVSysEvent_t EV_UI_COMMAND;
extern AVSysEvent_t EV_STILL_TIMEOUT;
extern AVSysEvent_t EV_NV_TIMEOUT;
extern AVSysEvent_t EV_COLLECT_INFO;
extern AVSysEvent_t EV_SPU_POST_PROCESS;
extern OS_EVENT *Mbox2D;
extern OS_EVENT *Mbox2P;
extern PAPPTASKARG gpAppArg;
extern EventSubscriber_t *playback_sub;
extern target_dst_request dvd_dstreq;
#endif
#ifdef DVD_READER
AVSysEvent_t EV_READ_REQ; // request read data event
AVSysEvent_t EV_READ_QUIT; // quit dvd read task
int rd_task_quit;
#else
extern AVSysEvent_t EV_READ_REQ;
extern AVSysEvent_t EV_READ_QUIT;
extern int rd_task_quit;
#endif
#ifdef DVD_SPU
INT32S gOSD2Handle;
OSD2ARG Osd2Arg;
unsigned char n_2_p_flag;
unsigned char p_2_n_flag;
unsigned char SpuProcessStatus = 0; //0:begin to process SPU, 1:not reach the DCSQ start time, 2:not the last DCSQ, 4:last DCSQ, 8:hold on checking SPU read point
#else
extern INT32S gOSD2Handle;
extern OSD2ARG Osd2Arg;
extern unsigned char n_2_p_flag;
extern unsigned char p_2_n_flag;
extern unsigned char SpuProcessStatus;
#endif
/***************************** Function ******************************/
/*
_Function()
*/
#ifndef DVD_READER
extern void DVDReadDataTask();
extern void DvdWaitReadDone(void);
extern int ProcessVobFiles(unsigned char vmgm_vts, unsigned char cur_vtsn);
extern void DvdDump(char* file_name,unsigned file_offset,unsigned dest_addr,unsigned sect_num);
extern int DVDdump(unsigned char sectnum,unsigned addr);
#endif
#ifndef DVD_TG_HIU
extern int DvdInsertVideoData(unsigned char *sequence_data, unsigned size, unsigned char video_id, int target_fd);
extern int DvdInitDecoder(DVD_PLAY* dvd_play);
extern void DvdReleaseDecoder(DVD_PLAY* dvd_play);
extern int DvdInitTarget(DVD_PLAY* dvd_play);
extern void DvdReleaseTarget(DVD_PLAY* dvd_play);
extern void ResetDvdDecoder(DVD_PLAY* dvd_play);
extern void ResetDvdTarget(DVD_PLAY* dvd_play);
#endif
#ifndef DVD_UDF
extern int ProcessUdf(void);
extern int Process9660(void);
#endif
#ifndef DVD_VMGVTS
extern int ProcessVmgi(char *vmgi_ifo);
extern int ProcessVtsi(void);
extern void GetVmgmLuPgcit(unsigned short pgc_no);
extern void GetVtsmLuPgcit(unsigned short pgc_no);
extern void GetVtsPgcit(unsigned short pgc_no);
extern void GetVtsTmap(unsigned short pgc_no);
#endif
#ifndef DVD_PB
extern void PGCPlayback(void);
extern void DvdStopQAccept(AWMSG * pQMsg);
extern void EventDvdPictureDisplay(unsigned arg);
extern void EventDvdHandlerUI(unsigned arg);
extern void EventDvdStillTimeout(unsigned arg);
extern void EventDvdNvTimeout(unsigned arg);
extern void EventDvdSetCollectInfoTimer(unsigned arg);
extern void EventDvdHandlerPlaybackState(unsigned arg);
#endif
#ifdef DVD_UTIL
void InsertVideoData(void);
#else
extern void InsertVideoData(void);
extern void StopPresentation(void);
extern void EndianConvert(unsigned char bytenum,unsigned char* Src);
extern void InitialSuffleList(void);
extern unsigned short GetPgcnWithMenuID( unsigned char menu_id,unsigned char srpt_type);
extern void GetPgNo(void);
extern void GetEnCn(void);
extern unsigned char GetNextCellNo(unsigned char cell_no);
extern unsigned char GetTTn(unsigned char vtsn,unsigned char vts_ttn);
extern void LoadPgc(void);
extern void StoreRSM(unsigned char CN_RSM);
extern void LoadRSM(void);
extern unsigned char SelectAudioStream(void);
extern void SetAudioDevice(unsigned char AudioStream);
extern unsigned char SelectSubtitleStream(void);
extern void SetSpuDevice(unsigned char SpuStream);
extern void ResetGPRM(void);
extern void InitialSPRM(void);
extern unsigned char BackToNormal(void);
extern void ChangeToStop(void);
extern unsigned GetPlaybackTime(unsigned char pb_tm_type, unsigned char index);
extern void SetNavTimer(unsigned short Timer);
extern void SetStillTimer(unsigned Timer);
extern char CalcInterlaceAddr(void);
extern void HighLight(unsigned char button_in ,unsigned char action);
extern void ProcessPCIDSI(void);
extern char ProcessSCR(char type);
extern void DvdLoadLogo(void);
extern int DvdOpenCmd(char* file_name);
/******************* Temporary *******************************/
extern void SetDisplay(unsigned char wide, unsigned char type, unsigned short v_atr);
extern void InitCellPresentation(void);
/*************************************************************/
#endif
#ifndef DVD_UOK
extern void InitialPointInfo(POINT_INFO* Point);
extern void UOKStorePointInfo(POINT_INFO* Point);
extern void InitialABInfo(void);
extern void InitialAllInfo(void);
extern unsigned char UOKPttPlay(unsigned char tt_num,unsigned short ptt_num);
extern unsigned char UOKPttSearch(unsigned short ptt_num);
extern unsigned char UOKTimeSearch(unsigned search_time);
extern unsigned char UOKPointPlay(POINT_INFO* Point);
extern unsigned char UOKABPlay(void);
extern unsigned char UOKBackNormal(void);
extern unsigned char UOKPause(void);
extern unsigned char UOKFramePlus(void);
extern unsigned char UOKStop(void);
extern unsigned char UOKForwardScan(unsigned short Speed);
extern unsigned char UOKBackwardScan(unsigned short Speed);
extern unsigned char UOKForwardSlow(int speed);
extern unsigned char UOKMenuCall(unsigned char menu_id);
extern void UOKExit(void);
extern unsigned char UOKAudioChange(unsigned char AstNo);
extern unsigned char UOKSubtitleChange(unsigned char SubNo, unsigned char DisplayFlag);
extern unsigned char UOKAngleChange(unsigned char AngleNo);
extern unsigned char UOKMenuLangSelect(unsigned short LangCode);
extern unsigned char UOKParentalLvSelect(unsigned char ptl_lvl);
extern unsigned char UOKCountryCodeSelect(unsigned short cty_cd);
extern unsigned char UOKButton(unsigned Action);
extern void UOKAppLoad(DVD_PLAY* dvd_play,unsigned param);
#endif
#ifndef DVD_CMD
extern void Command_Execute(unsigned * cmd, unsigned begin_insn, unsigned end_insn);
#endif
#ifndef DVD_SPU
extern void EventDvdProcessSubpicture(unsigned arg);
extern void EventDvdSpuPostProcess(unsigned arg);
extern void SetHighlight1ColorReg(unsigned color);
extern void SetHighlight2ColorReg(unsigned color);
extern void SetHighlight1AlphaReg(unsigned alpha);
extern void SetHighlight2AlphaReg(unsigned alpha);
extern void DisableSubpicture(void);
extern void CheckSpuDisplay(void);
extern unsigned char GetSpuByte(void);
extern void PrecessPXD(void);
#endif
#ifndef DVD_CSS
extern unsigned Get_Disc_Key(char *file_name);
extern unsigned Get_Title_Key(char *file_name, unsigned lba);
#endif
#ifdef DVD_DOM
void ShowDvdNvErrMsg(unsigned char type)
{
#ifndef __ROM_
printf("Navigation Error:%d -- ", type);
switch (type){
case 0:
break;
case 1:
printf("Too many PGCI-SRP-NS\n");
break;
case 2:
printf("PTL_MAIT_EA Error\n");
break;
case 3:
printf("VTSI dump Error\n");
break;
case 4:
printf("VTS-PTT-SRPT-EA Error\n");
break;
case 5:
printf("Too many VTS-TMAP-NS\n");
break;
case 6:
printf("New Infor FP_PGC\n");
break;
case 7:
printf("Wrong PGC-NO in Domain\n");
break;
case 8:
printf("Wrong Mission\n");
break;
case 9:
printf("New Command\n");
break;
case 10:
printf("LINKPGCN to 0\n");
break;
case 11:
printf("Invalid Return from Execute Pre/Post Command\n");
break;
case 12:
printf("Too Many Command\n");
break;
case 13:
printf("Error in HLI-SS\n");
break;
case 14:
printf("NEW-SPU-CMD\n");
break;
case 15:
printf("UDF Anchor Tag\n");
break;
case 16:
printf("Partition Tag\n");
break;
case 17:
printf("File Entry Tag\n");
break;
case 18:
printf("Not Directory\n");
break;
case 19:
printf("VIDEO_TS\n");
break;
case 20:
printf("No extLocation in 9660\n");
break;
case 21:
printf("No logo data\n");
break;
case 22:
printf("Dump data fail\n");
break;
case 23:
printf("Get VOB info fail\n");
break;
default:
printf("\n");
break;
}
#endif
DvdFlag.FatalError = 1;
}
void ShowDvdNvWarnMsg(unsigned char type)
{
#ifndef __ROM_
printf("Navigation Warning:%d -- ", type);
switch (type){
case 0:
break;
case 1:
printf("VTSI wrong, try UDF!\n");
break;
case 2:
printf("VMGM-PGCI-UT larger than 48K\n");
break;
case 3:
printf("VTS-PGCIT larger than 32K\n");
break;
case 4:
printf("Too many PGCI-SRP-NS\n");
break;
case 5:
printf("VTSM-PGCI-UT larger than 32K\n");
break;
case 6:
printf("TMAP larger than 32K\n");
break;
case 7:
printf("Goto NULL Command\n");
break;
case 8:
printf("SetTmpPML only in VMGM_DOM\n");
break;
case 9:
printf("New Link Option\n");
break;
case 10:
printf("New Jump Option\n");
break;
case 11:
printf("New SetSystem Option\n");
break;
case 12:
printf("New Set Option\n");
break;
case 13:
printf("LINKSINS: New Sub-INS\n");
break;
default:
printf("\n");
break;
}
#endif
}
int GetPassword(void)
{
int ret = 1;
//ret = getpassword();
return ret;
}
void ShowRegionErrMsg(void)
{
//show_region_msg();
}
#else //Not #ifdef DOMAIN
extern void ShowDvdNvErrMsg(unsigned char type);
extern void ShowDvdNvWarnMsg(unsigned char type);
extern int GetPassword(void);
extern int AllocMemoryForDVD(void);
extern void FreeMemoryForDVD(void);
extern void DVDDomain(void);
#endif
/********************* Temporary Code ******************************/
EXTERN HEAPBUF heapbuf;
EXTERN DISPVAR uDISP;
EXTERN HLI_S HLI_SAVE;
EXTERN unsigned char highlight_pending;
EXTERN unsigned char tv_wide;
EXTERN unsigned char tv_type;
EXTERN unsigned char NavTimerEnable;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -