?? fmdisplay.c
字號:
* desc: 添加注釋
********************************************************************************
*/
__attribute__((section(".fm_text,\"ax\""))) //Ver1.8 2007-03-08
void DisplayFmMenu(void)
{
unsigned int FmDispBuf[MENU_PER_BYTE];
unsigned int temp, TempColor;
unsigned int Temp_DrawMode;
TempColor = LCD_GetColor();
Temp_DrawMode = LCD_SetTextMode(LCD_DRAWMODE_TRANS);
if (FmDisplayFlag & FM_DISPFLAG_SUBMENU_BK) {
//LCD_SetDispRect(RADIO_SUBMENUBK_PIC_X, RADIO_SUBMENUBK_PIC_Y, (RADIO_SUBMENUBK_PIC_X + RADIO_SUBMENUBK_PIC_XSIZE - 1), (RADIO_SUBMENUBK_PIC_Y + RADIO_SUBMENUBK_PIC_YSIZE - 1));
DisplayPicture(RADIO_SUBMENUBK_PIC_X, RADIO_SUBMENUBK_PIC_Y, RADIO_SUBMENUBK_PIC_XSIZE, RADIO_SUBMENUBK_PIC_YSIZE, RADIO_SUBMENUBK_PIC);
}
if (FmDisplayFlag & FM_DISPFLAG_SUBMENU_SEL)
{
LCD_SetColor(COLOR_BLACK);
#if(FM_LIST_ENABLE == 1)
for (temp = FM_STATE_MANUAL; temp <= FM_STATE_LOAD; temp ++)
#else
for (temp = 0; temp < 5; temp ++)
#endif
{
DisplayPicture(RADIO_SUBMENUBK_PIC_X, (RADIO_SUB_MENU_TXT_Y + (temp * RADIO_SUB_MENU_TXT_YSTEP)),
RADIO_SUBMENUBK_PIC_XSIZE, RADIO_SUB_MENU_TXT_YSTEP,
(NFA_RADIO_SUBMENUBK_PIC + ((unsigned long)(((RADIO_SUB_MENU_TXT_Y - RADIO_SUBMENUBK_PIC_Y) + (temp * RADIO_SUB_MENU_TXT_YSTEP)) * RADIO_SUBMENUBK_PIC_XSIZE * 2))));
if(temp == FmFunctionSele)
{
if ((FmFunctionSele == FM_STATE_SAVE) || (FmFunctionSele == FM_STATE_DEL))
{
DisplayPicture(RADIO_SUBMENU_ARROW_PIC_X, (RADIO_SUB_MENU_TXT_Y + (temp * RADIO_SUB_MENU_TXT_YSTEP)) + 2,
RADIO_SUBMENU_ARROW_PIC_XSIZE, RADIO_SUBMENU_ARROW_PIC_YSIZE, RADIO_SUBMENU_ARROW_ARROW);
}
LCD_SetTextMode(LCD_DRAWMODE_REV);
}
DisplayMenuStr(RADIO_SUB_MENU_TXT_X, (RADIO_SUB_MENU_TXT_Y + (temp * RADIO_SUB_MENU_TXT_YSTEP)), RADIO_SUB_MENU_TXT_XSIZE, RADIO_SUB_MENU_TXT_YSIZE, LCD_TEXTALIGN_LEFT, (NFA_RADIO_TEXT + (unsigned long)(temp) * MENU_PER_BYTE));
LCD_SetTextMode(LCD_DRAWMODE_TRANS);
}
}
FmDisplayFlag = FM_DISPFLAG_NULL;
LCD_SetTextMode(Temp_DrawMode);
LCD_SetColor(TempColor);
}
/*
********************************************************************************
* Copyright (C),2004-2007, Fuzhou Rockchip Electronics Co.,Ltd.
* Function name : FmFreq2Ascii()
* Author: ZHengYongzhi
* Description: 將頻率轉成ASCII碼
*
* Input:
* Output:
* Return:
* Calls:
*
* History: <author> <time> <version>
* ZhengYongzhi 2006/01/01 Ver1.0
* desc: ORG
* --------------------------------------------------------------------
* ZhengYongzhi 2007-5-7 Ver1.9
* desc: 添加注釋
********************************************************************************
*/
__attribute__((section(".fm_text,\"ax\"")))
void FmFreq2Ascii(unsigned int chl, unsigned int freq, unsigned int *pDispBuf)
{
pDispBuf[0] = 'C';
pDispBuf[1] = 'H';
pDispBuf[2] = (chl+1)/10 + '0';
pDispBuf[3] = (chl+1)%10 + '0';
pDispBuf[4] = ':';
pDispBuf[5] = ' ';
pDispBuf[8] = '.';
pDispBuf[10] = 'M';
pDispBuf[11] = 'H';
pDispBuf[12] = 'z';
pDispBuf[13] = 0;
if(freq != 0){
pDispBuf[5] = freq /10000;
pDispBuf[5] += (pDispBuf[5]?'0':' ');
pDispBuf[6] = (freq%10000)/1000 + '0';
pDispBuf[7] = (freq%1000)/100 + '0';
pDispBuf[9] = (freq%100)/10 + '0';
}else{
pDispBuf[6] = 'E';
pDispBuf[7] = 'm';
pDispBuf[8] = 'p';
pDispBuf[9] = 't';
pDispBuf[10] = 'y';
pDispBuf[11] = 0;
}
}
/*
********************************************************************************
* Copyright (C),2004-2007, Fuzhou Rockchip Electronics Co.,Ltd.
* Function name : DisplayFmList()
* Author: ZHengYongzhi
* Description: 顯示存臺/取臺的電臺列表
*
* Input:
* Output:
* Return:
* Calls:
*
* History: <author> <time> <version>
* ZhengYongzhi 2006/01/01 Ver1.0
* desc: ORG
* --------------------------------------------------------------------
* ZhengYongzhi 2007-5-7 Ver1.9
* desc: 添加注釋
********************************************************************************
*/
__attribute__((section(".fm_text,\"ax\"")))
void DisplayFmList(void)
{
unsigned int i,j,m;
unsigned int mode_tmp;
unsigned int temp, TempColor, Temp_DrawMode;
unsigned int per_id = PrevCh;
unsigned int cur_id = CurCh;
unsigned int k;
unsigned int *pFmFreq;
unsigned int FmDispBuf[MENU_PER_BYTE];
TempColor = LCD_GetColor();
Temp_DrawMode = LCD_SetTextMode(LCD_DRAWMODE_TRANS);
if (FmDisplayFlag & FM_DISPFLAG_LIST_BK) {
//LCD_SetDispRect(RADIO_LISTBK_PIC_X, RADIO_LISTBK_PIC_Y, (RADIO_LISTBK_PIC_X + RADIO_LISTBK_PIC_XSIZE - 1), (RADIO_LISTBK_PIC_Y + RADIO_LISTBK_PIC_YSIZE - 1));
DisplayPicture(RADIO_LISTBK_PIC_X,RADIO_LISTBK_PIC_Y,RADIO_LISTBK_PIC_XSIZE, RADIO_LISTBK_PIC_YSIZE, RADIO_LISTBK_PIC);
k = cur_id / DEL_FM_SCREEN_PER_LINE;
k = k * DEL_FM_SCREEN_PER_LINE;
pFmFreq = &GlobalFmVar.FmFreqArray[k];
LCD_SetColor(COLOR_BLACK);
for (i = 0; i < DEL_FM_SCREEN_PER_LINE; i++, pFmFreq++) {
FmFreq2Ascii(i+k, *pFmFreq, FmDispBuf);
if ((i + k) == cur_id) LCD_SetTextMode(LCD_DRAWMODE_REV);
LCD_NFDispStringAt(RADIO_SUB_LIST_TXT_X, (RADIO_SUB_LIST_TXT_Y + i * RADIO_SUB_LIST_TXT_YSTEP), FmDispBuf);
LCD_SetTextMode(LCD_DRAWMODE_TRANS);
}
if (cur_id < DEL_FM_SCREEN_PER_LINE) {
DisplayPicture(RADIO_LIST_UPICON_PIC_X,RADIO_LIST_UPICON_PIC_Y,RADIO_LIST_UPICON_PIC_XSIZE, RADIO_LIST_UPICON_PIC_YSIZE, RADIO_LIST_UPICON_ARROWBK);
} else {
DisplayPicture(RADIO_LIST_UPICON_PIC_X,RADIO_LIST_UPICON_PIC_Y,RADIO_LIST_UPICON_PIC_XSIZE, RADIO_LIST_UPICON_PIC_YSIZE, RADIO_LIST_UPICON_ARROW);
}
temp = cur_id / DEL_FM_SCREEN_PER_LINE;
if (((temp + 1) * DEL_FM_SCREEN_PER_LINE) > FREQMAXNUMBLE) {
DisplayPicture(RADIO_LIST_DOWNICON_PIC_X,RADIO_LIST_DOWNICON_PIC_Y,RADIO_LIST_DOWNICON_PIC_XSIZE, RADIO_LIST_DOWNICON_PIC_YSIZE, RADIO_LIST_DOWNICON_ARROWBK);
} else {
DisplayPicture(RADIO_LIST_DOWNICON_PIC_X,RADIO_LIST_DOWNICON_PIC_Y,RADIO_LIST_DOWNICON_PIC_XSIZE, RADIO_LIST_DOWNICON_PIC_YSIZE, RADIO_LIST_DOWNICON_ARROW);
}
}
if (FmDisplayFlag & FM_DISPFLAG_LIST_SEL) {
if (cur_id < DEL_FM_SCREEN_PER_LINE) {
DisplayPicture(RADIO_LIST_UPICON_PIC_X,RADIO_LIST_UPICON_PIC_Y,RADIO_LIST_UPICON_PIC_XSIZE, RADIO_LIST_UPICON_PIC_YSIZE, RADIO_LIST_UPICON_ARROWBK);
} else {
DisplayPicture(RADIO_LIST_UPICON_PIC_X,RADIO_LIST_UPICON_PIC_Y,RADIO_LIST_UPICON_PIC_XSIZE, RADIO_LIST_UPICON_PIC_YSIZE, RADIO_LIST_UPICON_ARROW);
}
temp = cur_id / DEL_FM_SCREEN_PER_LINE;
if (((temp + 1) * DEL_FM_SCREEN_PER_LINE) > FREQMAXNUMBLE) {
DisplayPicture(RADIO_LIST_DOWNICON_PIC_X,RADIO_LIST_DOWNICON_PIC_Y,RADIO_LIST_DOWNICON_PIC_XSIZE, RADIO_LIST_DOWNICON_PIC_YSIZE, RADIO_LIST_DOWNICON_ARROWBK);
} else {
DisplayPicture(RADIO_LIST_DOWNICON_PIC_X,RADIO_LIST_DOWNICON_PIC_Y,RADIO_LIST_DOWNICON_PIC_XSIZE, RADIO_LIST_DOWNICON_PIC_YSIZE, RADIO_LIST_DOWNICON_ARROW);
}
if((per_id / DEL_FM_SCREEN_PER_LINE) != temp) {
DisplayPicture(RADIO_LISTBK_PIC_X, RADIO_SUB_LIST_TXT_Y,
RADIO_LISTBK_PIC_XSIZE, (RADIO_SUB_LIST_TXT_YSTEP * DEL_FM_SCREEN_PER_LINE),
(RADIO_LISTBK_PIC + (unsigned long)(RADIO_SUB_LIST_TXT_Y - RADIO_LISTBK_PIC_Y) * RADIO_LISTBK_PIC_XSIZE * 2));
if(cur_id == (FM_SAVE_BUF_MAX-1) && (per_id == 0)){
m = cur_id%DEL_FM_SCREEN_PER_LINE;
k = cur_id - m;
pFmFreq = &GlobalFmVar.FmFreqArray[k];
}else if(((per_id % DEL_FM_SCREEN_PER_LINE)==0)&&((cur_id%DEL_FM_SCREEN_PER_LINE)==(DEL_FM_SCREEN_PER_LINE-1))){
m = cur_id%DEL_FM_SCREEN_PER_LINE;
k = cur_id - m;
pFmFreq = &GlobalFmVar.FmFreqArray[k];
}else{
pFmFreq = &GlobalFmVar.FmFreqArray[cur_id];
m = FM_SAVE_BUF_MAX - (cur_id+1);
k = cur_id;
}
LCD_SetColor(COLOR_BLACK);
for (i=0; (i<DEL_FM_SCREEN_PER_LINE && i<=m); i++, pFmFreq++) {
FmFreq2Ascii(k+i, *pFmFreq, FmDispBuf);
if ((i + k) == cur_id) LCD_SetTextMode(LCD_DRAWMODE_REV);
LCD_NFDispStringAt(RADIO_SUB_LIST_TXT_X, (RADIO_SUB_LIST_TXT_Y + i * RADIO_SUB_LIST_TXT_YSTEP), FmDispBuf);
LCD_SetTextMode(LCD_DRAWMODE_TRANS);
}
}else{
j = per_id%DEL_FM_SCREEN_PER_LINE;
i = cur_id%DEL_FM_SCREEN_PER_LINE;
LCD_SetColor(COLOR_BLACK);
DisplayPicture(RADIO_LISTBK_PIC_X, (RADIO_SUB_LIST_TXT_Y + j * RADIO_SUB_LIST_TXT_YSTEP),
RADIO_LISTBK_PIC_XSIZE, RADIO_SUB_LIST_TXT_YSTEP,
(RADIO_LISTBK_PIC + (unsigned long)((RADIO_SUB_LIST_TXT_Y - RADIO_LISTBK_PIC_Y) + j * RADIO_SUB_LIST_TXT_YSTEP) * RADIO_LISTBK_PIC_XSIZE * 2));
FmFreq2Ascii(per_id, GlobalFmVar.FmFreqArray[per_id], FmDispBuf);
LCD_NFDispStringAt(RADIO_SUB_LIST_TXT_X, (RADIO_SUB_LIST_TXT_Y + j * RADIO_SUB_LIST_TXT_YSTEP), FmDispBuf);
DisplayPicture(RADIO_LISTBK_PIC_X, (RADIO_SUB_LIST_TXT_Y + i * RADIO_SUB_LIST_TXT_YSTEP),
RADIO_LISTBK_PIC_XSIZE, RADIO_SUB_LIST_TXT_YSTEP,
(RADIO_LISTBK_PIC + (unsigned long)((RADIO_SUB_LIST_TXT_Y - RADIO_LISTBK_PIC_Y) + i * RADIO_SUB_LIST_TXT_YSTEP) * RADIO_LISTBK_PIC_XSIZE * 2));
FmFreq2Ascii(cur_id, GlobalFmVar.FmFreqArray[cur_id], FmDispBuf);
LCD_SetTextMode(LCD_DRAWMODE_REV);
LCD_NFDispStringAt(RADIO_SUB_LIST_TXT_X, (RADIO_SUB_LIST_TXT_Y + i * RADIO_SUB_LIST_TXT_YSTEP), FmDispBuf);
}
LCD_SetColor(TempColor);
}
FmDisplayFlag = FM_DISPFLAG_NULL;
LCD_SetTextMode(Temp_DrawMode);
LCD_SetColor(TempColor);
}
#endif
//******************************************************************************
/*
$Log: FmDisplay.c,v $
Revision 1.4 2007/04/30 03:31:29 zyz
1、添加文件所有的頭注釋
2、修改avi 模塊中的if判斷語句語句,將常量放在 “==” 之前
3、修改部分頭文件中“#undef”的位置
4、將xvid_decoder.c開放到系統(tǒng)中
5、刪除程序中一些不必要的代碼如CodecPowerOn()、MusicSetFreq51()、MusicSetFreq51Return()等
6、修改avi Read_VideoData_ToBuf()函數(shù),解決視頻結束時可能出現(xiàn)的一些問題
7、修改EncGLoable.h文件,增加Mp3Encodebss控制,解決SLC在錄音時死機的問題,取消掉重復定義的
EncodeOutputBuffer[512]
8、修改EncSchedule.c刪除LINE_IN_MSADPCM_BUFFER[2048]定義,因為EncClobal.h里面對其已經(jīng)有定義
9、支持20國多國語言
10、修改文本書簽保存
11、更新文件系統(tǒng),MLC小文件提速
12、修改中斷服務程序,以確保由于調用中斷程序而引起的一些問題
13、修改Audio.c,解決音樂播放切換時可能出現(xiàn)的沒有聲音或噪音等問題
*
*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -