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

📄 dvd_app.h

📁 AMLOGIC DPF source code
💻 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 + -