📄 loadchannels.c
字号:
short int sFavoriteProgIndex_temp= sFavProgIndex;
pstProgramRecord = ( PROG_INFO_STRUCT * ) NULL;
*piProgramNo = INVALID_LINK;
sLocalProgIndex = astProgInfoTable [ sFavoriteProgIndex_temp ].sPrevProgIndex;
for(;;)
{
if ( sFavoriteProgIndex_temp != INVALID_LINK && \
sLocalProgIndex != INVALID_LINK && \
astProgInfoTable [ sLocalProgIndex ] .status != ELEMENT_FREE )
{
if(astProgInfoTable [ sLocalProgIndex ].bFavoriteStatus== true )
{
sFavProgIndex = sLocalProgIndex;
--iFavoriteProgNum_temp;
iFavProgNumber = iFavoriteProgNum_temp;
pstProgramRecord = &astProgInfoTable [ sFavProgIndex ];
*piProgramNo = iFavProgNumber;
return pstProgramRecord;
}
sFavoriteProgIndex_temp = sLocalProgIndex;
sLocalProgIndex = astProgInfoTable [ sFavoriteProgIndex_temp ] .sPrevProgIndex;
--iFavoriteProgNum_temp;
}
else return pstProgramRecord;
}
}
static SHORT PositionFavoriteProgInfoPos(int iOffset)
{
int iLocOffset,iLocOffset_1;
SHORT sLocProgIndex;
if ( sFavProgIndex == INVALID_LINK )
return INVALID_LINK;
sLocProgIndex = sFavProgIndex;
iLocOffset = 0;
iLocOffset_1 = 0;
while ( iLocOffset < iOffset )
{
sLocProgIndex = astProgInfoTable [ sLocProgIndex ] .sNextProgIndex;
if ( sLocProgIndex == INVALID_LINK )
return INVALID_LINK;
if(astProgInfoTable[sLocProgIndex].bFavoriteStatus == true)
++iLocOffset;
++iLocOffset_1;
}
iFavProgNumber += iLocOffset_1;
sFavProgIndex = sLocProgIndex;
return sFavProgIndex;
}
static SHORT PositionFavoriteProgInfoNeg(int iOffset)
{
int iLocOffset,iLocOffset_1;
SHORT sLocProgIndex;
if ( sFavProgIndex == INVALID_LINK )
return INVALID_LINK;
sLocProgIndex = sFavProgIndex;
iLocOffset = 0;
iLocOffset_1 = 0;
while ( iLocOffset < iOffset )
{
sLocProgIndex = astProgInfoTable [ sLocProgIndex ] .sPrevProgIndex;
if ( sLocProgIndex == INVALID_LINK )
return INVALID_LINK;
if(astProgInfoTable[sLocProgIndex].bFavoriteStatus == true)
++iLocOffset;
++iLocOffset_1;
}
iFavProgNumber -= iLocOffset_1;
sFavProgIndex = sLocProgIndex;
return sFavProgIndex;
}
/*wuhan added,06-29-2005*/
static TRANSPONDER_INFO_STRUCT *CurTransInfo(signed char *pcTransNum)
{
TRANSPONDER_INFO_STRUCT *pstTransponderRecord;
/* by default setup the return pointer info as NULL*/
pstTransponderRecord = (TRANSPONDER_INFO_STRUCT *)NULL;
*pcTransNum = 0;
if (scTransponderIndex2bRetrieved == INVALID_LINK || \
pastTransponderInfoTable[scTransponderIndex2bRetrieved].status == ELEMENT_FREE)
return pstTransponderRecord;
pstTransponderRecord = &pastTransponderInfoTable[scTransponderIndex2bRetrieved];
*pcTransNum = scTransponderNumber2bRetrieved;
return pstTransponderRecord;
}
static TRANSPONDER_INFO_STRUCT *NextTransInfo(signed char *pcTransNum)
{
TRANSPONDER_INFO_STRUCT *pstTransponderRecord;
pstTransponderRecord = (TRANSPONDER_INFO_STRUCT *)NULL;
*pcTransNum = 0;
if (pastTransponderInfoTable[scTransponderIndex2bRetrieved].cNextTransponderIndex == INVALID_LINK)
return pstTransponderRecord;
scTransponderIndex2bRetrieved = pastTransponderInfoTable[scTransponderIndex2bRetrieved].cNextTransponderIndex;
pstTransponderRecord = &pastTransponderInfoTable[scTransponderIndex2bRetrieved];
*pcTransNum = ++scTransponderNumber2bRetrieved;
return pstTransponderRecord;
}
static TRANSPONDER_INFO_STRUCT *PrevTransInfo(signed char *pcTransNum)
{
TRANSPONDER_INFO_STRUCT *pstTransponderRecord;
pstTransponderRecord = (TRANSPONDER_INFO_STRUCT *)NULL;
*pcTransNum = 0;
if (pastTransponderInfoTable[scTransponderIndex2bRetrieved].cPrevTransponderIndex == INVALID_LINK)
return pstTransponderRecord;
scTransponderIndex2bRetrieved = pastTransponderInfoTable[scTransponderIndex2bRetrieved].cPrevTransponderIndex;
pstTransponderRecord = &pastTransponderInfoTable[scTransponderIndex2bRetrieved];
*pcTransNum = --scTransponderNumber2bRetrieved;
return pstTransponderRecord;
}
static signed char PositionTransInfoPos(int iOffset)
{
int iLocOffset;
signed char cLocTransponderIndex;
if (scTransponderIndex2bRetrieved == INVALID_LINK)
return INVALID_LINK;
cLocTransponderIndex = scTransponderIndex2bRetrieved;
iLocOffset = 0;
while (iLocOffset < iOffset)
{
cLocTransponderIndex = pastTransponderInfoTable[cLocTransponderIndex].cNextTransponderIndex;
if (cLocTransponderIndex == INVALID_LINK)
return INVALID_LINK;
++iLocOffset;
}
scTransponderIndex2bRetrieved = cLocTransponderIndex;
scTransponderNumber2bRetrieved += iLocOffset;
return scTransponderIndex2bRetrieved;
}
static signed char PositionTransInfoNeg(int iOffset)
{
int iLocOffset;
signed char cLocTransponderIndex;
if (scTransponderIndex2bRetrieved == INVALID_LINK)
return INVALID_LINK;
cLocTransponderIndex = scTransponderIndex2bRetrieved;
iLocOffset = 0;
while (iLocOffset < iOffset)
{
cLocTransponderIndex = pastTransponderInfoTable[cLocTransponderIndex].cPrevTransponderIndex;
if (cLocTransponderIndex == INVALID_LINK)
return INVALID_LINK;
++iLocOffset;
}
scTransponderIndex2bRetrieved = cLocTransponderIndex;
scTransponderNumber2bRetrieved -= iLocOffset;
return scTransponderIndex2bRetrieved;
}
static int PositionTransInfoTop(void)
{
if (pstTransponderList->cNoOfValidTransponders <= 0)
{
return (int)INVALID_LINK;
}
scTransponderIndex2bRetrieved = pstTransponderList->cHeadTransponderIndex;
scTransponderNumber2bRetrieved = 1;
return (pstTransponderList->cNoOfValidTransponders);
}
/*wuhan added,06-30-2005*/
static PROG_INFO_STRUCT *CurProgInfo ( int *piProgramNo )
{
PROG_INFO_STRUCT *pstProgramRecord;
pstProgramRecord = (PROG_INFO_STRUCT *)NULL;
*piProgramNo = INVALID_LINK;
if (sProgIndex != INVALID_LINK && \
astProgInfoTable[sProgIndex].status != ELEMENT_FREE)
{
pstProgramRecord = &astProgInfoTable[sProgIndex];
*piProgramNo = iProgNumber;
}
return pstProgramRecord;
}
static PROG_INFO_STRUCT *NextProgInfo ( int *piProgramNo )
{
SHORT sLocalProgIndex;
PROG_INFO_STRUCT *pstProgramRecord;
pstProgramRecord = (PROG_INFO_STRUCT *)NULL;
*piProgramNo = INVALID_LINK;
sLocalProgIndex = astProgInfoTable[sProgIndex].sNextProgIndex;
if (sProgIndex != INVALID_LINK && \
sLocalProgIndex != INVALID_LINK && \
astProgInfoTable[sLocalProgIndex].status != ELEMENT_FREE)
{
sProgIndex = astProgInfoTable[sProgIndex].sNextProgIndex;
++iProgNumber;
pstProgramRecord = &astProgInfoTable[sProgIndex];
*piProgramNo = iProgNumber;
}
return pstProgramRecord;
}
static PROG_INFO_STRUCT *PrevProgInfo ( int *piProgramNo )
{
SHORT sLocalProgIndex;
PROG_INFO_STRUCT *pstProgramRecord;
pstProgramRecord = (PROG_INFO_STRUCT *)NULL;
*piProgramNo = INVALID_LINK;
sLocalProgIndex = astProgInfoTable[sProgIndex].sPrevProgIndex;
if (sProgIndex!= INVALID_LINK && \
sLocalProgIndex != INVALID_LINK && \
astProgInfoTable[sLocalProgIndex].status != ELEMENT_FREE)
{
sProgIndex = astProgInfoTable[sProgIndex].sPrevProgIndex;
--iProgNumber;
pstProgramRecord = &astProgInfoTable[sProgIndex];
*piProgramNo = iProgNumber;
}
return pstProgramRecord;
}
static int PositionProgInfoTop ( void )
{
if (ProgramList->NoOfValidPgms <= 0)
{
return (int)INVALID_LINK;
}
sProgIndex = ProgramList->HeadProgIndex;
/*AL15 Start*/
#if 1
iProgNumber = 1;
#else
//iProgNumber = astProgInfoTable[sProgIndex].stProgNo.unShort.sLo16;
iProgNumber = 1;
#endif
/*AL15 End*/
return (ProgramList->NoOfValidPgms);
}
SHORT PositionProgInfoNeg ( int iOffset )
{
int iLocOffset;
SHORT sLocProgIndex;
if (sProgIndex == INVALID_LINK)
return INVALID_LINK;
sLocProgIndex = sProgIndex;
iLocOffset = 0;
while (iLocOffset < iOffset)
{
sLocProgIndex = astProgInfoTable[sLocProgIndex].sPrevProgIndex;
/*AL15 Start*/
#if 1
if (sLocProgIndex == INVALID_LINK)
return INVALID_LINK;
++iLocOffset;
#else
if (sLocProgIndex == INVALID_LINK)
sLocProgIndex = ProgramList->TailProgIndex;
++iLocOffset;
#endif
/*AL15 End*/
}
/*AL15 Start*/
#if 1
iProgNumber -= iOffset;
#else
//iProgNumber = astProgInfoTable[sLocProgIndex].stProgNo.unShort.sLo16;
iProgNumber -= iOffset;
if(iProgNumber <= 0)
iProgNumber = ProgramList->NoOfValidPgms-(iOffset-(iProgNumber+iOffset-1))+1;
#endif
/*AL15 End*/
sProgIndex = sLocProgIndex;
//iProgNumber = astProgInfoTable[sProgIndex].stProgNo.unShort.sLo16;
return sProgIndex;
}
static SHORT PositionProgInfoPos ( int iOffset )
{
int iLocOffset;
SHORT sLocProgIndex;
if (sProgIndex == INVALID_LINK)
return INVALID_LINK;
sLocProgIndex = sProgIndex;
iLocOffset = 0;
while (iLocOffset < iOffset)
{
sLocProgIndex = astProgInfoTable[sLocProgIndex].sNextProgIndex;
/*AL15 Start*/
#if 1
if (sLocProgIndex == INVALID_LINK)
return INVALID_LINK;
#else
if (sLocProgIndex == INVALID_LINK)
sLocProgIndex = ProgramList->HeadProgIndex;
#endif
/*AL15 End*/
++iLocOffset;
}
/*AL15 Start*/
#if 1
iProgNumber += iOffset;
#else
//iProgNumber = astProgInfoTable[sLocProgIndex].stProgNo.unShort.sLo16;
iProgNumber += iOffset;
if(iProgNumber > ProgramList->NoOfValidPgms)
iProgNumber = iOffset - (ProgramList->NoOfValidPgms-(iProgNumber - iOffset));
#endif
/*AL15 End*/
sProgIndex = sLocProgIndex;
return sProgIndex;
}
#if 0
int PositionFavoriteProgInfoTop(void)
{
int index;
int iProgNo;
int iValidProgNum;
TEST_PROG_INFO_STRUCT *pstProgInfoTemp;
if((iValidProgNum = SRDBE_PositionProgInfoTop ())==INVALID_LINK)
return (int)INVALID_LINK;
pstProgInfoTemp = SRDBE_CurProgInfo(&iProgNo);
if(SRDBE_IsProgFavorite(iProgNo))
return (int)iValidProgNum;
for(index = 1;index < iValidProgNum;index ++)
{
pstProgInfoTemp = SRDBE_NextProgInfo(&iProgNo);
if(SRDBE_IsProgFavorite(iProgNo))
return (int)iValidProgNum;
}
return (int)INVALID_LINK;
}
PROG_INFO_STRUCT *NextFavoriteProgInfo(int *piProgramNo)
{
int index;
TEST_PROG_INFO_STRUCT *pstProgInfoTemp;
while(1)
{
if((pstProgInfoTemp = SRDBE_NextProgInfo(piProgramNo)) == NULL)
return NULL;
if(SRDBE_IsProgFavorite(*piProgramNo))
return &pstProgInfoTemp;
}
return NULL;
}
PROG_INFO_STRUCT *PrevFavoriteProgInfo ( int *piProgramNo )
{
int index;
TEST_PROG_INFO_STRUCT *pstProgInfoTemp;
while(1)
{
if((pstProgInfoTemp = SRDBE_PrevProgInfo(piProgramNo)) == NULL)
return NULL;
if(SRDBE_IsProgFavorite(*piProgramNo))
return &pstProgInfoTemp;
}
return NULL;
}
SHORT PositionFavoriteProgInfoPos(int iOffset)
{
int iLocOffset = 0;
int iLocOffset_1 = 0;
SHORT sLocProgIndex = sProgIndex2bRetrieved;
if(sLocProgIndex == INVALID_LINK)
return INVALID_LINK;
while ( iLocOffset < iOffset )
{
sLocProgIndex = astProgInfoTable [ sLocProgIndex ] .sNextProgIndex;
if ( sLocProgIndex == INVALID_LINK )
return INVALID_LINK;
if(astProgInfoTable[sLocProgIndex].bFavoriteStatus == true)
++iLocOffset;
++iLocOffset_1;
}
}
SHORT PositionFavoriteProgInfoNeg(int iOffset)
{
}
#endif
/*****************************END*********************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -