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

📄 emc_manual.c

📁 关于嵌入式PCB板UI的程序
💻 C
📖 第 1 页 / 共 2 页
字号:
		case rc_kKeyNum1:
		case rc_kKeyNum2:
		case rc_kKeyNum3:
		case rc_kKeyNum4:
		case rc_kKeyNum5:
		case rc_kKeyNum6:
		case rc_kKeyNum7:
		case rc_kKeyNum8:
		case rc_kKeyNum9:
			#if 0
			if(currWindow->dialogItemOffset==1)
				break;
		        if ((currWindow->dialogItems[0]).dialogItemValueCurrent<7)
		        {
		         	searchFrequency[(currWindow->dialogItems[0]).dialogItemValueCurrent]=iClientCode+48;
		           	searchFrequency[++(currWindow->dialogItems[0]).dialogItemValueCurrent]='_';
		  		searchFrequency[++(currWindow->dialogItems[0]).dialogItemValueCurrent]='\0';
		           	(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);

		        }
			#endif
			if(iMsDialogItemSelected == 0)
			{
				if(iMsInputFreqOffset<MAX_FREQ_NUM)
				{
					searchFrequency[iMsInputFreqOffset] = iClientCode -rc_kKeyNum0 + '0';
					searchFrequency[++iMsInputFreqOffset] = '_';
					searchFrequency[iMsInputFreqOffset+1] = '\0';
					iMsFrequency = iMsFrequency*10+iClientCode -rc_kKeyNum0;
					focusOnManualSearchItem(iMsDialogItemSelected);
				}
			}
			break;
		case rc_kKeySelect:
			#if 0
			searchFrequency[(currWindow->dialogItems[0]).dialogItemValueCurrent]='\0';
			currWindow->dialogItems[0].dialogItemValueSelected=(currWindow->dialogItems[0]).dialogItemValueCurrent;
			currWindow->dialogItems[1].dialogItemValueSelected=(currWindow->dialogItems[1]).dialogItemValueCurrent;
			//strcpy(currWindow->dialogItems[0].dialogItemValueArray[0],searchFrequency);
			
			iInputFrequency=StringToInt(searchFrequency);//modified by jy,06-30-2005
			iBandWidth=(currWindow->dialogItems[1]).dialogItemValueCurrent+6;
			sttbx_Print("\niInputFrequency is %dMHz!\n",iInputFrequency);    //for test
			sttbx_Print("\niBandWidth is %dMHz!\n",iBandWidth);
			
			StartManualSearch(); //added by jy,05-13-2005
			#endif
			StartManualSearch(); 
			break;
	}
}
#endif
static void ChangeManualSearchTips(char * tips,char *p1,char *p2,int iUILanguage )/*ChangeSearchTips*/
{
	/*p1,p2 are just for test*/
	EMCFont_Type fontType = EMCFontTypeArray[LangSelect+4];/*test*/
#if 0
	int i;
	for(i=0;p0[i]!='\0';i++)
	{
		currWindow->dialogItems[itemnum].dialogItemDepict[0][i]=p0[i]; 
	}
	currWindow->dialogItems[itemnum].dialogItemDepict[0][i]=p0[i];
	for(i=0;p1[i]!='\0';i++)
	{
		currWindow->dialogItems[itemnum].dialogItemDepict[1][i]=p1[i];
	}
	currWindow->dialogItems[itemnum].dialogItemDepict[1][i]=p1[i];
	for(i=0;p2[i]!='\0';i++)
	{
		currWindow->dialogItems[itemnum].dialogItemDepict[2][i]=p2[i];
	}
	currWindow->dialogItems[itemnum].dialogItemDepict[2][i]=p2[i];
#endif	
	EMC_DrawTextRectangle(Handle_ProviewWindow,
	MS_X+18,MS_Y+100,236,20,
	tips,JLEFT,fontType,FALSE,
	whitecolor,dialogcolor,dialogcolor);
}


static BOOL StartManualSearch(void)/*doManualSearch*/
{
    	signed char cLocalTransSlot,cLocalTransSlotTemp;
    	TRANSPONDER_INFO_STRUCT *pstTransponderInfoTemp;
   	
    	PROG_INFO_STRUCT *pstProgInfoTableTemp;
    	int iLocProgNoBeingViewed;
    	int blg_timeout;
	

   	sttbx_Print("doing manual search....\n"); //wuhan added , 05-19-2005
RESTART:
    	if ( ( pstTransponderInfoTemp = SRDBE_AppendTransponderSlot ( &cLocalTransSlot ) ) == ( TRANSPONDER_INFO_STRUCT * ) NULL )
    	{
    		sttbx_Print( "Failed to add new transponder slot\n" );
		ChangeManualSearchTips("Program Table full!.","节目表已满!","",2);   //added by jy
    	}
    	pstTransponderInfoTemp->Xpdr.Terrestrial.iTransponderFreq=iInputFrequency;
    	pstTransponderInfoTemp->Xpdr.Terrestrial.iBandWidth=iBandWidth; //set input param and then send to tuner,by jy
#if 1
	iInputFrequency = iMsFrequency;
	iBandWidth = iMsBandWidth;
#else/*TEST*/
	iInputFrequency = 479;
	iBandWidth = 6;
#endif
	sttbx_Print("\niInputFrequency = %d,iBandWidth = %d\n",iInputFrequency,iBandWidth);
#if 0/*by Allen,11-05-2005*/
	pstTransponderInfoTemp->Xpdr.Terrestrial.iTransponderFreq=iInputFrequency;
    	pstTransponderInfoTemp->Xpdr.Terrestrial.iBandWidth=iBandWidth; 
#endif


	/*SRUIF_ReadTunerParam() will set the Param incording to 'iInputFrequency' & 'iBandWidth'*/
   	if((cLocalTransSlotTemp = SRUIF_ReadTunerParam(pstTransponderInfoTemp)) == INVALID_LINK)
   	{   	  	
   		sttbx_Print("\ncLocalTransSlot = %d,cLocalTransSlotTemp = %d\n",cLocalTransSlot,cLocalTransSlotTemp);
	   	/* Stop current Channel */
	  	ChangeManualSearchTips("Seeking transponder...","正在搜索频段...","",2);   //added by jy
	  	SRAVC_AVstop();
	   	xpdrInManSearch = cLocalTransSlot;
	   	if (!SRUIF_SendNewTuneReq(cLocalTransSlot, pstTransponderInfoTemp )/*TMTM &&(iInputFrequency!=0)*/)
	   	{	
			sttbx_Print( "finished send tunereq!!\n" );/*channel full*/

		    	blg_timeout = 30;	/* 30 second timeout at mostto wait for dbase to finish NIT ,wuhan modified,07-02-2005*/
		    	do
		    	{
				task_delay(WAIT_FOR_1_SEC);
				blg_timeout--;
		    	}while((DBaseBlgDone != TRUE) && (blg_timeout)&&(DBaseBlgDone != 100));

		   	if (DBaseBlgDone == TRUE)
		   	{    
	 		   	ChangeManualSearchTips("Transponder Found!!","找到该频段!","",2);   //wuhan added,07-02-2005
   			   	SRUIF_UpdateBoxInfo();
			   	sttbx_Print("succeed parse TS \n");		   	
			   	pstProgInfoTableTemp = SRDBE_GetFirstProgInfoForXpdr((SHORT)cLocalTransSlot, &iLocProgNoBeingViewed);
				#if 0/*modified by Allen,11-14-2005*/
			   	msm_ChannelDisplay(act_DirChNum);
				#else
				iLastProgramNumber = -1;/*added by Allen,11-14-2005*/
				//ChangeStateToDVBDisplay(DVB_MANUAL_SEARCH_STATE);
				msm_FeedbackMsg(cmd_Exit);
				#endif
			}
		   	else
		   	{
		   		sttbx_Print("can't succeed parse TS \n");
				ChangeManualSearchTips("No transponder!!","该频段无节目!","",2);   //added by jy
		   	}
	   	}
	   	else 
	   	{
	   		sttbx_Print( "Tuner param errors... \n"); //TMTM081104
  			SRDBE_DeleteProgramsByTransponder(cLocalTransSlot);
			DeleteTransponderSlot(cLocalTransSlot);
			ChangeManualSearchTips("Tuner param errors... ","高频头参数错误!","",2);   //added by jy
	   	}
   	}
   	else
   	{
   		sttbx_Print("\ntransponder exsit!\n");
   		/* Free the appended transponder */
  		SRDBE_DeleteProgramsByTransponder(cLocalTransSlot);
		DeleteTransponderSlot(cLocalTransSlot);
		/* added by Allen,11-07-2005,free the existed transponder and restart the search*/
		SRDBE_DeleteProgramsByTransponder(cLocalTransSlotTemp);
		DeleteTransponderSlot(cLocalTransSlotTemp);
		goto RESTART;
 		//ChangeManualSearchTips("Transponder exists!!","该频段已经存在!","",2);   //added by jy
	}

	//ChangeManualSearchTips("Press OK to Start... ","按Ok键开始...","",2);
	sttbx_Print("Finished Manual search!\n");  //wuhan added,05-19-2005

	return TRUE;//wuhan 05-19-2005
}

void msm_ShowManualWindow(void)
{
	sttbx_Print("\n---Enter Manual Search State\n");
	drawManualSearchWindow();
}

void msm_SelectManualItem(void)
{
	if(iMsDialogItemSelected == 0)
	{
		iMsDialogItemSelected = 1;
		searchFrequency[iMsInputFreqOffset]='\0';
	}
	else
	{
		iMsDialogItemSelected = 0;
		searchFrequency[iMsInputFreqOffset]='_';
		searchFrequency[iMsInputFreqOffset+1]='\0';
	}
	focusOnManualSearchItem(iMsDialogItemSelected);
}

void msm_ChangeManualBandwidth(int inc)
{
	if(iMsDialogItemSelected == 0 && !inc)
	{
		msm_FeedbackMsg(cmd_Back);
		return;
	}
	else if(iMsDialogItemSelected)
	{
		if(inc == 1)/*press RIGHT*/
			iMsBandWidth = (iMsBandWidth == MAX_BANDWIDTH)?MIN_BANDWIDTH:(iMsBandWidth+1);
		else/*press LEFT*/
			iMsBandWidth = (iMsBandWidth == MIN_BANDWIDTH)?MAX_BANDWIDTH:(iMsBandWidth-1);
			
		focusOnManualSearchItem(iMsDialogItemSelected);
	}
}

void msm_InputManualFrequency(int number)
{
	if(iMsDialogItemSelected != 0)
		return;
	if(number<0)/*BACK*/
	{
		if(iMsInputFreqOffset>0)
		{
			searchFrequency[iMsInputFreqOffset] = '\0';
			searchFrequency[--iMsInputFreqOffset] = '_';
			iMsFrequency = iMsFrequency/10;
		}
	}
	else if(iMsInputFreqOffset<MAX_FREQ_NUM)
	{
		searchFrequency[iMsInputFreqOffset] = number + '0';
		searchFrequency[++iMsInputFreqOffset] = '_';
		searchFrequency[iMsInputFreqOffset+1] = '\0';
		iMsFrequency = iMsFrequency*10+number;
	}
	focusOnManualSearchItem(iMsDialogItemSelected);
}

void msm_StartManualSearch(void)
{
	StartManualSearch(); 
}

void msm_PauseManualSearch(void)
{
}

void msm_ExitManualSearch(void)
{
	iLastProgramNumber = -1;
	msm_ClearScreen();
}


/*--------------------------------------EOF---------------------------------------*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -