⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 emc_manual.c

📁 关于嵌入式PCB板UI的程序
💻 C
📖 第 1 页 / 共 2 页
字号:
/*******************************************************************************
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 + -