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

📄 radio_new_ui.c

📁 Sunplus 8202S source code.
💻 C
📖 第 1 页 / 共 4 页
字号:
		
		user_mute=!user_mute;
		tuner_mute(user_mute);
		
		if(user_mute)
		{
			id=STR_OS_MUTE;
			PrintOsdMsg(id,REGION1,0,0);
            
		}
		else
            
	        OSD_OnOffRegion(OSD_OFF,1);//xyy 2003-10-13 17:15
		break;
	}     
		
	case IRC_GOTO:
		tuner_oper_mode = AUTO_SEARCH;
		timeout_vfd = 0;   
		if(tuner.bandswitch  == 1)
		{
			auto_search_all_am();
			tuner.am_ch = 0;
			set_station(tuner.am_ch);
		}
		else
		{
			auto_search_all_fm();
			tuner.fm_ch = 0;
			set_station(tuner.fm_ch);
		}
		save_tuner_E2PROM();
		tuner_oper_mode = NORMAL_TUNE;
		disfreq();
		break;
		
	case IRC_SETUP:
		search_station = 1;
		tuner_oper_mode = RECALL_OR_STORE;
		timeout_vfd = 6000;
		break;
		
	case IRC_AUD_LANGUAGE:
		if(!tuner.bandswitch)
		{
			tuner_st_mono();
			timeout_vfd = 4000;
		}
		break;
		
	case IRC_FORWARD:/* auto search up */
		tuner_oper_mode = NORMAL_TUNE;    
		tuner.Istuning[tuner.bandswitch]=1;
		timeout_vfd = 0;
		// to avoid the noise when enter auto search mode
		tuner_mute_flag = 0;
		search_dir=1;
		break;
	case  IRC_BACKWARD:  /* auto search down */

		// to avoid the noise when enter auto search mode
		tuner_oper_mode = NORMAL_TUNE; 
		timeout_vfd = 0;   
		tuner_mute_flag = 0;
		search_dir=2;
		break;

	case IRC_LEFT:
		search_dir = 0;
		search(SEARCHDEC);
		break;
	case IRC_RIGHT:
		search_dir = 0;
		search(SEARCHADD);
		break;
	case IRC_PREV:
		//printf("left\n");
		if(tuner.bandswitch)//am
		{
			if(tuner.am_ch>1)
				tuner.am_ch--;
			else
				tuner.am_ch = 1;
			set_station(tuner.am_ch);
		
		}
		else //fm
		{
			if(tuner.fm_ch>=1)
				tuner.fm_ch--;
			else
//				tuner.fm_ch = 1;
				tuner.fm_ch = 0;
			set_station(tuner.fm_ch);
		}
		write2mem =1;
		break;

	case IRC_NEXT:
		
		if(tuner.bandswitch) //am
		{
			if(tuner.am_ch<MAX_MEM_BAND)
				tuner.am_ch++;
			else
				tuner.am_ch = MAX_MEM_BAND;
			set_station(tuner.am_ch);
		
		}
		else  //fm
		{
			if(tuner.fm_ch<MAX_MEM_BAND)
				tuner.fm_ch++;
			else
				tuner.fm_ch = MAX_MEM_BAND;
			set_station(tuner.fm_ch);
		}
		write2mem =1;
		break;

	case  IRC_RCVR_BAND:                             /* serach- */
		{
			search_dir=0;
			tuner.bandswitch=(!tuner.bandswitch);
			//printf("band\n");
			set_band(tuner.bandswitch);  
			write2mem=1;    	
			break;
		}
	default:                                      
		break;
      }	      
}
#elif defined(SUPPORT_Radio_NEW_UI)     //wuzhj add for new ui 2004/12/10

void tuner_key(BYTE key)    //wuzhj 2004/12/10
{
    static BYTE enter_flag=0;
	//return;
    switch(key)
	{
	case IRC_MUTE:
		{ 			
			user_mute=!user_mute;
			tuner_mute(user_mute);
			
			if(user_mute)
			{
    			psprintf(RegionValStr[1]," MUTE ");
			    osd_DrawString(SETUP_SUB_XSTART+8, SETUP_MENU_YSTART-2, RegionValStr[1], SFONTCOLOR, SBGCOLOR);
			}
			else
			{
                osd_draw_rect(416, 4, 100, 26, 4);
		        if(tuner.st_mono == 1)
	            {
		            psprintf(RegionValStr[1],"  ST  ");
	            }
	            else
	            {
		            psprintf(RegionValStr[1]," MONO ");
	            }
	
	                osd_DrawString(SETUP_SUB_XSTART+8, SETUP_MENU_YSTART-2, RegionValStr[1], SFONTCOLOR, SBGCOLOR);  

			}
			break;
		}   
	
	case IRC_SELECT:
		
        if(rds_radio_flag==0)
        {
            if(tuner.bandswitch) //am
		    {
			    if(am_radio_right_flag==0)
		        {
		    
		            tuner.am_ch=radio_down_flag;
                    set_station(tuner.am_ch);
		            write2mem =1;
		            disfreq();
		        }
		        else
		        {
		            tuner.am_ch=radio_down_flag+10;
                    set_station(tuner.am_ch);
		            write2mem =1;
		            disfreq();
		        }
		
		    }
	        else  //fm
	        {
			    if(radio_right_flag==0)
		        {
		    
		            tuner.fm_ch=radio_down_flag;
                    set_station(tuner.fm_ch);
		            write2mem =1;
		            disfreq();
		        }
		        else
		        {
		            tuner.fm_ch=radio_down_flag+10;
                    set_station(tuner.fm_ch);
		            write2mem =1;
		            disfreq();
		        }
	        }
        }
		    break;

	case IRC_UP:
	    
        if(rds_radio_flag==0)
        {
	        if(radio_down_flag <= 0)
		    {
			    radio_down_flag = 9;
		    }
		    else
		    {
			    radio_down_flag--;
		    }
            //osd_init_Radio();
            DrawRadioup(radio_down_flag,radio_right_flag,am_radio_right_flag);
        }		       
			break;
		
	case  IRC_DOWN:
	    
        if(rds_radio_flag==0)
        {
            if(radio_down_flag >= 9)
		    {
			    radio_down_flag = 0;
		    }
		    else
		    {
			    radio_down_flag++;
		    }
            //osd_init_Radio();
            DrawRadiodown(radio_down_flag,radio_right_flag,am_radio_right_flag);
        }		                
			break;
		

	case IRC_LEFT:

        if(rds_radio_flag==0)
        {
            if(tuner.bandswitch)
            {    	
                am_radio_right_flag=0;                       
                DrawRadiodown(radio_down_flag,radio_right_flag,am_radio_right_flag);            
            }		
            else
            {  
                radio_right_flag=0;                       
                DrawRadiodown(radio_down_flag,radio_right_flag,am_radio_right_flag);          
            }		 
        }		
		    break;

	case IRC_RIGHT:

        if(rds_radio_flag==0)
        {
            if(tuner.bandswitch)
            {    	
                am_radio_right_flag=1;                       
                DrawRadiodown(radio_down_flag,radio_right_flag,am_radio_right_flag);          
            }		
            else
            {
                radio_right_flag=1;                       
                DrawRadiodown(radio_down_flag,radio_right_flag,am_radio_right_flag);          
            }
        }     
		    break;


	case  IRC_FORMAT:
	    if(tuner.st_mono == 1)
	     {
	        tuner.st_mono = 0;
	     }
	    else
	     {
	        tuner.st_mono = 1;
	     }
		    tuner_st_mono();
		    break;
		
	case  IRC_ZOOM:                             /* serach- */
		{
			search_dir=0;
			tuner.bandswitch=(!tuner.bandswitch);
			//printf("band\n");
			set_band(tuner.bandswitch);  
			write2mem=1; 
            osd_init_Radio_fm();
			disfreq();   	
			break;
		}

	case IRC_PROGRAM:
#ifndef NEW_AUTO_SEARCH_ALL
		auto_search_all();
#else
       // osd_init_Radio_fm();
        auto_search_all_am();
		auto_search_all_fm();
		//write2mem=1;
		tuner.fm_ch = 0;
		set_station(tuner.fm_ch);  //goto the 1st station
#endif  //NEW_AUTO_SEARCH_ALL
		break;

#ifdef SUPPORT_APOGEE_AMP
	case IRC_VOLUME_UP:

        Radio_vol_up();
        //subvol_time_out = 10;
        osd_draw_rect(416, 35, 132, 26, 11);
        osd_DrawString(SETUP_SUB_XSTART+8, SETUP_MENU_YSTART-1, RegionValStr[REGION1], SFONTCOLOR, SBGCOLOR);

//	    ircmd_volume_up();
//		set_volume(1);
		break ;
	case IRC_VOLUME_DN:
        Radio_vol_down();
        osd_draw_rect(416, 35, 132, 26, 11);
        //subvol_time_out = 10;
	    osd_DrawString(SETUP_SUB_XSTART+8, SETUP_MENU_YSTART-1, RegionValStr[REGION1], SFONTCOLOR, SBGCOLOR);

//	    ircmd_volume_down();
//		set_volume(0);
		break ;
#endif
    case IRC_PROLOGIC:
       {
         BYTE buf[40];
         AudioSetVolume(0);  // cmhuang, 2003/8/28 11:58PM

        prologic_val++;
        if(prologic_val>2) 
        prologic_val=0;
    
    switch(prologic_val)
    {
    case 0:
        //id=STR_OS_PL_MOVIE;
        psprintf(buf," PROLOGIC:[MOVIE MODE]");
        osd_draw_rect(14, 35, 360, 26, 11);
        osd_DrawString(1, SETUP_MENU_YSTART-1, buf, SFONTCOLOR, SBGCOLOR);
        break;
    case 1:
        //id=STR_OS_PL_MUSIC;
        psprintf(buf," PROLOGIC:[MUSIC MODE]");
        osd_draw_rect(14, 35, 360, 26, 11);
        osd_DrawString(1, SETUP_MENU_YSTART-1, buf, SFONTCOLOR, SBGCOLOR);
        break;
    case 2:
        //id=STR_OS_OFF;
        psprintf(buf," PROLOGIC:[ OFF ] ");
        osd_draw_rect(14, 35, 360, 26, 11);
        osd_DrawString(1, SETUP_MENU_YSTART-1, buf, SFONTCOLOR, SBGCOLOR);
        break;
    }
    //PrintOsdMsg(STR_OS_PROLOGIC|(id<<OSDSTR_ID_TOTL_BIT),REGION1,1,4);
   
    
    set_prologic_val(prologic_val);
    AudioDemute();  // cmhuang, 2003/8/28 11:58PM

        break;
}
    case IRC_PAUSE:
       
        if(rds_radio_flag==0)
        {
		osd_init_Radio_rds();
		disp_rds_func();    		
	    osd_DrawString(1, SETUP_MENU_YSTART-2, RegionValStr[2], SFONTCOLOR, SBGCOLOR);
        rds_radio_flag=1;
        }
        else
        {
         osd_init_Radio_fm();      
         disfreq();
         rds_radio_flag=0;
        }
      
        break;
    case IRC_NEXT:/* auto search down */
#ifdef SUPPORT_RDS_FUNCTION//xyy 2003-12-4 16:18
        rds_clear_var();
#endif	
{
			tuner.Istuning[tuner.bandswitch]=1;
			if(search_dir&&(rep_ir_times<INC_SPEED_TIMES))
			{
				search_dir=0;
				//tuner_mute( 0 ); //demute when auto search
				tuner_mute_flag = 1; // auto demute after 500ms
			}else
			{
				if(rep_ir_times<INC_SPEED_TIMES)	             	
				{
#ifdef TUNER_DBG
					//printf("dec\n");
#endif					
					search(SEARCHDEC);
				}else
				{   
					// to avoid the noise when enter auto search mode
					tuner_mute_flag = 0;
					search_dir=2;
		        }
		     }

        break;
}       
    case IRC_PREV:/* auto search up */
#ifdef SUPPORT_RDS_FUNCTION//xyy 2003-12-4 16:18
        rds_clear_var();
#endif	
{
			tuner.Istuning[tuner.bandswitch]=1;
			if(search_dir&&(rep_ir_times<INC_SPEED_TIMES))
			{	             	 	
				search_dir=0;
				//tuner_mute( 0 ); // demute when auto search
				tuner_mute_flag = 1; // auto demute after 500ms
			}else
			{
				if(rep_ir_times<INC_SPEED_TIMES)
				{
#ifdef TUNER_DBG
					//printf("add\n");
#endif					
					search(SEARCHADD);
				}else 
				{   
					// to avoid the noise when enter auto search mode
					tuner_mute_flag = 0;
					search_dir=1;
		             	}
			}  
        break;
}
	default:                                      
		break;
      }	      
}

#else

void tuner_key(BYTE key)
{

    static BYTE enter_flag=0;
	//return;
    switch(key)
	{
	case IRC_MUTE:
		{ 
			int id;
			//rds_decoder_init();
			//return;
			//printf("size of :%d\n",sizeof(tuner));
			user_mute=!user_mute;
			tuner_mute(user_mute);
			
			if(user_mute)
			{
				id=STR_OS_MUTE;
    			PrintOsdMsg(id,REGION1,0,0);
			}
			else
				{
//			    id=STR_OS_SPACE;
		        OSD_OnOffRegion(OSD_OFF,1);//xyy 2003-10-13 17:15
				}
			break;
		}   

#ifdef SUPPORT_RDS_FUNCTION		
	case IRC_SELECT:

		
		if(rds_func_flag >= 4)
		{
			rds_func_flag = 0;
		}
		else
		{
			rds_func_flag++;
		}
		disp_rds_func(rds_func_flag);
		break;
#endif /*SUPPORT_RDS_FUNCTION*/

	case IRC_UP:/* auto search up */
	
#ifdef SUPPORT_RDS_FUNCTION//xyy 2003-12-4 16:18
        rds_clear_var();
#endif	
		{
			tuner.Istuning[tuner.bandswitch]=1;
			if(search_dir&&(rep_ir_times<INC_SPEED_TIMES))
			{	             	 	
				search_dir=0;
				//tuner_mute( 0 ); // demute when auto search
				tuner_mute_flag = 1; // auto demute after 500ms
			}else
			{
				if(rep_ir_times<INC_SPEED_TIMES)
				{
#ifdef TUNER_DBG
					//printf("add\n");
#endif
					
					search(SEARCHADD);
				}else 
				{   
					// to avoid the noise when enter auto search mode
					tuner_mute_flag = 0;
					search_dir=1;
		             	}
			}   
			break;
		}
	case  IRC_DOWN:  /* auto search down */

#ifdef SUPPORT_RDS_FUNCTION//xyy 2003-12-4 16:18
        rds_clear_var();
#endif	
		{
			tuner.Istuning[tuner.bandswitch]=1;
			if(search_dir&&(rep_ir_times<INC_SPEED_TIMES))
			{
				search_dir=0;
				//tuner_mute( 0 ); //demute when auto search
				tuner_mute_flag = 1; // auto demute after 500ms
			}else
			{
				if(rep_ir_times<INC_SPEED_TIMES)	             	
				{
#ifdef TUNER_DBG
					//printf("dec\n");
#endif
					
					search(SEARCHDEC);
				}else
				{   
					// to avoid the noise when enter auto search mode
					tuner_mute_flag = 0;
					search_dir=2;
		             	}
		          }
			break;
		}

	case IRC_LEFT:
		//printf("left\n");
#ifdef SUPPORT_RDS_FUNCTION//xyy 2003-12-4 16:18
        rds_clear_var();
#endif	
		
		if(tuner.bandswitch)//am
			{
			if(tuner.am_ch>0)
				tuner.am_ch--;
			else
				tuner.am_ch = 0;
			set_station(tuner.am_ch);
		
		}
		else //fm
			{
			if(tuner.fm_ch>0)
				tuner.fm_ch--;
			else
				tuner.fm_ch = 0;
			set_station(tuner.fm_ch);
			}
		write2mem =1;
		disfreq();
		break;

	case IRC_RIGHT:
#ifdef SUPPORT_RDS_FUNCTION//xyy 2003-12-4 16:18
        rds_clear_var();
#endif	
		
		if(tuner.bandswitch) //am
			{
			if(tuner.am_ch<(MAX_MEM_BAND-1))
				tuner.am_ch++;
			else
				tuner.am_ch = (MAX_MEM_BAND-1);
			set_station(tuner.am_ch);
		
		}
		else  //fm

⌨️ 快捷键说明

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