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

📄 fm_utile.c

📁 智原mp3 SDK 开发包 与巨力 有mp3 wma ogg decoder
💻 C
字号:
/****************************
 *   mp3_utile.c
 ****************************/

#include <string.h>
#include "api.h"
#include "lcd.h"
#include "common.h"
#include "display.h" 
#include "fm_display.h"
#include "fm_main.h"
#include "prefer.h"
#include "fm_tea5767.h"


void vSaveStationTabToFlash()
{
	tUserPreference.Fm_StationTable[tUserPreference.Fm_StationCurrSaveOrder] = u16RadioFrequency;
	tUserPreference.Fm_StationCurrSaveOrder++;
	if (tUserPreference.Fm_StationTotalSaveNum < 20)   //Fm_StationTotalNum为保存的电台总数,范围为0-20而不是0-19
		tUserPreference.Fm_StationTotalSaveNum = tUserPreference.Fm_StationCurrSaveOrder;	 
	if (tUserPreference.Fm_StationCurrSaveOrder>19)
	{	
		tUserPreference.Fm_StationCurrSaveOrder = 0;
		tUserPreference.Fm_StationTotalSaveNum  = 20;
	}
	api_bSavePreferenceData(&tUserPreference,sizeof(USER_PREFERENCE_T)); 
}

void vReadStationTabFromFlash()
{
	
	INT8U i;
	for(i = 0;i<tUserPreference.Fm_StationTotalSaveNum;i++)
	{
		if(tUserPreference.Fm_StationTable[i] > FM_FREQ_MAX)
			tUserPreference.Fm_StationTable[i] = FM_FREQ_MIN;
		if(tUserPreference.Fm_StationTable[i] < FM_FREQ_MIN)
			tUserPreference.Fm_StationTable[i] = FM_FREQ_MAX;
    	}
	u16RadioFrequency = tUserPreference.Fm_StationTable[tUserPreference.Fm_StationCurrPlayOrder];
	if (tUserPreference.Fm_StationCurrPlayOrder >= tUserPreference.Fm_StationTotalSaveNum-1)	
		tUserPreference.Fm_StationCurrPlayOrder = 0; 
	else
		tUserPreference.Fm_StationCurrPlayOrder++;

}

void vDeleteCurrStation()
{
	INT8U i;
	
	if(tUserPreference.Fm_StationTotalSaveNum == 0)
	{
		tUserPreference.Fm_StationCurrSaveOrder = 0;	
		return;	
	}
	for(i=tUserPreference.Fm_StationCurrPlayOrder;i<tUserPreference.Fm_StationTotalSaveNum;)
		tUserPreference.Fm_StationTable[i] = tUserPreference.Fm_StationTable[++i];
	tUserPreference.Fm_StationTotalSaveNum--;
}

void vDeleteAllStation()
{
	tUserPreference.Fm_StationCurrPlayOrder = 0;
	tUserPreference.Fm_StationCurrSaveOrder	= 0;
	tUserPreference.Fm_StationTotalSaveNum  = 0;
}


#if 0// marco mark for fm auto search bug
void autosearch()
{
	u16RadioFrequency = FM_FREQ_MIN;
	vDeleteAllStation();//删除所有电台
	close_volume();
	ui_draw1();
	while(u16RadioFrequency < FM_FREQ_MAX)
	{
		if(bFmAutoSearch(SEARCH_UP))
			vSaveStationTabToFlash();	
		bFmFrequenceyDownNarrow();
		gfx_radio_freq();		
	}
	tUserPreference.Fm_StationCurrPlayOrder= 0;
	vReadStationTabFromFlash();
	bSetFmFrequency(u16RadioFrequency);
	gfx_Disp_StationOrder();
	gfx_radio_freq();   
	close_volume();
	init_volume();
}
#else
void autosearch()
{
	u16RadioFrequency = FM_FREQ_MIN;
	vDeleteAllStation();//删除所有电台
	close_volume();
	ui_draw();

	while(u16RadioFrequency < FM_FREQ_MAX)
	{
	
		if(bFmFrequencyUp())
		{				
			bFmFrequenceyDownNarrow();
			gfx_radio_freq();
		}
		if(bFmSearchRead())
		{
			vSaveStationTabToFlash();
			//gfx_Disp_StationOrder_all();
		}
		bFmFrequenceyDownNarrow();
		gfx_radio_freq();
		if(u16RadioFrequency == FM_FREQ_MIN)
			break;
	}
	

	if(tUserPreference.Fm_StationTotalSaveNum != 0)
	{
		tUserPreference.Fm_StationCurrPlayOrder= 0;
		vReadStationTabFromFlash();
		
	}
	else
	{
		u16RadioFrequency = FM_FREQ_MIN;
	}
	bSetFmFrequency(u16RadioFrequency);
	gfx_Disp_StationOrder();
	gfx_radio_freq();
//	close_volume();
	init_volume();
}



#endif

⌨️ 快捷键说明

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