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

📄 复件 bu2624.c

📁 sunplus spca514 cdmp3 源码
💻 C
📖 第 1 页 / 共 2 页
字号:
				       		 autosrch_step++;

                        };
                    }
                
                 	
              }
              break;
    	case AUTOSRCH_STEP5:
    		if(is_search_all_station)
    		{
    			if(gps->ps_amfm_flag)
    			{
    				if(AMfreq >=AMreq_MAX)
    				{
    					is_search_all_station = 0;
    					is_autosearching = 0;
    					AMfreq = gps->ps_am_station[0];
    					switch_fmam(gps->ps_amfm_flag);
    					mute_radio(0);
    				};
    			}
    			else
    			{
    				if(FMfreq>=FMreq_MAX)
    				{
    					is_search_all_station = 0;
    					is_autosearching = 0;
    					FMfreq = gps->ps_fm_station[0];
    					switch_fmam(gps->ps_amfm_flag); 
    					mute_radio(0);
    					break;
    				};
    			};
    		};
    		change_freq_value(gps->ps_amfm_flag,search_dir);
    		ok_count = 0;
    		unok_count = 0;
    		autosrch_step = AUTOSRCH_STEP1;
    		break;
    }  //switch
}

#endif
extern const RADIO_KEY_REDIRECTION_MATRIX radio_key_lut;

void switch_radio_station(void)
{
	
	if(gps->ps_am_no < MAX_AM_STATION ) AMfreq = gps->ps_am_station[gps->ps_am_no];
	if(gps->ps_fm_no < MAX_FM_STATION) FMfreq = gps->ps_fm_station[gps->ps_fm_no];
	switch_fmam(gps->ps_amfm_flag);
	//mute_radio(0);
	//radio_station_changed = 1;
	g_ui_tmp_msg_cnt = 0;
	radio_menu_id = RADIO_RUN_MENU;

}


void radio_action(WORD code)
{
	int i;
	unsigned long param;
	WORD radio_key;
	if(!map_radio_key( (code&0xff), &radio_key_lut, &radio_key))
	 return;

	printf("radio_key=:");debug_out_wx(radio_key);printf("\n");
	switch(radio_key)
	{
	/* case UICC_POWER:
	 	ie_send_ex(IE_CORE_CMD_POWER, (void*)1);
	 	break;
	 case UICC_AUDIO:
	 	if(!gps->amfm_flag)
	 	{
	 		if(is_stereo) is_stereo = 0;
	 		else is_stereo = 1;
	 		switch_audio_channel(is_stereo);
	 	};
	 	break;*/
	 case RD_AUTO_SEARCH_F:
	    if(is_search_all_station) break;
	    radio_menu_id = RADIO_RUN_MENU;
		is_search_all_station = 0;
		is_autosearching = 1;
	    g_ui_tmp_msg_cnt = 0;
		search_ok = 0;
		search_dir = 1;
		//gps->ps_amfm_flag = 0;
		autosrch_step = AUTOSRCH_STEP5;
		//turnauto_serach
		break;
	case RD_AUTO_SEARCH_R:
	    if(is_search_all_station) break;
		radio_menu_id = RADIO_RUN_MENU;
		is_autosearching = 1;
		search_ok = 0;
		search_dir = 0;
		is_search_all_station = 0;
		autosrch_step = AUTOSRCH_STEP5;
		g_ui_tmp_msg_cnt = 0;
		//turnauto_serach
		break;
		
	case RD_FMAM:
		if(is_search_all_station||is_autosearching) break;
		mute_radio(1);
		if(gps->ps_amfm_flag) gps->ps_amfm_flag = 0;
		else gps->ps_amfm_flag = 1;
		switch_radio_station();
		ps_update_radio(PS_UPDATE_AMFM_FLAG);
		//radio_station_changed = 1;
		usleep(100000); //100ms
		mute_radio(0);
		break;
	
	case RD_VOLUME_UP:
	
	    switch(radio_menu_id)
	    {
	    case RADIO_RUN_MENU:
	    case RADIO_ERR_MENU:
			radio_menu_id = RADIO_VOL_MENU;
			volume_key_pressed = 1;
			break;
		case RADIO_VOL_MENU:
			if(Mchvolume < 2*MAX_VOLUME)
  			{
     			Mchvolume++;
     			#ifdef USE_M62429
				write_volume_to_m62429();
				#endif
				#ifdef USE_M62420
				write_volume_to_m62420();
				#endif
  			}
			volume_key_pressed = 1;
			break;
			
		case RADIO_BASS_MENU:
			m62420_bass_up();
			bass_key_pressed = 1;
			break;
		case RADIO_TREBLE_MENU:
			m62420_treble_up();
			treble_key_pressed = 1;
			break;
		case RADIO_STORE_MENU:
			radio_count = radio_count+1;
			if(gps->ps_amfm_flag)
				radio_count = radio_count%MAX_AM_STATION;
			else
				radio_count = radio_count%MAX_FM_STATION;
			break;
		}
		
		g_ui_tmp_msg_cnt = 30;  //3s
		break;
	
	case RD_VOLUME_DOWN:
	    switch(radio_menu_id)
	    {
	    case RADIO_RUN_MENU:
	    case RADIO_ERR_MENU:
			radio_menu_id = RADIO_VOL_MENU;
			volume_key_pressed = 1;
			break;
		case RADIO_VOL_MENU:
			Mchvolume--;
     		#ifdef USE_M62429
     		write_volume_to_m62429();
			#endif
			#ifdef USE_M62420
     		write_volume_to_m62420();
			#endif
			volume_key_pressed = 1;
			break;
		case RADIO_BASS_MENU:
			m62420_bass_down();
			bass_key_pressed = 1;
			break;
		case RADIO_TREBLE_MENU:
			m62420_bass_down();
			bass_key_pressed = 1;
			break;
		case RADIO_STORE_MENU:
			if(radio_count >0)
				radio_count = radio_count-1;
			else
			{
				if(gps->ps_amfm_flag)
					radio_count = MAX_AM_STATION - 1;
				else
					radio_count = MAX_FM_STATION - 1;
			};
			break;
		}
	    g_ui_tmp_msg_cnt = 30; //3s
		break;
	
	case RD_STEP_B:
		if(is_autosearching || is_search_all_station) break;
		//tuner_handsearch(0,0);
		tuner_handsearch(gps->ps_amfm_flag, 0);	
		break;
	case RD_STEP_F:
	    if(is_autosearching || is_search_all_station) break;
		//tuner_handsearch(0,1);
		tuner_handsearch(gps->ps_amfm_flag,1);
		break;
	case RD_STOP:
		
		is_autosearching = 0;
		is_search_all_station = 0;
		switch_radio_station();
		usleep(50000);
		mute_radio(0);
		break;
	case RD_AUDIO:
		if(!gps->ps_amfm_flag)
		{
			if(is_stereo)
				is_stereo = 0;
			else
				is_stereo = 1;
			switch_audio_channel(is_stereo);
		};
		break;
	case RD_SKIPB:
	    if(is_search_all_station || is_autosearching) break;
	   	mute_radio(1);
	    if(gps->ps_amfm_flag)
	    {
	    	if( gps->ps_am_no == 0 )
	    		gps->ps_am_no = MAX_AM_STATION-1;
	    	else
	    		gps->ps_am_no--;
	    	ps_update_radio(PS_UPDATE_AM_NO);
	    }
	    else
	    {
	    	if(gps->ps_fm_no==0)
	    		gps->ps_fm_no=MAX_FM_STATION-1;
	    	else
	    		gps->ps_fm_no--;
	    	ps_update_radio(PS_UPDATE_FM_NO);
	    };
	    switch_radio_station();
	    usleep(100000);//100ms
	    mute_radio(0);
	    //radio_station_changed = 1;
	    break;
	
	case RD_SKIPF:
		if(is_search_all_station||is_autosearching) break;
		mute_radio(1);
		if(gps->ps_amfm_flag)
		{
			gps->ps_am_no=(gps->ps_am_no+1)%MAX_AM_STATION;
			ps_update_radio(PS_UPDATE_AM_NO);
		}
		else
		{
			gps->ps_fm_no=(gps->ps_fm_no+1)%MAX_FM_STATION;
			ps_update_radio(PS_UPDATE_FM_NO);
		}
		switch_radio_station();
		usleep(100000);  //100ms
		mute_radio(0);
		//radio_station_changed = 1;
		break;
	/*
	case UICC_SEARCH:
		if(is_search_all_station) break;
		is_search_all_station = 1;
	    radio_menu_id = RADIO_RUN_MENU;
	    g_ui_tmp_msg_cnt = 0;
		search_ok = 0;
		search_dir = 1;
		autosrch_step = 0;
		if(gps->amfm_flag)
		{
		 //am
			gps->am_station_no = 0;
		    AMfreq = AMreq_MIN - AMreq_STEP;
		}
		else
		{//FM
			gps->fm_station_no = 0;
			FMfreq = FMreq_MIN - FMreq_STEP;
		};
		is_autosearching = 1;
	    break;
	  */  
	case RD_STORE:
		if(is_search_all_station||is_autosearching) break;
		if(radio_menu_id != RADIO_STORE_MENU)
		{
		//	flashtime = 0;
			radio_menu_id = RADIO_STORE_MENU;
			if(gps->ps_amfm_flag)
				radio_count = gps->ps_am_no;
			else 
				radio_count = gps->ps_fm_no;
			g_ui_tmp_msg_cnt = 40;
		}
		else
		{
			
			if(gps->ps_amfm_flag)
			{
				gps->ps_am_station[radio_count] = AMfreq;
				gps->ps_am_no = radio_count;
				ps_update_radio(PS_UPDATE_AM_STATION);
			}
			else
			{
				gps->ps_fm_station[radio_count] = FMfreq;
				gps->ps_fm_no = radio_count;
				ps_update_radio(PS_UPDATE_FM_STATION);

			};
			//switch_radio_station();
			//radio_station_changed = 1;
		}
		/*	else
			{
				radio_menu_id = RADIO_ERR_MENU;
				g_ui_tmp_msg_cnt = 20;   //6
			}
		*/
		break;
	
	case RD_0:
	case RD_1:
	case RD_2:
	case RD_3:
	case RD_4:
	case RD_5:
	case RD_6:
	case RD_7:
	case RD_8:
	case RD_9:
	    if(is_search_all_station || is_autosearching) break;
	    if((radio_menu_id == RADIO_VOL_MENU) || (radio_menu_id == RADIO_BASS_MENU)
	    	|| (radio_menu_id == RADIO_TREBLE_MENU)) break;
	    g_ui_tmp_msg_cnt = 40 ; //30s
	    if((radio_menu_id == RADIO_RUN_MENU)||(radio_menu_id == RADIO_ERR_MENU)) //first
	    {
	    	radio_menu_id = RADIO_DIGIT_MENU;
			radio_count = 0;
		};
		if(radio_count >= 10000) break;
		radio_count *= 10;
		printf("rd_code=");debug_out_wx(radio_key);printf("\n");
		radio_count += ((radio_key&0xff) - RD_0);
		printf("radio_count_1=");debug_out_wx(radio_count);printf("\n");

		if(radio_menu_id == RADIO_STORE_MENU)
		{
			if(gps->ps_amfm_flag)
			{
				if(radio_count >= MAX_AM_STATION)
					radio_count = radio_count / 10;
			}
			else
			{
				if(radio_count >= MAX_FM_STATION)
					radio_count = radio_count / 10;
			}		
		};
		printf("radio_count_2=");debug_out_wx(radio_count);printf("\n");


		break;
	case RD_CLEAR:
		radio_count = 0;
		break;
	case RD_ENTER:
		mute_radio(1);
		if(radio_menu_id != RADIO_DIGIT_MENU) break;
		if((radio_count>=AMreq_MIN)&&(radio_count<=AMreq_MAX))
		{
			gps->ps_amfm_flag = 1;
			AMfreq = radio_count;
			//i = search_station_no(radio_count,gps->am_station);
			//if(i<30) 
			//	{
			//		gps->am_station_no = i;
		//			radio_station_changed = 1;
		//		}
		//		else gps->am_station_no +=60;
			switch_fmam(gps->ps_amfm_flag);
			//mute_radio(0);
			ps_update_radio(PS_UPDATE_AMFM_FLAG);
		}
		else if((radio_count>=FMreq_MIN)&&(radio_count<=FMreq_MAX))
		{
			gps->ps_amfm_flag = 0;
			FMfreq = radio_count;
					
					//i = search_station_no(radio_count, gps->fm_station);
					
					//if(i<30) 
					//{
					//	gps->fm_station_no = i;
					//	radio_station_changed = 1;
					//}
					//else gps->fm_station_no += 60;
			switch_fmam(gps->ps_amfm_flag);
			//mute_radio(0);
			ps_update_radio(PS_UPDATE_AMFM_FLAG);
		}
		else 
		{
			if(gps->ps_amfm_flag)
			{
				if(radio_count < MAX_AM_STATION)
				{
					gps->ps_am_no = radio_count;
					switch_radio_station();
					ps_update_radio(PS_UPDATE_AM_NO);
				}
				else
				{	
					radio_menu_id = RADIO_ERR_MENU;
					g_ui_tmp_msg_cnt = 20;
				};
			
			}
			else
			{
				if(radio_count < MAX_FM_STATION)
				{
					gps->ps_fm_no = radio_count;
					switch_radio_station();
					ps_update_radio(PS_UPDATE_FM_NO);
				}
				else
				{	
					radio_menu_id = RADIO_ERR_MENU;
					g_ui_tmp_msg_cnt = 20;
				};
			}
		}
		if(radio_menu_id!=RADIO_ERR_MENU)
		{
			radio_menu_id = RADIO_RUN_MENU;
			g_ui_tmp_msg_cnt = 0;
		};
		usleep(100000); //100ms
		mute_radio(0);
		break;
	case RD_MUTE:
	     mute_radio(!radio_is_muted);
	     break;
	}
}




⌨️ 快捷键说明

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