📄 mp3_rc.c
字号:
// add for Liberay 2006.01.09
#include "Sys_call_abstract.h"
#include "Basic_typedefs.h"
#include "S5h_types.h"
#include "Mp3_OSD.h"
#include "Mp3_include.h"
#include "spi_api.h"
#include "codec.h"
extern BOOL bRemsec;
extern BOOL bGoto;
extern BOOL bMp3_normal_end;
extern UCHAR Fiveplus,Tenplus;
extern BOOL bFor_stop2_resume;
extern BOOL bInfoKey;
extern USHORT gMp3TotalFile;
extern UCHAR gNumber_output;
extern BOOL gTrkSelectEnd_flag;
extern BOOL gMute;
extern Mp3_ControlArea_t gMp3Control;
extern BOOL change_flag;
extern USHORT pre_index,CurrTrack_no;
extern UCHAR gAudio_state;
extern UCHAR ToneValue;
extern ULONG gMp3Point;
extern Mp3_Timeinfo_t gMp3_time;
extern USHORT index;
extern Mp3_FolderPageInfo_t *gFolderPage;
extern Mp3_FileInfo_t *gFileInfo;
extern Mp3_PageInfo_t *gPageinfo;
extern USHORT gFileNumInFolder[MAX_FOLDER_NUM];
extern SET_EQUAL_ID gEQ_mode ;
#if MP3_over_250
extern UCHAR Select_250;
#endif
#if USE_CHINESE_ENGLISH_OSD
extern char OsdFontMode;
#endif
void MP3_HandleMsgFromRC(Event_t ev)
{
USHORT output_number;
USHORT temp_num;
switch(ev.ext1) { /* key value */
case KEY_SEARCH:
case KEY_PBC:
case KEY_PROGRAM:
case KEY_RANDOM:
case KEY_STEP:
//case KEY_GOTO:
case KEY_FREEZE:
case KEY_INTRO:
case KEY_DIGEST:
case KEY_SLOW:
case KEY_ZOOM:
case KEY_SCORE:
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_INVALID, NULL );
break;
//BY MayMeng 051227 for Remfunc of mp3:
case KEY_REM:
#if 1
if(bRemsec)
bRemsec = FALSE;
else
bRemsec = TRUE;
#else
// Mp3_ShowInvalid();
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_INVALID, NULL );
#endif
break;
case KEY_GOTO:
bGoto = TRUE;
if( MP3_STOP == gMp3Status.main )//maymeng 051019
{
if(bMp3_normal_end)//maymeng 051028
{
//bMp3_normal_end = FALSE;
// Mp3_ShowResume();
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_RESUME, NULL );
pre_index = 0;
CurrTrack_no =0;
bFor_stop2_resume = FALSE;
Mp3_ShowStop();
break;
}
else
{
if(MP3_FOLDER == gMp3Control)
{
gMp3Control = MP3_FILE;
change_flag = TRUE;
}
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_RESUME, NULL );
Mp3_HandleNumeric(CurrTrack_no);
pre_index = 0;
CurrTrack_no =0;
bFor_stop2_resume = FALSE;
if(change_flag)
{
gMp3Control = MP3_FOLDER;
change_flag = FALSE;
}
}
}
else
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_INVALID, NULL );
break;
case KEY_MUTE:
Mp3_ShowMute();
break;
case KEY_AUDIO:
// Mp3_ShowAudio();
vfd_audio_channel();
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_AUDIO, gAudio_state );
break;
case KEY_3D:
// Mp3_Show3D(gEQ_mode);
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_3D, gEQ_mode );
break;
case KEY_NTSCPAL:
// Mp3_ShowPALNTSC();
vfd_display_mode();
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_PAL_NTSC, NULL );
break;
case KEY_VOL_ADD:
case KEY_VOL_REDUCE:
// Mp3_ShowVolume();
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_VOLUME, NULL );
break;
case KEY_TONE_CONTROL: //tone control
if(Mp3_GetMain() == MP3_STOP)
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_INVALID, NULL );
else
{
ToneValue = 6;
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_TONE, NULL );
}
break;
case KEY_TONE_UP:
if(Mp3_GetMain() == MP3_STOP)
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_INVALID, NULL );
else
{
if (ToneValue < 12)
ToneValue++;
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_TONE, NULL );
}
break;
case KEY_TONE_DOWN:
if(Mp3_GetMain() == MP3_STOP)
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_INVALID, NULL );
else
{
if (ToneValue > 0)
ToneValue--;
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_TONE, NULL );
}
break;
case KEY_CHINESE_ENGLISH:
#if USE_CHINESE_ENGLISH_OSD
OsdFontMode ^= 1;
#endif
Mp3_ShowChinese();
/*#else
Mp3_ShowInvalid();
#endif*/
break;
case KEY_UP:
Mp3_HandleUpDown(FALSE);
break;
case KEY_DOWN:
Mp3_HandleUpDown(TRUE);
break;
//#if SEPERATE_PLAY_PAUSE
case KEY_PLAY:
if( (MP3_PLAY == gMp3Status.main) && (MP3_TRICK_OFF == gMp3Status.trick))
{
// Mp3_ShowInvalid();
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_INVALID, NULL );
return;
}
else if(MP3_STOP== gMp3Status.main)
{
Mp3_HandleNumeric(1);
pre_index = 0;
CurrTrack_no =0;
bFor_stop2_resume = FALSE;
}
else
Mp3_HandlePlayPause();
break;
case KEY_PAUSE:
if( (MP3_PAUSE == gMp3Status.main) || (MP3_STOP == gMp3Status.main)
||( MP3_TRICK_OFF != gMp3Status.trick) )
{//maymeng 050720
// Mp3_ShowInvalid();
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_INVALID, NULL );
return;
}
Mp3_HandlePlayPause();
break;
//#else
case KEY_PLAY_PAUSE:
Mp3_HandlePlayPause();
break;
//#endif/*SEPERATE_PLAY_PAUSE */
case KEY_INFO://maymeng 050720
Mp3_ShowInfo(bInfoKey);
bInfoKey= (!bInfoKey);
break;
case KEY_STOP:
// bStopKey++;
//maymeng 051027 modified
gMp3Point = gMp3_time.CurSec;
if(!bFor_stop2_resume )
{
for(index = 0; index < (gFolderPage->focus_index + gFolderPage->page_index*MAX_CONTENT_IN_PAGE); index++)
pre_index += gFileNumInFolder[index];
pre_index += gPageinfo->page_index*MAX_CONTENT_IN_PAGE;
CurrTrack_no = (gFileInfo[gPageinfo->focus_index + pre_index].file_no + 1);
bFor_stop2_resume = TRUE;
}
Mp3_Stop();
Mp3_ShowStop();
S5H_FEStop();
//maymeng 051128 for cancelling the repeat status when stop:
gMp3Status.repeat = MP3_REPEAT_OFF ;
break;
#if 0
case KEY_ENTER:
Mp3_HandleEnter();
break;
#endif
case KEY_RETURN:
#if ALONG_MP3_RETURNINVALID
// Mp3_ShowInvalid();
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_INVALID, NULL );
#else
// Mp3_ShowReturn();//maymeng 050727
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_RETURN, NULL );
Mp3_HandleReturn();
gReturnFlag=TRUE;
#endif
break;
case KEY_LEFT:
case KEY_RIGHT:
Mp3_HandleLeftRight();
break;
#if 1
case KEY_SKIP_NEXT:
Mp3_ShowSkipNextPrev(TRUE);
if( MP3_REPEAT_ONE == gMp3Status.repeat)
{
if(MP3_STOP != gMp3Status.main)
Mp3_Stop();
Mp3_Play();
}
else
{
Mp3_HandleUpDown(TRUE);
}
break;
case KEY_SKIP_BACK:
Mp3_ShowSkipNextPrev(FALSE);
if( MP3_REPEAT_ONE == gMp3Status.repeat)
{
if(MP3_STOP != gMp3Status.main)
Mp3_Stop();
Mp3_Play();
}
else
{
Mp3_HandleUpDown(FALSE);
}
break;
#else
case KEY_SKIP_NEXT:
Mp3_HandleSkipNextPrev(TRUE);
break;
case KEY_SKIP_BACK:
Mp3_HandleSkipNextPrev(FALSE);
break;
#endif
case KEY_REPEAT:
if( !((MP3_PLAY == Mp3_GetMain()) /*&& (MP3_FILE == gMp3Control)*/))
return;
switch(Mp3_GetRepeat())
{
case MP3_REPEAT_OFF:
gMp3Status.repeat = MP3_REPEAT_ONE;
break;
case MP3_REPEAT_ONE:
gMp3Status.repeat = MP3_REPEAT_ALL;
break;
case MP3_REPEAT_ALL:
gMp3Status.repeat = MP3_REPEAT_OFF;
break;
default:
break;
}
// Mp3_ShowRepeat();
MP3_ShowOsdTimeoutString ( MP3_OSDSTR_REPEAT, NULL );
break;
#if _MP3_TRICK_PLAY_
case KEY_SCAN_FWD:
if( !((MP3_PLAY == Mp3_GetMain())/* && (MP3_FILE == gMp3Control)*/))
return;
switch(Mp3_GetTrick())
{
case MP3_FF_2:
gMp3Status.trick = MP3_FF_4;
// Audio_True_Mute(TRUE);
Audio_Mute(TRUE);
break;
case MP3_FF_4:
gMp3Status.trick = MP3_FF_8;
// Audio_True_Mute(TRUE);
Audio_Mute(TRUE);
break;
case MP3_FF_8:
gMp3Status.trick = MP3_FF_16;
// Audio_True_Mute(TRUE);
Audio_Mute(TRUE);
break;
case MP3_FF_16:
gMp3Status.trick = MP3_TRICK_OFF;
if(!gMute)
// Audio_True_Mute(FALSE);
Audio_Mute(FALSE);
Mp3_Stop();
Mp3_ExitTrickPlay();
break;
default:
gMp3Status.trick = MP3_FF_2;
// Audio_True_Mute(TRUE);
Audio_Mute(TRUE);
break;
}
Mp3_ShowTrick();
break;
case KEY_SCAN_REV:
if( !((MP3_PLAY == Mp3_GetMain())/* && (MP3_FILE == gMp3Control)*/))
return;
switch(Mp3_GetTrick())
{
case MP3_FR_2:
gMp3Status.trick = MP3_FR_4;
// Audio_True_Mute(TRUE);
Audio_Mute(TRUE);
break;
case MP3_FR_4:
gMp3Status.trick = MP3_FR_8;
// Audio_True_Mute(TRUE);
Audio_Mute(TRUE);
break;
case MP3_FR_8:
gMp3Status.trick = MP3_FR_16;
// Audio_True_Mute(TRUE);
Audio_Mute(TRUE);
break;
case MP3_FR_16:
gMp3Status.trick = MP3_TRICK_OFF;
if(!gMute)
// Audio_True_Mute(FALSE);
Audio_Mute(FALSE);
Mp3_Stop();
Mp3_ExitTrickPlay();
break;
default:
gMp3Status.trick = MP3_FR_2;
// Audio_True_Mute(TRUE);
Audio_Mute(TRUE);
break;
}
Mp3_ShowTrick();
break;
#endif /* _MP3_TRICK_PLAY_ */
#if _MP3_300_
case KEY_NUM0:
case KEY_NUM1:
case KEY_NUM2:
case KEY_NUM3:
case KEY_NUM4:
case KEY_NUM5:
case KEY_NUM6:
case KEY_NUM7:
case KEY_NUM8:
case KEY_NUM9:
if(gTrkSelectEnd_flag)
{
//output_number = gNumber_output[0]*100 +gNumber_output[1]*10+gNumber_output[2];
#if MP3_over_250
output_number=gNumber_output+Select_250*250;
#else
output_number=gNumber_output;
#endif
Mp3_ShowNumberSel(FALSE);
Mp3_HandleNumeric(output_number);
}
break;
case KEY_10PLUS:
case KEY_5PLUS_FP:
#if MP3_over_250
temp_num = (Select_250*250+Tenplus*10+Fiveplus*KeyPlus);
#else
temp_num = (Tenplus*10+Fiveplus*KeyPlus);
#endif
if(temp_num > gMp3TotalFile)
{
MP3_ShowOsdTimeoutString(MP3_OSDSTR_INVALID, NULL );
temp_num =0;
Tenplus =0;
Fiveplus =0;
}
else
Mp3_ShowNumberSel(TRUE);
break;
#endif/* _MP3_300_ */
default:
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -