📄 pidproc.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 + -