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

📄 mp3_rc.c

📁 三星ic 9980的源代码. 718版.
💻 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 + -