📄 emc_manual.c
字号:
/*******************************************************************************
File name : emc_manual.c
Description : manual search
Revision : 1.0
COPYRIGHT (C) EMC-HUST-JRC 2005.
Date Label Auther Comment
---- ---- ------ ---------------------
12-30-2005 Allen Wu Created
*********************************************************************************/
/* Includes --------------------------------------------------------------- */
#include "stdio.h"
//#include "stosd.h"
#include "usif.h"
#include "sr_dbase.h"
//#include "OsdRegionInit.h"
#include "UIPositionDef.h"
#include "gui.h"
#include "osdwrap.h"
#include "emc_font.h"
#include "emc_menustate.h"
#include "./pics/data_bitmap_manualsearch.h"
#include "./pics/data_struct_manualsearch.h"
#define MIN_BANDWIDTH 6
#define MAX_BANDWIDTH 8
#define MAX_FREQ_NUM 3
static int iMsFrequency = 602;/*default is 602MHz*/
static int iMsBandWidth = 8;/*default is 8MHz*/
static int iMsProgramFound = 0;/*during the manual search,the number of programs have found*/
static int iMsDialogItemSelected = 0;/*'Input Freq' or 'Choose Bandwidth'*/
static int iMsInputFreqOffset = 3;
static char searchFrequency[9]={'6','0','2','_','\0'};
static char *searchBandWith[3] = {"6MHz","7MHz","8MHz"};
extern int LangSelect;
extern EMCFont_Type EMCFontTypeArray[];
extern int iLastProgramNumber;
extern int iInputFrequency;
extern int iBandWidth;
extern signed char xpdrInManSearch;
extern BOOL DBaseBlgDone;
extern void msm_FeedbackMsg(dvb_MenuCmd_e message);
extern void msm_ClearScreen(void);
static void focusOnManualSearchItem(int itemOffset)
{
EMCFont_Type fontType = EMCFontTypeArray[FONT_MYFONT];/*test*/
if(itemOffset == 0)
{
/*focus on Item[Input Freq]*/
EMC_DrawTextRectangle(Handle_ProviewWindow,
MS_X+171, MS_Y+37,50,17,
searchFrequency, JLEFT,fontType,FALSE,
darkyellow,dialogcolor, dialogcolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
MS_X+171, MS_Y+65,50,17,
searchBandWith[iMsBandWidth - MIN_BANDWIDTH],JLEFT,fontType,FALSE,
whitecolor,dialogcolor, dialogcolor);
}
else
{
/*focus on Item[Choose BandWidth]*/
EMC_DrawTextRectangle(Handle_ProviewWindow,
MS_X+171, MS_Y+37,50,17,
searchFrequency, JLEFT,fontType,FALSE,
whitecolor,dialogcolor, dialogcolor);
EMC_DrawTextRectangle(Handle_ProviewWindow,
MS_X+171, MS_Y+65,50,17,
searchBandWith[iMsBandWidth - MIN_BANDWIDTH], JLEFT,fontType,FALSE,
darkyellow,dialogcolor, dialogcolor);
}
}
static void drawManualSearchWindow(void)/*drawManualSearchChannelDialog*/
{
//int i=0;
/********************Argument**********************/
/******************Clear the screen******************/
#if 0
STOSD_FillRectangle(Handle_Info4bpp, 0, 0, MainParams8bpp.Width, MainParams8bpp.Height, epgpancolor/*backcolor*/);
STOSD_FillRectangle(Handle_Menu4bpp, 0, 0, MainParams4bpp.Width, MainParams4bpp.Height, lightbluecolor);
STOSD_FillRectangle(Handle_Title4bpp, 0, 0, MainParbmp4bpp.Width, MainParbmp4bpp.Height, epgpancolor);
STOSD_ShowRegion(Handle_Menu4bpp);
STOSD_ShowRegion(Handle_Info4bpp);
STOSD_ShowRegion(Handle_Title4bpp);
#endif
EMC_HideAllRegions();
/*******************Draw the Dialog******************/
#if 0
STOSD_FillRectangle(Handle_Menu4bpp, MainParams4bpp.Width/6, MainParams4bpp.Height/6,
MainParams4bpp.Width*2/3, MainParams4bpp.Height*2/3+20, yellowcolor);
#endif
HL_STOSD_DrawBMP(Handle_ProviewWindow,MS_X,MS_Y, Bitmap_Struct_ManaulSearch);
/*********************Draw Title*********************/
#if 0
MyDrawTextButton(Handle_Menu4bpp, MainParams4bpp.Width/6, MainParams4bpp.Height/6,
MainParams4bpp.Width*2/3, MainParams4bpp.Height/6, currWindow->dialogTitle[(pstBoxInfo->iUILanguage)],
whitecolor,epgpancolor,epgpancolor,100);
#endif
/******************Draw Content********************/
#if 0
currWindow->dialogItemOffset=0;
textrect.x=MainParams4bpp.Width/6+20;
textrect.y=MainParams4bpp.Height/3+20;
textrect.x2=660;
textrect.y2=532;
for(i=0;i<3;i++) /*3 items*/
{
EMC_DrawText(Handle_Menu4bpp, FONT_MYFONT,currWindow->dialogItems[i].dialogItemDepict[(pstBoxInfo->iUILanguage)], &textrect, blackcolor);
textrect.y+=50;
}
#endif
/******************Draw frequency and bandwidth number********************/
#if 0
MyDrawTextButton(Handle_Menu4bpp, MainParams4bpp.Width*7/12,MainParams4bpp.Height/3+20,MainParams4bpp.Width*1/6, 40,
currWindow->dialogItems[0].dialogItemValueArray[0],redcolor,blackcolor,whitecolor,300);
MyDrawTextButton(Handle_Menu4bpp, MainParams4bpp.Width*7/12,MainParams4bpp.Height/3+20+50,MainParams4bpp.Width*1/6, 40,
currWindow->dialogItems[1].dialogItemValueArray[2],blackcolor,blackcolor,whitecolor,300);//default bandwidth=8M,06-30-2005
strcpy(searchFrequency,currWindow->dialogItems[0].dialogItemValueArray[0]); //set to default,06-30-2005
currWindow->dialogItems[1].dialogItemValueSelected = 2;
currWindow->dialogItems[1].dialogItemValueCurrent =2;
#endif
//EMC_DrawTextFlatRectangle(Handle_ProviewWindow,MS_X+152, MS_Y+38,39,13,searchFrequency, whitecolor,dialogcolor, dialogcolor);
//EMC_DrawTextFlatRectangle(Handle_ProviewWindow,MS_X+152, MS_Y+66,39,13,searchBandWith[iMsBandWidth - MIN_BANDWIDTH], whitecolor,dialogcolor, dialogcolor);
focusOnManualSearchItem(iMsDialogItemSelected);
ChangeManualSearchTips("Press OK to Start... ","按Ok键开始...","",2);
//STOSD_ShowRegion(Handle_ProviewWindow);
EMC_ShowRegion();
}
#if 0
static void ManualSearchKeyService(rc_navKeyStroke_t iClientCode)/*doManualSearchChannel*/
{
//int i;
switch(iClientCode)
{
case rc_kKeyArrowUp:
case rc_kKeyArrowDown:
#if 0
if(currWindow->dialogItemOffset==0)
{
searchFrequency[(currWindow->dialogItems[0]).dialogItemValueCurrent]='\0';
currWindow->dialogItemOffset=1;
}
else
{
currWindow->dialogItems[1].dialogItemValueSelected = currWindow->dialogItems[1].dialogItemValueCurrent;//wuhan added,06-30-2005,update the selected.
if((currWindow->dialogItems[0]).dialogItemValueCurrent<=7)
{
searchFrequency[(currWindow->dialogItems[0]).dialogItemValueCurrent]='_';
searchFrequency[(currWindow->dialogItems[0]).dialogItemValueCurrent+1]='\0';
}
currWindow->dialogItemOffset=0;
}
if(currWindow->dialogItemOffset==0)
{
MyDrawTextButton(Handle_Menu4bpp, MainParams4bpp.Width*7/12, MainParams4bpp.Height/3+20,MainParams4bpp.Width*1/6, 40,
searchFrequency,redcolor,blackcolor,whitecolor,300);
MyDrawTextButton(Handle_Menu4bpp, MainParams4bpp.Width*7/12, MainParams4bpp.Height/3+20+50,MainParams4bpp.Width*1/6, 40,
currWindow->dialogItems[1].dialogItemValueArray[currWindow->dialogItems[1].dialogItemValueSelected],blackcolor,blackcolor,whitecolor,300);
}
else
{
MyDrawTextButton(Handle_Menu4bpp, MainParams4bpp.Width*7/12, MainParams4bpp.Height/3+20,MainParams4bpp.Width*1/6, 40,
searchFrequency,blackcolor,blackcolor,whitecolor,300);
MyDrawTextButton(Handle_Menu4bpp, MainParams4bpp.Width*7/12, MainParams4bpp.Height/3+20+50,MainParams4bpp.Width*1/6, 40,
currWindow->dialogItems[1].dialogItemValueArray[currWindow->dialogItems[1].dialogItemValueSelected],redcolor,blackcolor,whitecolor,300);
}
#endif
if(iMsDialogItemSelected == 0)
{
iMsDialogItemSelected = 1;
searchFrequency[iMsInputFreqOffset]='\0';
}
else
{
iMsDialogItemSelected = 0;
searchFrequency[iMsInputFreqOffset]='_';
searchFrequency[iMsInputFreqOffset+1]='\0';
}
focusOnManualSearchItem(iMsDialogItemSelected);
break;
case rc_kKeyArrowLeft:
#if 0
if(currWindow->dialogItemOffset==0)
{
if ((currWindow->dialogItems[0]).dialogItemValueCurrent>0)
{
searchFrequency[(currWindow->dialogItems[0]).dialogItemValueCurrent]='\0';
searchFrequency[--(currWindow->dialogItems[0]).dialogItemValueCurrent]='_';
MyDrawTextButton(Handle_Menu4bpp, MainParams4bpp.Width*7/12, MainParams4bpp.Height/3+20,MainParams4bpp.Width*1/6, 40,
searchFrequency,redcolor,blackcolor,whitecolor,300);
}
}
else
{
(currWindow->dialogItems[1]).dialogItemValueCurrent = ((currWindow->dialogItems[1]).dialogItemValueCurrent>0)? --(currWindow->dialogItems[1]).dialogItemValueCurrent : currWindow->dialogItems[1].dialogItemValueNumber-1;
MyDrawTextButton(Handle_Menu4bpp, MainParams4bpp.Width*7/12, MainParams4bpp.Height/3+20+50,MainParams4bpp.Width*1/6, 40,
currWindow->dialogItems[1].dialogItemValueArray[(currWindow->dialogItems[1]).dialogItemValueCurrent],redcolor,blackcolor,whitecolor,300);
}
#endif
if(iMsDialogItemSelected == 0)
{
if(iMsInputFreqOffset>0)
{
searchFrequency[iMsInputFreqOffset] = '\0';
searchFrequency[--iMsInputFreqOffset] = '_';
iMsFrequency = iMsFrequency/10;
focusOnManualSearchItem(iMsDialogItemSelected);
}
}
else
{
iMsBandWidth = (iMsBandWidth == MIN_BANDWIDTH)?MAX_BANDWIDTH:(iMsBandWidth-1);
focusOnManualSearchItem(iMsDialogItemSelected);
}
break;
case rc_kKeyArrowRight:
#if 0
if(currWindow->dialogItemOffset==0)
break;
(currWindow->dialogItems[1]).dialogItemValueCurrent = ((currWindow->dialogItems[1]).dialogItemValueCurrent<currWindow->dialogItems[1].dialogItemValueNumber-1)? ++(currWindow->dialogItems[1]).dialogItemValueCurrent : 0;
MyDrawTextButton(Handle_Menu4bpp, MainParams4bpp.Width*7/12, MainParams4bpp.Height/3+20+50,MainParams4bpp.Width*1/6, 40,
currWindow->dialogItems[1].dialogItemValueArray[(currWindow->dialogItems[1]).dialogItemValueCurrent],redcolor,blackcolor,whitecolor,300);
#endif
if(iMsDialogItemSelected != 0)
{
iMsBandWidth = (iMsBandWidth == MAX_BANDWIDTH)?MIN_BANDWIDTH:(iMsBandWidth+1);
focusOnManualSearchItem(iMsDialogItemSelected);
}
break;
case rc_kKeyExit:
#if 0
for(i=0;i<7;i++)
{
if(currWindow->dialogItems[0].dialogItemValueArray[0][i]=='_' || currWindow->dialogItems[0].dialogItemValueArray[0][i]=='\0' || currWindow->dialogItems[0].dialogItemValueArray[0][i]==' ')
break;
searchFrequency[i]=currWindow->dialogItems[0].dialogItemValueArray[0][i];
}
searchFrequency[i]='\0';
(currWindow->dialogItems[0]).dialogItemValueCurrent=i;
(currWindow->dialogItems[1]).dialogItemValueCurrent=currWindow->dialogItems[1].dialogItemValueSelected;
#endif
iLastProgramNumber = -1;/*added by Allen,11-14-2005*/
ChangeStateToDVBDisplay(DVB_MANUAL_SEARCH_STATE);
break;
case rc_kKeyNum0:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -