📄 emc_channelmanage.c
字号:
}
else
{
changeToTransManage();
}
/*****************Show Dialog Window***********************/
EMC_ShowRegion();
}
void msm_ShowChannelManage(void)
{
drawChannelManagementWindow();
}
void msm_ChannelManageModeExchange(void)
{
if(bChannelManage)
{
bChannelManage = FALSE;
changeToTransManage();
}
else
{
bChannelManage = TRUE;
changeToChManage();
}
}
void msm_ChannelManageItemUp(void)
{
BOOL HIGHLIGHT;
MENU_DATA_STRUCT *pstCurMenuData;
if(bChannelManage)
pstCurMenuData = pstCurAvailableChannel;
else
pstCurMenuData = pstCurTransponder;
if(pstCurMenuData == NULL)
return;
if ( pstCurMenuData ->Prev != ( MENU_DATA_STRUCT * ) NULL )
{
/*the current chosen item is not at the beginning of menu items that on screen*/
HIGHLIGHT = 0;
if(bChannelManage)
{
drawChManageItem(iChOffInChManagement,(char *)pstCurMenuData ->aucData,HIGHLIGHT);
--(iChOffInChManagement);
pstCurAvailableChannel = pstCurAvailableChannel->Prev;
HIGHLIGHT = 1;
drawChManageItem(iChOffInChManagement,(char *)pstCurAvailableChannel ->aucData,HIGHLIGHT);
}
else
{/*transponder*/
HIGHLIGHT = 0;
drawTransManageItem(iTransOffInChManagement,(char *)pstCurMenuData ->aucData,HIGHLIGHT);
--(iTransOffInChManagement);
pstCurTransponder= pstCurTransponder->Prev;
HIGHLIGHT = 1;
drawTransManageItem(iTransOffInChManagement,(char *)pstCurTransponder ->aucData,HIGHLIGHT);
}
}
else
{
int iItemOffTemp;
if(bChannelManage)
{
if((channelPrevKeyFunc(iNoOfAvailableMenuElements,MAX_ITEMS_IN_CHANNELMANAGEMENT)) == INVALID_LINK)
return;
pstCurMenuData = pstAvailableMenuDataHead;
pstCurAvailableChannel = pstAvailableMenuDataHead;
}
else
{
if((transponderPrevKeyFunc(iNoOfTransponderMenuElements, MAX_ITEMS_IN_CHANNELMANAGEMENT)) == INVALID_LINK)
return;
pstCurMenuData = pstTransponderMenuDataHead;
pstCurTransponder = pstTransponderMenuDataHead;
}
iItemOffTemp = 0;
while(pstCurMenuData != NULL)
{
if(bChannelManage)
drawChManageItem(iItemOffTemp,(char *)pstCurMenuData ->aucData,(iItemOffTemp==0)?1:0);
else
drawTransManageItem(iItemOffTemp,(char *)pstCurMenuData ->aucData,(iItemOffTemp==0)?1:0);
pstCurMenuData = pstCurMenuData->Next;
iItemOffTemp++;
}
}
}
void msm_ChannelManageItemDown(void)
{
BOOL HIGHLIGHT;
MENU_DATA_STRUCT *pstCurMenuData;
if(bChannelManage)
pstCurMenuData = pstCurAvailableChannel;
else
pstCurMenuData = pstCurTransponder;
if(pstCurMenuData == NULL)
return;
if ( pstCurMenuData ->Next!= ( MENU_DATA_STRUCT * ) NULL )
{
/*the current chosen item is not at the end of menu items that on screen*/
HIGHLIGHT = 0;
if(bChannelManage)
{
drawChManageItem(iChOffInChManagement,(char *)pstCurMenuData ->aucData,HIGHLIGHT);
++(iChOffInChManagement);
pstCurAvailableChannel = pstCurAvailableChannel->Next;
HIGHLIGHT = 1;
drawChManageItem(iChOffInChManagement,(char *)pstCurAvailableChannel ->aucData,HIGHLIGHT);
}
else
{/*transponder*/
HIGHLIGHT = 0;
drawTransManageItem(iTransOffInChManagement,(char *)pstCurMenuData ->aucData,HIGHLIGHT);
++(iTransOffInChManagement);
pstCurTransponder = pstCurTransponder->Next;
HIGHLIGHT = 1;
drawTransManageItem(iTransOffInChManagement,(char *)pstCurTransponder->aucData,HIGHLIGHT);
}
}
else
{
/*the current chosen item is at end of menu items that on screen*/
int iItemOffTemp;
if(bChannelManage)
{
if(channelNextKeyFunc(iNoOfAvailableMenuElements) == INVALID_LINK)
return;
pstCurMenuData = pstAvailableMenuDataHead;
pstCurAvailableChannel = pstAvailableMenuDataTail;
}
else
{/*transponder*/
if(transponderNextKeyFunc(iNoOfTransponderMenuElements) == INVALID_LINK)
return;
pstCurMenuData = pstTransponderMenuDataHead;
pstCurTransponder= pstTransponderMenuDataTail;
}
iItemOffTemp = 0;
while(pstCurMenuData != NULL)
{
if(pstCurMenuData ->Next == NULL)
{
if(bChannelManage)
drawChManageItem(iItemOffTemp,(char *)pstCurMenuData ->aucData,1);
else
drawTransManageItem(iItemOffTemp,(char *)pstCurMenuData ->aucData,1);
break;
}
if(bChannelManage)
drawChManageItem(iItemOffTemp,(char *)pstCurMenuData ->aucData,0);
else
drawTransManageItem(iItemOffTemp,(char *)pstCurMenuData ->aucData,0);
pstCurMenuData = pstCurMenuData->Next;
iItemOffTemp++;
}
}
}
void msm_ChannelManageItemSelect(void)
{
int iProgNumberTemp;
short int sProgIndexTemp;
if(bChannelManage)
{
sttbx_Print("\niChOffInChManagement = %d , iNoOfAvailableMenuElements = %d\n",iChOffInChManagement,iNoOfAvailableMenuElements);
sProgIndexTemp = sProgIndex;
iProgNumberTemp = iProgNumber;
channelSelectKeyFunc(iChOffInChManagement,iNoOfAvailableMenuElements);
sProgIndex2bRetrieved = sProgIndex;
iProgNumberBeingRetrieved = iProgNumber;
iCurrentProgramNo = iProgNumber;
sProgIndex = sProgIndexTemp;
iProgNumber = iProgNumberTemp;
//msm_ChannelDisplay(act_DirChNum);
msm_NewChannelDisplay(cmd_DirChNum);
}
}
void msm_SetChannelFavorate(void)
{
int iProgNumberTemp;
short int sProgIndexTemp;
MENU_DATA_STRUCT *pstCurMenuData;
if(iNoOfAvailableMenuElements <= 0)
return;
if(bChannelManage)
{
sProgIndexTemp = sProgIndex;
iProgNumberTemp = iProgNumber;
channelSelectKeyFunc(iChOffInChManagement,iNoOfAvailableMenuElements);
if(!SRDBE_IsProgFavorite(iProgNumber))
{
SRDBE_SetProgFavorite(iProgNumber);
pstCurAvailableChannel->aucData[INDEX_FAVORITE_FLAG] = '1';
drawFavoriteFlagInChManage(iChOffInChManagement,1,TRUE);
}
else
{
SRDBE_ClrProgFavorite(iProgNumber);
pstCurAvailableChannel->aucData[INDEX_FAVORITE_FLAG] = '0';
drawFavoriteFlagInChManage(iChOffInChManagement,1,FALSE);
}
sProgIndex = sProgIndexTemp;
iProgNumber = iProgNumberTemp;
}
}
void msm_LockChannelItem(void)
{
int iProgNumberTemp;
short int sProgIndexTemp;
MENU_DATA_STRUCT *pstCurMenuData;
/*Lock the Prog. selected*/
if(iNoOfAvailableMenuElements <= 0)
return;
if(bChannelManage)
{
sProgIndexTemp = sProgIndex;
iProgNumberTemp = iProgNumber;
channelSelectKeyFunc(iChOffInChManagement,iNoOfAvailableMenuElements);
if(!SRDBE_IsProgLocked(iProgNumber))
{
SRDBE_LockProg(iProgNumber);
pstCurAvailableChannel->aucData[INDEX_LOCKED_FLAG] = '1';
drawLockedFlagInChManage(iChOffInChManagement,1,TRUE);
}
else
{
SRDBE_UnlockProg(iProgNumber);
pstCurAvailableChannel->aucData[INDEX_LOCKED_FLAG] = '0';
drawLockedFlagInChManage(iChOffInChManagement,1,FALSE);
}
sProgIndex = sProgIndexTemp;
iProgNumber = iProgNumberTemp;
}
}
void msm_DeleteChannelItem(void)
{
if(bChannelManage)
{
if(iNoOfAvailableMenuElements<=0)
return;
}
else
{
if(iNoOfTransponderMenuElements<=0)
return;
}
/* when come here: delete key pressed, and the confirm window is no shown */
currMenuState = DVB_CONFIRM_DEL;
/* show confirm window */
drawDeleteConfirmWindow(TRUE);
}
void msm_ChannelManageExit(void)
{
EMC_HideAllRegions();
}
void msm_CancelChannelDelete(void)
{
int i;
MENU_DATA_STRUCT *pMenuToDraw = NULL;
drawDeleteConfirmWindow(FALSE);
if(bChannelManage)
{
pMenuToDraw = pstAvailableMenuDataHead;
for(i = 0;i<iNoOfAvailableMenuElements;i++)
{
drawChManageItem(i,(char*)(pMenuToDraw->aucData),(i == iChOffInChManagement)?1:0);
pMenuToDraw=pMenuToDraw->Next;
}
for(i = iNoOfAvailableMenuElements; i<MAX_ITEMS_IN_CHANNELMANAGEMENT; i++)
{
ClearChManageItemArea(i);
}
}
else
{
pMenuToDraw = pstTransponderMenuDataHead;
for(i = 0;i<iNoOfTransponderMenuElements;i++)
{
drawTransManageItem(i,(char*)(pMenuToDraw->aucData),(i == iTransOffInChManagement)?1:0);
pMenuToDraw=pMenuToDraw->Next;
}
for(i = iNoOfTransponderMenuElements; i< MAX_ITEMS_IN_CHANNELMANAGEMENT; i++)
{
ClearTransManageItemArea(i);
}
}
}
void msm_PerformChannelDelete(void)
{
if(bChannelManage)
{
if(iNoOfAvailableMenuElements <= 0)
return;
channelSelectKeyFunc(iChOffInChManagement,iNoOfAvailableMenuElements);
sttbx_Print("\ndelete program index = %d,no = %d\n",sProgIndex,iProgNumber);
DeleteProgramByIndex(sProgIndex,sProgIndex2bRetrieved);
if ( PositionProgInfoNeg (1) == INVALID_LINK )
{
/*如果前面没有节目,则设为-1,这样在
getChannels()中就会从最开始开始读取*/
sProgIndex2bRetrieved = INVALID_LINK;
}
else
{
iProgNumberBeingRetrieved = iProgNumber;
sProgIndex2bRetrieved = sProgIndex;
iCurrentProgramNo = iProgNumberBeingRetrieved;
}
sttbx_Print("\nafter delete,the prev one's index = %d,no = %d\n",sProgIndex,iProgNumber);
/*Update the screen*/
UpdateChManageWindowAfterDelete();
}
else
{
/*------------Detete transponder-----------------------*/
if(iNoOfTransponderMenuElements <= 0)
return;
transponderDeleteFunc(iTransOffInChManagement,iNoOfTransponderMenuElements,MAX_ITEMS_IN_CHANNELMANAGEMENT);
UpdateTransManageWindowAfterDelete();
}
}
/*--------------------------------------EOF---------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -