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

📄 pidproc.c

📁 有线电视系统前端设备复用器原代码。 用语接受卫星信号
💻 C
字号:
/*------------------------------------------------------------------*/
/* pidproc.c                                                        */
/*------------------------------------------------------------------*/
#include "structure.h"
#include "command.h"
#include "repid.h"

extern PID_INFO PID_Info[8];
extern SELECT_MUL Select_Mul;
extern void my_Delay(unsigned long int dly_ms);

unsigned short GetSetPMTPID(unsigned char PortNo,unsigned short OldPrgNo)
{
	int i;
	for(i=0;i<PID_Info[PortNo].PMTs;i++)
	{
		if(PID_Info[PortNo].PID_Map[i].OldPrgNo==OldPrgNo)					
				return PID_Info[PortNo].PID_Map[i].SetPID;		
	}
	
	Display("Port %d GetSetPMTPID error,OldPrgNo=0x%x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n",PortNo,OldPrgNo);
	return 0x1FFF;
}

unsigned short GetSetPrgNo(unsigned char PortNo,unsigned short OldPrgNo)
{
	int i;

	for(i=0;i<PID_Info[PortNo].PIDs;i++)
	{
		if(PID_Info[PortNo].PID_Map[i].OldPrgNo==OldPrgNo)
			return PID_Info[PortNo].PID_Map[i].SetPrgNo;		
	}
	
	Display("Port %d GetSetPrgNo error,OldPrgNo=0x%x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n",PortNo,OldPrgNo);
	return 0x1FFF;

}
unsigned short GetSetPID(unsigned char PortNo,unsigned short OldPrgNo,unsigned short OldPID)
{
	int i;

	for(i=0;i<PID_Info[PortNo].PIDs;i++)
	{
		if((PID_Info[PortNo].PID_Map[i].OldPID==OldPID)&&(PID_Info[PortNo].PID_Map[i].OldPrgNo==OldPrgNo))
			return PID_Info[PortNo].PID_Map[i].SetPID;
	}
	
	Display("Port %d GetNewPID error, OldPID=0x%x,OldPrgNo=0x%x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n",PortNo,OldPID,OldPrgNo);
	return 0x1FFF;
}

/*根据旧的PID和节目号,获得设置的新的PID*/
unsigned short GetSetPIDEx(unsigned char PortNo,unsigned short OldPrgNo,unsigned short OldPID,int StreamType)
{
	int i;

	for(i=0;i<PID_Info[PortNo].PIDs;i++)
	{
		if((PID_Info[PortNo].PID_Map[i].OldPID==OldPID)&&(PID_Info[PortNo].PID_Map[i].OldPrgNo==OldPrgNo)&&(PID_Info[PortNo].PID_Map[i].StreamType==StreamType))
			return PID_Info[PortNo].PID_Map[i].SetPID;
	}
	
	Display("Port %d GetNewPID error, OldPID=0x%x,OldPrgNo=0x%x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n",PortNo,OldPID,OldPrgNo);
	return 0x1FFF;
}

unsigned short GetCaSytemID(unsigned char PortNo,unsigned short OldEMMPid)
{
	int i;

	for(i=0;i<PID_Info[PortNo].PIDs;i++)
	{
		if((PID_Info[PortNo].PID_Map[i].StreamType==STREAM_TYPE_EMM)&&(PID_Info[PortNo].PID_Map[i].OldPID==OldEMMPid))
			return PID_Info[PortNo].PID_Map[i].SetPrgNo;
	}

	return 0x1FFF;
}
/*-------------------------------------------------------------------------*/
/* 根据原来的节目号得到其PID                                               */
/*-------------------------------------------------------------------------*/
unsigned short GetOldPMTPID(unsigned char PortNo,unsigned short OldPrgNo)
{
	int i;

	for(i=0;i<PID_Info[PortNo].PIDs;i++)
	{
		if((PID_Info[PortNo].PID_Map[i].StreamType==STREAM_TYPE_PMT)&&(PID_Info[PortNo].PID_Map[i].OldPrgNo==OldPrgNo))
			return PID_Info[PortNo].PID_Map[i].OldPID;
	}

}

unsigned short GetSetPrgNoFromOldPrgNo(unsigned char PortNo,unsigned short OldPrgNo)
{
	int i;

	for(i=0;i<PID_Info[PortNo].PMTs;i++)
	{
		if(PID_Info[PortNo].PID_Map[i].OldPrgNo==OldPrgNo)		
			return PID_Info[PortNo].PID_Map[i].SetPrgNo;
	
	}

	return 0;
}

⌨️ 快捷键说明

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