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

📄 emc_channeldisplay.c

📁 关于嵌入式PCB板UI的程序
💻 C
字号:
/*******************************************************************************
File name		: emc_channeldisplay.c
Description	: channel display
Revision    	: 1.0

COPYRIGHT (C) EMC-HUST-JRC 2005.

Date         	Label   	Auther 		Comment
----		----    	------		---------------------
01-04-2006			Allen Wu		Created
*********************************************************************************/

/* Includes --------------------------------------------------------------------- */
#include "staud.h"
#include "usif.h"
#include "sr_dbase.h"
#include "sr_section.h"
#include "emc_menustate.h"
#include "emc_channeldisplay.h"

/* Global variables & structures----------------------------------------------------- */
extern BOX_INFO_STRUCT *pstBoxInfo;
//extern EVENT_LIST eventlist;
extern SLOT_ID old_EIT_slot;
extern int iProgNumberBeingRetrieved;
extern WORD2SHORT uiProgBeingWatched;
extern int iCurrentProgramNo;

extern void SRUIF_UpdateBoxInfo(void);
//extern void SRDBE_GetUTCtime(void);
extern void sttbx_Print(const char *const Format_p, ...);
//extern ST_ErrorCode_t PfEpgRequest ( WORD2SHORT ProgramNo , int pf); 
//extern ST_ErrorCode_t ScheduleEpgRequest ( WORD2SHORT ProgramNo , int iTableID, int iSectionNum);
extern ST_ErrorCode_t SRUIF_ShowProgram(PROG_INFO_STRUCT* pstProgInfoTableTemp);
extern void SRDBE_GetCurEventInfo(void);
// int iLastProgramNumber = -1;
extern int iLastProgramNumber;

/* Functions--------------------------------------------------------------------- */
void msm_NewChannelDisplay(dvb_MenuCmd_e cmd) 
{
	int piNextProgramNo;
	int piPrevProgramNo;
	ST_ErrorCode_t result = ST_NO_ERROR;
	STAUD_StreamContent_t CurrentAudioType;
	PROG_INFO_STRUCT *pstProgInfoTableTemp; 
	
	//sttbx_Print("cmd is:%d\n",cmd);
	switch (cmd)
	{
		 case cmd_DirChPlus:
		 	pstProgInfoTableTemp = SRDBE_NextProgInfo(&piNextProgramNo);
			if (piNextProgramNo == -1)
			{
				SRDBE_PositionProgInfoTop();
				pstProgInfoTableTemp = SRDBE_CurProgInfo(&piNextProgramNo);
				iCurrentProgramNo = piNextProgramNo;	/*wuhan added,07-03-2005*/
				//sttbx_Print("\n\niCurrentProgramNo = %d\n\n",iCurrentProgramNo);
			}
		 	break;
		 case cmd_DirChMinus:
		 	pstProgInfoTableTemp = SRDBE_PrevProgInfo(&piPrevProgramNo);
			if (piPrevProgramNo == -1)
			{
				SRDBE_PositionProgInfoBottom();
				pstProgInfoTableTemp = SRDBE_CurProgInfo(&piPrevProgramNo);
				iCurrentProgramNo = piPrevProgramNo;	/*wuhan added,07-03-2005*/
				//sttbx_Print("\n\niCurrentProgramNo = %d\n\n",iCurrentProgramNo);
			}			
		 	break;
		case cmd_DirChNum:
			//if(iCurrentProgramNo == iProgNumberBeingRetrieved))	//wuhan added,07-05-2005
				//return;
			if (iCurrentProgramNo <= ProgramList->NoOfValidPgms && iCurrentProgramNo > 0)
			{
				pstProgInfoTableTemp = SRDBE_PositionProgInfoByUserProgramNo(iCurrentProgramNo);
			}
			else 
			{
				//SRMNU_FeedbackMsg(feedback_kDircetkey,msg_ChannelNotExit);
				return;
			}
			break;
	}
	switch(pstProgInfoTableTemp->astAudStr[0].AudioType)
	{
		case MPEG1_AUDIO:
			CurrentAudioType = STAUD_STREAM_CONTENT_MPEG1;
			break;
		case MPEG2_AUDIO:
			CurrentAudioType = STAUD_STREAM_CONTENT_MPEG2;
			break;
		case AC3_AUDIO:
			CurrentAudioType = STAUD_STREAM_CONTENT_AC3;
			break;
	}
#if 1/*Modified by Allen,03-10-2006*/
	/*Wuhan added, 06-19-2005, maybe cancel the SDT and other section request....*/
	if(old_EIT_slot != -1) /*Wuhan added, 06-21-2005*/
		SRSTF_CancelSectionReq(old_EIT_slot);
#else
	sruif_SendMsgFromUsif2DBase(sCurTransponderId, STOP_DATA_BASE_BUILDING);
#endif
	SRDBE_GetCurEventInfo();
	/*the same program,no need to stop it and restart it*/
	#if 0
	if(iProgNumberBeingRetrieved == iLastProgramNumber)	/*wuhan added,07-05-2005*/
		return;	
	#endif
	result = SRUIF_ShowProgram(pstProgInfoTableTemp);
	iLastProgramNumber = iProgNumberBeingRetrieved;	/*wuhan added,07-05-2005*/
	uiProgBeingWatched = pstProgInfoTableTemp->stProgNo;

	if(result == ST_NO_ERROR) 
	{
		if ((pstProgInfoTableTemp->sVidPid == 0x1FFF) && (pstProgInfoTableTemp->astAudStr[0].sAudPid != 0x1FFF))
			msm_FeedbackMsg(cmd_RadioCh);
       	else 
			msm_FeedbackMsg(cmd_NewCh);
	}
	   
	SRUIF_UpdateBoxInfo();
}

/*------------------------------------EOF---------------------------------------*/

⌨️ 快捷键说明

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