📄 emc_channelmanage.c
字号:
CM_ITEM_PROGNAME_X,CM_LABEL_HEADLINE_Y,CM_ITEM_PROGNAME_WIDTH,CM_ITEM_HEIGHT-4,
"Program", JLEFT,fontType,FALSE,
whitecolor,bgCHcolor,bgCHcolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_ITEM_PROVIDER_X,CM_LABEL_HEADLINE_Y,CM_ITEM_PROVIDER_WIDTH,CM_ITEM_HEIGHT-4,
"Provider", JLEFT,fontType,FALSE,
whitecolor,bgCHcolor,bgCHcolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_ITEM_NETWORKNAME_X,CM_LABEL_HEADLINE_Y,CM_ITEM_NETWORKNAME_WIDTH,CM_ITEM_HEIGHT-4,
"Network", JLEFT,fontType,FALSE,
whitecolor,bgCHcolor,bgCHcolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_ITEM_FAVR_X,CM_LABEL_HEADLINE_Y,CM_ITEM_FAVR_WIDTH,CM_ITEM_HEIGHT-4,
"Fav.", JLEFT,fontType,FALSE,
whitecolor,bgCHcolor,bgCHcolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_ITEM_LOCK_X,CM_LABEL_HEADLINE_Y,CM_ITEM_LOCK_WIDTH,CM_ITEM_HEIGHT-4,
"Lock", JLEFT,fontType,FALSE,
whitecolor,bgCHcolor,bgCHcolor);
}
else
{
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_NETWORK_NUM_X,CM_LABEL_HEADLINE_Y,CM_NETWORK_NUM_W,CM_ITEM_HEIGHT-4,
"No. ", JLEFT,fontType,FALSE,
whitecolor,bgCHcolor,bgCHcolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_NETWORK_NAME_X,CM_LABEL_HEADLINE_Y,CM_NETWORK_NAME_W,CM_ITEM_HEIGHT-4,
"Network ", JLEFT,fontType,FALSE,
whitecolor,bgCHcolor,bgCHcolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_NETWORK_FREQ_X,CM_LABEL_HEADLINE_Y,CM_NETWORK_FREQ_W,CM_ITEM_HEIGHT-4,
"Freq. ", JLEFT,fontType,FALSE,
whitecolor,bgCHcolor,bgCHcolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_NETWORK_CHANS_X,CM_LABEL_HEADLINE_Y, CM_NETWORK_CHANS_W,CM_ITEM_HEIGHT-4,
"Chan.s ",JLEFT,fontType,FALSE,
whitecolor,bgCHcolor,bgCHcolor);
}
}
/* draw backgroud panel of channel management window */
static void drawCHMbackgroud()
{
STOSD_Color_t corner_color;
//EMCFont_Type fontType = EMCFontTypeArray[LangSelect+4];/*test*/
EMCFont_Type fontType = FONT_MYFONT;
corner_color.Type= STOSD_COLOR_TYPE_PALETTE;
corner_color.Value.PaletteEntry = 0;
STOSD_FillRectangle(Handle_ProviewWindow,CM_X+2,CM_Y(iPAL_Mode)+2,CM_WIDTH-4,CM_HEIGHT-4, bgCHcolor);
local_drawRoundWindowFrame1(Handle_ProviewWindow, CM_X,CM_Y(iPAL_Mode),CM_WIDTH,CM_HEIGHT,light,light,darkblue,darkblue,corner_color);
/* headline */
//STOSD_FillRectangle(Handle_ProviewWindow, CM_X+5, CM_Y(iPAL_Mode)+5, CM_WIDTH-10, CM_ITEM_HEIGHT-4 , whitecolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_X+4, CM_Y(iPAL_Mode)+5, CM_WIDTH-10, CM_ITEM_HEIGHT-8 ,
"Channel Management", JLEFT,fontType,FALSE,
blackcolor, whitecolor,whitecolor);
//local_drawShadowLinewith2Color(Handle_ProviewWindow, CM_X+30,CM_Y+26, CM_WIDTH-60, TRUE,light, lightblue);
/*draw label name*/
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_X+3+10, CM_Y(iPAL_Mode)+30+3, CM_LABEL_WIDTH-6, CM_ITEM_HEIGHT,
"Program",JLEFT,fontType,FALSE,
whitecolor, bgCHcolor, bgCHcolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_X+3+10+CM_LABEL_WIDTH, CM_Y(iPAL_Mode)+30+3, CM_LABEL_WIDTH-6, CM_ITEM_HEIGHT,
"Network",JLEFT,fontType,FALSE,
whitecolor, bgCHcolor, bgCHcolor);
/*label clientwindow*/
#if 0
local_drawRoundWindowFrame1(Handle_ProviewWindow, CM_X+10,CM_Y+80,CM_WIDTH-20,CM_HEIGHT-90,darkblue,blue,lightblue,light,bgCHcolor);
#else
local_drawRoundWindowFrame2(Handle_ProviewWindow, CM_X+10,CM_Y(iPAL_Mode)+90,CM_WIDTH-20,CM_HEIGHT-100,lightblue,blue,darkblue);
EMC_DrawTriangle(TRIANGLE_UP,CM_ITEM_X+CM_ITEM_WIDTH+2,CM_ITEM_Y+10, 17, lightbluecolor);
EMC_DrawTriangle(TRIANGLE_DOWN,CM_ITEM_X+CM_ITEM_WIDTH+2,CM_ITEM_Y+10+175, 17, lightbluecolor);
#endif
/*help button window*/
STOSD_FillRectangle(Handle_ProviewWindow, CM_X+2,CM_HELP_BUTTON_Y-3,CM_WIDTH-4,CM_ITEM_HEIGHT+2+30-6,bgCHcolor);
local_drawRoundWindowFrame1(Handle_ProviewWindow, CM_X,CM_HELP_BUTTON_Y-5,CM_WIDTH,CM_ITEM_HEIGHT+6+30-6,light,light,darkblue,darkblue,corner_color);
}
/*Bottom help button*/
static void drawHelpButton()
{
STOSD_Color_t greenbuttoncolor,bluebuttoncolor;
//EMCFont_Type fontType = EMCFontTypeArray[LangSelect+4];/*test*/
EMCFont_Type fontType = FONT_MYFONT;
greenbuttoncolor.Type = STOSD_COLOR_TYPE_PALETTE;
greenbuttoncolor.Value.PaletteEntry = 255;/*16;*/
bluebuttoncolor.Type = STOSD_COLOR_TYPE_PALETTE;
bluebuttoncolor.Value.PaletteEntry = 160;
/*AL28 Start*/
EMC_DrawTriangle(TRIANGLE_LEFT, CM_HELP_BUTTON_X+8,CM_HELP_BUTTON_Y+6-6, 17, orangecolor);
EMC_DrawTriangle(TRIANGLE_RIGHT, CM_HELP_BUTTON_X+12,CM_HELP_BUTTON_Y+6-6, 17, orangecolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_HELP_BUTTON_X+12+15, CM_HELP_BUTTON_Y+2-5,110, 24,
"Prog./Network",JLEFT,fontType,FALSE,
whitecolor, dialogcolor, dialogcolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_HELP_BUTTON_X+12+15+125,CM_HELP_BUTTON_Y+2-5,30,24,
"OK",JLEFT,fontType,FALSE,
orangecolor, dialogcolor, dialogcolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_HELP_BUTTON_X+12+15+120+32,CM_HELP_BUTTON_Y+2-5,60,24,
"Display",JLEFT,fontType,FALSE,
whitecolor, dialogcolor, dialogcolor);
STOSD_FillRectangle(Handle_ProviewWindow, CM_HELP_BUTTON_X-2,CM_HELP_BUTTON_Y+30-2-6,CM_HELP_BUTTON_W*4+4, CM_ITEM_HEIGHT-6+4, lightbluecolor);
/*AL28 End*/
/*AL28 Start*/
STOSD_FillRectangle(Handle_ProviewWindow, CM_HELP_BUTTON_X+1,CM_HELP_BUTTON_Y+30-6,CM_HELP_BUTTON_W-2, CM_ITEM_HEIGHT-6 , redcolor);
STOSD_FillRectangle(Handle_ProviewWindow, CM_HELP_BUTTON_X+1+1*CM_HELP_BUTTON_W,CM_HELP_BUTTON_Y+30-6,CM_HELP_BUTTON_W-2, CM_ITEM_HEIGHT-6 , greenbuttoncolor);
STOSD_FillRectangle(Handle_ProviewWindow, CM_HELP_BUTTON_X+1+2*CM_HELP_BUTTON_W,CM_HELP_BUTTON_Y+30-6,CM_HELP_BUTTON_W-2, CM_ITEM_HEIGHT-6 , yellowcolor);
STOSD_FillRectangle(Handle_ProviewWindow, CM_HELP_BUTTON_X+1+3*CM_HELP_BUTTON_W,CM_HELP_BUTTON_Y+30-6,CM_HELP_BUTTON_W-2, CM_ITEM_HEIGHT-6 , bluebuttoncolor);
/*AL28 End*/
if(bChannelManage)
{
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_HELP_BUTTON_X+1+6,CM_HELP_BUTTON_Y+33-6,80, CM_ITEM_HEIGHT-9 ,
" Favourate ",JLEFT,fontType,FALSE,
whitecolor, redcolor,redcolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_HELP_BUTTON_X+1+27+1*CM_HELP_BUTTON_W,CM_HELP_BUTTON_Y+33-6,60, CM_ITEM_HEIGHT-9 ,
" Lock ",JLEFT,fontType,FALSE,
whitecolor, greenbuttoncolor,greenbuttoncolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_HELP_BUTTON_X+1+2*CM_HELP_BUTTON_W,CM_HELP_BUTTON_Y+33-6,CM_HELP_BUTTON_W-2, CM_ITEM_HEIGHT -9,
" ", JLEFT,fontType,FALSE,
whitecolor, yellowcolor,yellowcolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_HELP_BUTTON_X+1+27+3*CM_HELP_BUTTON_W,CM_HELP_BUTTON_Y+33-6,60, CM_ITEM_HEIGHT -9,
"Delete", JLEFT,fontType,FALSE,
whitecolor, bluebuttoncolor,bluebuttoncolor);
}
else
{
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_HELP_BUTTON_X+1,CM_HELP_BUTTON_Y+30-6,CM_HELP_BUTTON_W-2, CM_ITEM_HEIGHT-9 ,
" ", JLEFT,fontType,FALSE,
whitecolor, redcolor,redcolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_HELP_BUTTON_X+1+1*CM_HELP_BUTTON_W,CM_HELP_BUTTON_Y+33-6,CM_HELP_BUTTON_W-2, CM_ITEM_HEIGHT-9 ,
" ", JLEFT,fontType,FALSE,
whitecolor, greenbuttoncolor,greenbuttoncolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_HELP_BUTTON_X+1+2*CM_HELP_BUTTON_W,CM_HELP_BUTTON_Y+33-6,CM_HELP_BUTTON_W-2, CM_ITEM_HEIGHT -9,
" ", JLEFT,fontType,FALSE,
whitecolor, yellowcolor,yellowcolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_HELP_BUTTON_X+1+27+3*CM_HELP_BUTTON_W,CM_HELP_BUTTON_Y+33-6,60, CM_ITEM_HEIGHT -9,
"Delete", JLEFT,fontType,FALSE,
whitecolor, bluebuttoncolor,bluebuttoncolor);
}
}
static void changeToChManage(void)
{
int i = 0;
int iNoOfMenuElements;
MENU_DATA_STRUCT *p = NULL;
//HL_STOSD_DrawBMP(Handle_ProviewWindow,CM_X,CM_Y,Bitmap_Struct_ChannelManage);
/******************Draw Content********************/
drawCHMLableFrame();
if((iChOffInChManagement = getChannels(MAX_ITEMS_IN_CHANNELMANAGEMENT)) == INVALID_LINK)
{
iNoOfAvailableMenuElements = 0;
sttbx_Print("The Database is empty!!!\n");
}
else
{
sttbx_Print("\niChOffInChManagement = %d\n",iChOffInChManagement);
}
p=pstAvailableMenuDataHead;
iNoOfMenuElements = iNoOfAvailableMenuElements;
for(i = 0; i<MAX_ITEMS_IN_CHANNELMANAGEMENT; i++)
{
ClearChManageItemArea(i);
}
for(i = 0;i<iNoOfAvailableMenuElements;i++)
{
drawChManageItem(i,p->aucData,(i == iChOffInChManagement)?1:0);
p=p->Next;
}
/*********************************************************/
drawHelpButton();
}
static void changeToTransManage(void)
{
int i = 0;
int iNoOfMenuElements = 0;
MENU_DATA_STRUCT *p = NULL;
drawCHMLableFrame();
/******************Draw Content********************/
/* not change iTransOffInChManagement */
if((iTransOffInChManagement=getTransponders(MAX_ITEMS_IN_CHANNELMANAGEMENT)) == INVALID_LINK)
{
sttbx_Print("The transponder database is empty!!!\n");
}
else
{
sttbx_Print("\niTransOffInChManagement = %d\t",iTransOffInChManagement);
sttbx_Print("\niNoOfTransponderMenuElements = %d\n",iNoOfTransponderMenuElements);
}
p=pstTransponderMenuDataHead;
iNoOfMenuElements = iNoOfTransponderMenuElements;
for( i = 0; i<MAX_ITEMS_IN_CHANNELMANAGEMENT; i++)
{
ClearTransManageItemArea( i );
}
for(i = 0;i<iNoOfTransponderMenuElements;i++)
{
drawTransManageItem(i,p->aucData,(i == iTransOffInChManagement)?1:0);
p=p->Next;
}
drawHelpButton();
}
static void drawFavoriteFlagInChManage(int iOffset,BOOL highlight,BOOL bSetFavorite)
{
STOSD_Color_t textcolor,backgroundcolor;
backgroundcolor.Type = STOSD_COLOR_TYPE_PALETTE;
backgroundcolor.Value.PaletteEntry =143;
if(highlight)
textcolor = blackcolor;
else
textcolor = whitecolor;
/*The following is just for testing*/
if(bSetFavorite)
{
//EMC_DrawTextFlatRectangle(Handle_ProviewWindow,CM_ITEM_FAVR_X,iOffset*(CM_ITEM_HEIGHT)+CM_ITEM_FAVR_Y+2,CM_ITEM_FAVR_WIDTH,CM_ITEM_HEIGHT-4, "#",textcolor,backgroundcolor,backgroundcolor );
HL_STOSD_DrawBMP(Handle_ProviewWindow, CM_ITEM_FAVR_X,iOffset*(CM_ITEM_HEIGHT)+CM_ITEM_FAVR_Y+2,Bitmap_Struct_Ch_Favor);
}
else
{
STOSD_FillRectangle(Handle_ProviewWindow, CM_ITEM_FAVR_X, iOffset*(CM_ITEM_HEIGHT)+CM_ITEM_FAVR_Y+2,CM_ITEM_FAVR_WIDTH,CM_ITEM_HEIGHT-4, backgroundcolor);
}
}
static void drawLockedFlagInChManage(int iOffset,BOOL highlight,BOOL bSetLocked)
{
STOSD_Color_t textcolor,backgroundcolor;
backgroundcolor.Type = STOSD_COLOR_TYPE_PALETTE;
backgroundcolor.Value.PaletteEntry =155;
if(highlight)
textcolor = blackcolor;
else
textcolor = whitecolor;
/*The following is just for testing*/
if(bSetLocked)
{
HL_STOSD_DrawBMP(Handle_ProviewWindow, CM_ITEM_LOCK_X,iOffset*(CM_ITEM_HEIGHT)+CM_ITEM_LOCK_Y+2,Bitmap_Struct_Ch_Lock);
//EMC_DrawTextFlatRectangle(Handle_ProviewWindow,CM_ITEM_LOCK_X,iOffset*(CM_ITEM_HEIGHT)+CM_ITEM_LOCK_Y+2,CM_ITEM_LOCK_WIDTH,CM_ITEM_HEIGHT-4, "#",textcolor,backgroundcolor,backgroundcolor );
}
else
{
STOSD_FillRectangle(Handle_ProviewWindow, CM_ITEM_LOCK_X, iOffset*(CM_ITEM_HEIGHT)+CM_ITEM_LOCK_Y+2,CM_ITEM_LOCK_WIDTH,CM_ITEM_HEIGHT-4, backgroundcolor);
}
}
static void drawChManageItem(U8 iOffset,char *str,BOOL highlight)
{
int i;
STOSD_Color_t textcolor,backgroundcolor1,backgroundcolor2;
//EMCFont_Type fontType = EMCFontTypeArray[LangSelect+4];/*test*/
EMCFont_Type fontType = FONT_MYFONT;
//int iProgNum = 0;
char progNum[4];/*program number*/
char progName[MAX_SERVICE_NAME_LENGTH+1];/*service name*/
char providerName[MAX_SERVICE_PROVIDER_NAME_LENGTH+1];
char networkName[MAX_NETWORK_NAME_LENGTH+1];/*service provider name*/
backgroundcolor1.Type = STOSD_COLOR_TYPE_PALETTE;
backgroundcolor1.Value.PaletteEntry =143;
backgroundcolor2.Type = STOSD_COLOR_TYPE_PALETTE;
backgroundcolor2.Value.PaletteEntry =155;
for(i = 0;i<3;i++)
{
progNum[i] = str[i];
//iProgNum = iProgNum*10+(str[i]-'0');
}
progNum[i] = '\0';
for(i = 0;i<MAX_SERVICE_NAME_LENGTH;i++)
progName[i] = str[17+i];
progName[i] = '\0';
for(i = 0;i<MAX_SERVICE_PROVIDER_NAME_LENGTH;i++)
providerName[i] = str[32+i];
providerName[i] = '\0';
for(i=0;i<MAX_NETWORK_NAME_LENGTH;i++)
{
networkName[i] = str[54+i];
}
networkName[i] = '\0';
/*draw the outer frame*/
if(highlight)
{
textcolor = blackcolor;
HL_STOSD_DrawRectangle(Handle_ProviewWindow,CM_ITEM_X-3, (CM_ITEM_Y)+iOffset*(CM_ITEM_HEIGHT),CM_ITEM_WIDTH+3,CM_ITEM_HEIGHT, whitecolor);
HL_STOSD_DrawRectangle(Handle_ProviewWindow,CM_ITEM_X-2, (CM_ITEM_Y+1)+iOffset*(CM_ITEM_HEIGHT),CM_ITEM_WIDTH+1,CM_ITEM_HEIGHT-2, whitecolor);
}
else
{
textcolor = whitecolor;
HL_STOSD_DrawRectangle(Handle_ProviewWindow,CM_ITEM_X-3, (CM_ITEM_Y)+iOffset*(CM_ITEM_HEIGHT),CM_ITEM_WIDTH+3,CM_ITEM_HEIGHT, dialogcolor);
HL_STOSD_DrawRectangle(Handle_ProviewWindow,CM_ITEM_X-2, (CM_ITEM_Y+1)+iOffset*(CM_ITEM_HEIGHT),CM_ITEM_WIDTH+1,CM_ITEM_HEIGHT-2, dialogcolor);
}
/*draw content*/
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_ITEM_NUM_X,CM_ITEM_NUM_Y+2+iOffset*CM_ITEM_HEIGHT,
CM_ITEM_NUM_WIDTH,CM_ITEM_HEIGHT-4,
progNum,JLEFT,fontType,FALSE,
textcolor,backgroundcolor1,backgroundcolor1);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_ITEM_PROGNAME_X,CM_ITEM_PROGNAME_Y+2+ iOffset*CM_ITEM_HEIGHT,
CM_ITEM_PROGNAME_WIDTH,CM_ITEM_HEIGHT-4,
progName,JLEFT,fontType,FALSE,
textcolor,backgroundcolor2,backgroundcolor2);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_ITEM_PROVIDER_X,CM_ITEM_PROGNAME_Y+2+ iOffset*CM_ITEM_HEIGHT,
CM_ITEM_PROVIDER_WIDTH,CM_ITEM_HEIGHT-4,
providerName,JLEFT,fontType,FALSE,
textcolor,backgroundcolor1,backgroundcolor1);
EMC_DrawTextRectangle(Handle_ProviewWindow,
CM_ITEM_NETWORKNAME_X,CM_ITEM_NETWORKNAME_Y+2+ iOffset*(CM_ITEM_HEIGHT),
CM_ITEM_NETWORKNAME_WIDTH,CM_ITEM_HEIGHT-4,
networkName,JLEFT,fontType,FALSE,
textcolor,backgroundcolor2,backgroundcolor2);
if(str[INDEX_FAVORITE_FLAG] == '1')
drawFavoriteFlagInChManage(iOffset,highlight,TRUE);
else
drawFavoriteFlagInChManage(iOffset,highlight,FALSE);
if(str[INDEX_LOCKED_FLAG] == '1')
drawLockedFlagInChManage(iOffset,highlight,TRUE);
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -