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

📄 radio_mv114_kst.c

📁 Sunplus 8202S source code.
💻 C
📖 第 1 页 / 共 3 页
字号:
	case IRC_PREV:
		//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>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:
#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)
				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;
		}


#ifdef SUPPORT_APOGEE_AMP
	case IRC_VOLUME_UP:
//	    ircmd_volume_up();
//		set_volume(1);
		break ;
	case IRC_VOLUME_DN:
//	    ircmd_volume_down();
//		set_volume(0);
		break ;
#endif
	default:                                      
		break;
      }	      
}

#elif defined(ORITRON_DVD_RECEIVER)
void tuner_key(BYTE key)
{

    static BYTE enter_flag=0;
    static BYTE stereo = 1;
	//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;
	}     
/*		//xyy mask 2004-11-9
	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_RCVR_EQ:
		
		stereo = !stereo;
		if(!tuner.bandswitch)
		{
			set_mono_stereo(stereo);
			timeout_vfd = 4000;
		}
		break;
		
	case IRC_FORWARD:/* auto search up */
	case IRC_VFD_RIGHT:
		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 */
	case IRC_VFD_LEFT:
		// 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_P_SCAN:                             /* serach- */
		{
			search_dir=0;
			tuner.bandswitch=(!tuner.bandswitch);
			//printf("band\n");
			set_band(tuner.bandswitch);  
			write2mem=1;    	
			disfreq();
			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;

                OSD1000ISP_STATUS(OSDISP_MUTE, OSDIR_MUTE);

    			PrintOsdMsg(id,REGION1,0,0);
			}
			else
            {
//			    id=STR_OS_SPACE;

                OSD1000ISP_STATUS(OSDISP_CLEAR, OSDIR_GLOBAL);

		        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
			{
			if(tuner.fm_ch<(MAX_MEM_BAND-1))
				tuner.fm_ch++;
			else
				tuner.fm_ch = (MAX_MEM_BAND-1);
			set_station(tuner.fm_ch);
			}
		write2mem =1;
		disfreq();
		break;


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

	case IRC_PROGRAM:
#ifndef NEW_AUTO_SEARCH_ALL
		auto_search_all();
#else
		auto_search_all_am();
		auto_search_all_fm();
		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:
//	    ircmd_volume_up();
//		set_volume(1);
		break ;
	case IRC_VOLUME_DN:
//	    ircmd_volume_down();
//		set_volume(0);
		break ;
#endif
	default:                                      
		break;
      }	      
}
#endif

#include "sysmain2_inc.h" 
#include "kernel.h"
#include "tvif.h"
//#include "radio_rds.h"//xyy 2003-12-1 13:28

void   tuner_main(void)
{
	osd_init();//xyy 2003-9-23 16:36

#ifdef NEW_AUTO_SEARCH_ALL
	//change_system_clock(19);
#endif

#ifdef TUNER_DISABLE_VIDEO//xyy 2004-11-9
///	disable_video();
	tv_dacoff(0x3f);
#endif


	 
   	load_tuner_E2PROM();//marked by xyy 2003-9-23 9:01 

	tunerflag = 0;
	station_input_index = 0;
	tuner_oper_mode = NORMAL_TUNE;    

    
	init_tuner();
    
    if(test_tuner())
    {
		psprintf(RegionValStr[2],"TUNER NOT READY");
		PrintOsdMsg(STR_OS_SPACE,0x2,0,1);
#ifdef XINGQIU_RECEIVER_PANNEL	//xyy 2004-8-5
		vfd_set_str(0,0,0,"NOT READY");
#endif
		while (system_state != SYSTEM_OPEN)
		{
			polling();
		}
    }
    erase_vfd_mem(); 

    
    while (system_state != SYSTEM_OPEN)
    {
#ifdef SUPPORT_RDS_FUNCTION  //xyy
	
	rds_collect_data();
    disp_rds(rds_func_flag);
#endif            
	    disfreq();
		polling();//i=keyscan()
#if 0
		if(RDS_PS_RDY())
		{
			//printf("ps:%s\n",rds_get_ps());
			psprintf(RegionValStr[REGION1],"PS : %s",rds_get_ps());
			PrintOsdMsg(0, REGION1, 1, 1);
			RDS_PS_CLR_RDY();
		}
#endif
#ifdef SUPPORT_STEREO_DETECT
		if(is_stereo())
    	{
        	printf("stereo\n");    
    	}
    	else
    	{
        	printf("mono\n");
    	}
#endif //SUPPORT_STEREO_DETECT

⌨️ 快捷键说明

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