📄 emc_epg.c
字号:
clearEPGEventList();
#endif
sttbx_Print("\niSelectedDay = %d,uCurrentDateForShow = %d\n",iSelectedDay,uCurrentDateForShow);
/*---------------------------------------------------------------------------------*/
/*iSelectedDay: 1-Mon,...,7-Sun and this is changed when we press LEFT&RIGHT Key*/
/*uCurrentDateForShow: 1-Mon,...,7-Sun and this is always point to the current date */
/*---------------------------------------------------------------------------------*/
if(iSelectedDay != uCurrentDateForShow)
{
drawEPGMenuDateBtnUnSelected(iSelectedDay-1);
iSelectedDay = uCurrentDateForShow;
drawEPGMenuDateBtnSelected(iSelectedDay-1);
}
#if 0
EMC_UpdateEPGCurrTimePeriod(-1);
if(iEventItemOff<0 || iEventItemOff>=2)
iEventItemOff = 0;
#endif
ConvertTimeStampToTimeString(PFEvtInfoDataBlock[sProgIndex][0].startTime,time);
ConvertTimeStampToTimeString(PFEvtInfoDataBlock[sProgIndex][0].startTime+PFEvtInfoDataBlock[sProgIndex][0].duration,&time[6]);
/*display current page items*/
time[5] = '-';
time[11] = '\0';
if(iPAL_Mode)
{
EMC_DrawTextRectangle(Handle_ProviewWindow,
EPG_SMALL_SCREEN_FRAME_X+42, EPG_SMALL_SCREEN_FRAME_Y+4, 158, 18,
time,JLEFT,FONT_MYFONT,FALSE,
whitecolor, dialogcolor,dialogcolor);
}
EMC_DrawTSTextRectangle(Handle_ProviewWindow,
EPG_SMALL_SCREEN_FRAME_X+42, EPG_SMALL_SCREEN_FRAME_Y+4+(iPAL_Mode? 18: 0), 152, (iPAL_Mode? 18: 36),
PFEvtInfoDataBlock[sProgIndex][0].eventName,JLEFT,FALSE,
whitecolor, dialogcolor,dialogcolor);
#if 0
bRefreshEPGList = TRUE;
#endif
}
void msm_UpdateSkedProgInfo(void)
{
if(bNeedUpdateSkedInfo)
{
drawEPGEventList(sProgIndex2bRetrieved,iSelectedDay,iCurrentTimePeriod);
sttbx_Print("\n____________________msm_UpdateSkedProgInfo\n");
}
}
void msm_ShowEPG(void)
{
drawEPGMenu();
msm_FeedbackMsg(cmd_Select);
}
void msm_ExitEPG(void)
{
EMC_HideAllRegions();
SRAVC_PositionVideoWindow(PRIMARY_DECODE,1, 0,0,0,0);
}
void msm_EPGProItemUp(void)
{
MENU_DATA_STRUCT *pstCurMenuData = pstCurAvailableChannel;
PROG_INFO_STRUCT *pstProgInfoTemp;
BOOL bHighlight;
short int sTempProgIndex = INVALID_LINK;
int iTempProgNumber = 0;
if(pstCurMenuData == NULL)
return;
if ( pstCurMenuData ->Prev != ( MENU_DATA_STRUCT * ) NULL )
{
bHighlight = 0;
drawEPGItem(iChannelItemOff,(char *)pstCurMenuData ->aucData,bHighlight);
--(iChannelItemOff);
pstCurAvailableChannel = pstCurAvailableChannel->Prev;
bHighlight = 1;
drawEPGItem(iChannelItemOff,(char *)pstCurAvailableChannel ->aucData,bHighlight);
}
else
{
int iItemOffTemp;
if((channelPrevKeyFunc(iNoOfAvailableMenuElements,MAX_PROG_ITEMS_IN_EPG)) == INVALID_LINK)
return;
pstCurMenuData = pstAvailableMenuDataHead;
pstCurAvailableChannel = pstAvailableMenuDataHead;
/* calculate and print all the items available in the menu data list*/
iItemOffTemp = 0;
while(pstCurMenuData != NULL)
{
drawEPGItem(iItemOffTemp,(char *)pstCurMenuData ->aucData,(iItemOffTemp==0)?1:0);
pstCurMenuData = pstCurMenuData->Next;
iItemOffTemp++;
}
}
}
void msm_EPGProItemDown(void)
{
MENU_DATA_STRUCT *pstCurMenuData = pstCurAvailableChannel;
PROG_INFO_STRUCT *pstProgInfoTemp;
BOOL bHighlight;
short int sTempProgIndex = INVALID_LINK;
int iTempProgNumber = 0;
if(pstCurMenuData == NULL)
return;
if ( pstCurMenuData ->Next!= ( MENU_DATA_STRUCT * ) NULL )
{
bHighlight = 0;
drawEPGItem(iChannelItemOff,(char *)pstCurMenuData ->aucData,bHighlight);
++(iChannelItemOff);
pstCurAvailableChannel = pstCurAvailableChannel->Next;
bHighlight = 1;
drawEPGItem(iChannelItemOff,(char *)pstCurAvailableChannel ->aucData,bHighlight);
}
else
{
int iItemOffTemp;
if(channelNextKeyFunc(iNoOfAvailableMenuElements) == INVALID_LINK)
return;
pstCurMenuData = pstAvailableMenuDataHead;
pstCurAvailableChannel = pstAvailableMenuDataTail;
/*calculate and print all the items available in the menu data list*/
iItemOffTemp = 0;
while(pstCurMenuData != NULL)
{
if(pstCurMenuData ->Next == NULL)
{
drawEPGItem(iItemOffTemp,(char *)pstCurMenuData ->aucData,1);
break;
}
drawEPGItem(iItemOffTemp,(char *)pstCurMenuData ->aucData,0);
pstCurMenuData = pstCurMenuData->Next;
iItemOffTemp++;
}
}
}
void msm_EPGProItemSelect(void)
{
MENU_DATA_STRUCT *pstCurMenuData = pstCurAvailableChannel;
PROG_INFO_STRUCT *pstProgInfoTemp;
BOOL bHighlight;
short int sTempProgIndex = INVALID_LINK;
int iTempProgNumber = 0;
int iCurrDate = 0;
if(pstCurMenuData == NULL) /*wuhan added,07-06-2005*/
return;
setUpdateTips();
//iCurrentProgramNo=iItemOff + 1;
/*msm_ChannelDisplay(act_DirChNum); Wuhan added, 05-20-2005*/
//DisplayProgram();
sTempProgIndex = sProgIndex; /*Wuhan added, 07-03-2005*/
iTempProgNumber = iProgNumber; /*Wuhan added, 07-03-2005*/
channelSelectKeyFunc(iChannelItemOff,iNoOfAvailableMenuElements);
/*AL05 Start*/
sProgIndex2bRetrieved = sProgIndex;
iProgNumberBeingRetrieved = iProgNumber;
iCurrentProgramNo = iProgNumber;
/*AL05 End*/
//iCurrentProgramNo = iProgNumber;
/*Wuhan added,06-22-2005*/
//if ( ( pstProgInfoTemp = SRDBE_PositionProgInfoByUserProgramNo ( iCurrentProgramNo ) ) == NULL )
/*Wuhan added, 07-03-2005*/
if ( ( pstProgInfoTemp = SRDBE_CurProgInfo(&iCurrentProgramNo)) == NULL )
{
sttbx_Print("cannot get current program!!!\n");
}
else
{
clearEPGEventList();
iEventItemOff = 0; /*reset the event list selected item to 0,07-04-2005*/
msm_NewChannelDisplay(cmd_DirChNum);
}
sProgIndex = sTempProgIndex;
iProgNumber = iTempProgNumber;
/*Added by Allen,03-10-2006*/
//sttbx_Print("\n@@@sProgIndex2bRetrieved = %d,eventCount = %d\n",sProgIndex2bRetrieved,SkedEvtInfoDataBlock[sProgIndex2bRetrieved].eventCount);
sttbx_Print("\n@@@ SkedEvtInfoDataBlock[%d].eventcount = %d\n",sProgIndex2bRetrieved,SkedEvtInfoDataBlock[sProgIndex2bRetrieved].eventCount);
drawEPGMenuDateBtnUnSelected(iSelectedDay-1);
if(SkedEvtInfoDataBlock[sProgIndex2bRetrieved].eventCount!=0)
{
iSelectedDay = ConvertUTCDateToWeek(SkedEvtInfoDataBlock[sProgIndex2bRetrieved].events[0].startTime);/*1-Mon,...,7-Sun*/
if(SkedEvtInfoDataBlock[sProgIndex2bRetrieved].eventsDateIndex[iSelectedDay].HeadEventIndex<SkedEvtInfoDataBlock[sProgIndex2bRetrieved].eventsDateIndex[iSelectedDay].TailEventIndex)
{
drawEPGEventList(sProgIndex2bRetrieved,iSelectedDay,0);
}
}
else
{
iSelectedDay = uCurrentDateForShow;
iCurrentTimePeriod = 0;
bNeedUpdateSkedInfo = TRUE;
}
drawEPGMenuDateBtnSelected(iSelectedDay-1);
}
void msm_EPGEventItemUp(void)
{
int i;
SERVICE_EPG_INFO *astEventInfoTable = &SkedEvtInfoDataBlock[sProgIndex2bRetrieved];
if(iEventItemOff == astEventInfoTable->eventsDateIndex[iSelectedDay].HeadEventIndex)
return;
if(iCurrentTimePeriod != 0 && iEventItemOff == astEventInfoTable->eventsDateIndex[iSelectedDay].HourIndex[iCurrentTimePeriod])
{
/*Need exchange the time period*/
clearEPGEventList();
drawEPGEventList(sProgIndex2bRetrieved,iSelectedDay,--iCurrentTimePeriod);
}
else if(iEventItemOff == iTopEventItem)
{
/*Need Page-Up*/
--iEventItemOff;
--iTopEventItem;
for(i=0;i<MAX_EVENT_ITEMS_IN_EPG;i++)
drawEPGEventItem(i,&(astEventInfoTable->events[iTopEventItem+i]),i==0? TRUE: FALSE);
}
else
{
/*Normal*/
drawEPGEventItem(iEventItemOff-iTopEventItem,
&(astEventInfoTable->events[iEventItemOff]),FALSE);
--iEventItemOff;
drawEPGEventItem(iEventItemOff-iTopEventItem,
&(astEventInfoTable->events[iEventItemOff]),TRUE);
}
showSkedDescription(sProgIndex2bRetrieved);
}
void msm_EPGEventItemDown(void)
{
int i;
SERVICE_EPG_INFO *astEventInfoTable = &SkedEvtInfoDataBlock[sProgIndex2bRetrieved];
sttbx_Print("\n++++++iCurrentTimePeriod = %d,iEventItemOff = %d,Tail = %d\n",iCurrentTimePeriod,iEventItemOff,astEventInfoTable->eventsDateIndex[iSelectedDay].TailEventIndex);
if(iEventItemOff == astEventInfoTable->eventsDateIndex[iSelectedDay].TailEventIndex)
return;
if(iCurrentTimePeriod != 7 && iEventItemOff == astEventInfoTable->eventsDateIndex[iSelectedDay].HourIndex[iCurrentTimePeriod+1]-1)
{
/*Need exchange the time period*/
clearEPGEventList();
drawEPGEventList(sProgIndex2bRetrieved,iSelectedDay,++iCurrentTimePeriod);
}
else if(iEventItemOff == iTopEventItem+MAX_EVENT_ITEMS_IN_EPG-1)
{
/*Need Page-Down*/
++iEventItemOff;
++iTopEventItem;
for(i=0;i<MAX_EVENT_ITEMS_IN_EPG;i++)
drawEPGEventItem(i,&(astEventInfoTable->events[iTopEventItem+i]),i==MAX_EVENT_ITEMS_IN_EPG-1? TRUE: FALSE);
}
else
{
/*Normal*/
drawEPGEventItem(iEventItemOff-iTopEventItem,
&(astEventInfoTable->events[iEventItemOff]),FALSE);
++iEventItemOff;
drawEPGEventItem(iEventItemOff-iTopEventItem,
&(astEventInfoTable->events[iEventItemOff]),TRUE);
}
showSkedDescription(sProgIndex2bRetrieved);
}
void msm_EPGChangeDate(int iClientCode)
{
MENU_DATA_STRUCT *pstCurMenuData = pstCurAvailableChannel;
PROG_INFO_STRUCT *pstProgInfoTemp;
BOOL bHighlight;
short int sTempProgIndex = INVALID_LINK;
int iTempProgNumber = 0;
if(pstCurMenuData == NULL ||iSelectedDay <= 0)
return;
clearEPGEventList();
drawEPGMenuDateBtnUnSelected(iSelectedDay-1);
if(iClientCode == 0/*rc_kKeyArrowLeft*/)
iSelectedDay = (iSelectedDay == 1) ? 7 : iSelectedDay - 1;
else
iSelectedDay = (iSelectedDay == 7) ? 1 : iSelectedDay + 1;
drawEPGMenuDateBtnSelected(iSelectedDay-1);
iCurrentTimePeriod = 0;
updateEPGCurrTimePeriod(iCurrentTimePeriod);
drawEPGEventList(sProgIndex2bRetrieved,iSelectedDay,iCurrentTimePeriod);
}
/*------------------------------------EOF---------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -