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

📄 dec_main.c

📁 THIS GOOD CODE MP3,MP4
💻 C
📖 第 1 页 / 共 3 页
字号:

#ifdef L320x240
	Set_System_Clk(SC96M);
#else
	if(FILE_INFO.HEADER.BitRate > 192)
		Set_System_Clk(SC96M);
	else
		Set_System_Clk(SC48M);
#endif

	write_XDATA(BRESET, ALLRESET);

	// buffer 0 address
	Return_Buffer_Pos(DMA0);
	Return_Buffer_Pos(DMA1);
	Return_Buffer_Pos(DMA2);
	Return_Buffer_Pos(DMA3);

//	Set_ADC();
}

void Reserve_Code(UINT8 code_mode)
{

	CodeChange(code_mode);

}

void main(void)
{
	System_Initial();	//System Initialize
	Variable_Initial();	//Variable Initialize
	key_init();			// Key Flag Initialize			
	
#ifdef L320x240
	UART_Init(SC96M, 0);	
#else
	if(FILE_INFO.HEADER.BitRate > 192)
		UART_Init(SC96M, 0);	
	else
		UART_Init(SC48M, 0);	
#endif

	printf("DEC_INIT\n");

	EA = ENABLE;

	WRITE_PROTECT_ON;

	Set_DMA_Break_Count(0x00ffffff);
	Remap_Var_Init();
	get_FAT_init();

	main_mode_file_ext();

	Mp3_Mute_On();

	#ifdef TLV320B
		AIC_mute();
	#endif

	decode_state = FuncInMode;


#ifdef BEEP_RUN
	while(!USB_ON){
		printf("Beep_START\n");
		Play_MP3_Beep(1);
		printf("Beep_END\n");
	}
#endif


	while(TRUE) {	
		switch(decode_state) {
			case DECODE_STATE:

				if(Is_LRC_file != LYRIC_NO){
					#ifdef LYRIC_FUNC
						InitLyricTimeStamp(1);
					#endif

					#if defined L128x128
					#elif defined L96x64				
					#endif
				}

				if(sub_mode_in_play == DEC_MENU){
					check_10SEC_start = 1;
					time10 = T10S;
					
					#ifdef MENU_ANIMATION
					ani_start = 0;
					#endif

					#ifndef ROCKCHIP_VER
					display_update = 0;
					#else
					/*
					if ((repeat_mode == 5) && (menu_depth == 2) && (menu_position[0] == MENU_MODE_SETTING)&& (menu_position[1] == MENU_PLAY_MODE))
						display_update = 1;
					else
						display_update = 0;*/
					display_update = 1;
					#endif
					
					SetMaxPos();

					MENU_IMAGE_INFO.Info.byte = Menu_image_Byte;
					MENU_IMAGE_INFO.size = *Menu_image_size;
					MENU_IMAGE_INFO.pos = *Menu_image_pos;
					cur_menu_section = cur_menu_sec_tmp;

					#if defined L128x128 || defined L320x240
					LoadBackGroundColor(IMG_NAV_BG_BACKGROUND);
					#endif
				}
				else if(sub_mode_in_play == DEC_NAV){
					check_10SEC_start = 1;
					time10 = T10S;
					display_update = 0;
					if(!NAV_CUR_DIR.depth || (PBmode != NO_ACT))
						display_cur_in_section = NAV_Display.cur % LCD_TOTAL_PAGE;
					else
						display_cur_in_section = (NAV_Display.cur-2) % LCD_TOTAL_PAGE;

#if defined L128x128 || defined L320x240
					LoadBackGroundColor(IMG_NAV_BG_BACKGROUND);
#endif
				}else{

					if(sub_mode_in_play == DEC_PAUSE){
						sub_mode_in_play = DEC_DEC;

						#ifdef NETSYNC_INCLUDE
							netsync_resume = 1;
						#endif
					}


					if(sub_mode_in_play == DEC_DEC) {

						if(Is_LRC_file != LYRIC_YES_DIS_YES){
							#if defined L128x128 || defined L320x240
								LcdDisplayImage(IMG_MP3_BG);
								LoadBackGroundColor(IMG_MP3_BG_BACKGROUND);
								UI_DISPLAY(UI_FILETYPE, file_type);//MP3
							#elif defined L96x64
								LcdDisplayImage(IMG_MP3_BACK_PAPER, 0, 0, 96, 64);
								LoadBackGroundColor(IMG_MP3_BACKGROUND);
							#elif defined ML128x64
								LcdAllClear();	
							#endif
						}
						else{
							#if defined L128x128 || defined L320x240
								LcdDisplayImage(IMG_LYRIC_BG);
								LoadBackGroundColor(IMG_LYRIC_BG_BACKGROUND);
							#endif
						}

						UI_DISPLAY(UI_BATTERY, Check_BAT());	
						UI_DISPLAY(UI_VOLUME, volume_value);

						#ifdef FIVE_KEY_VER
						LcdDisplayImage(IMG_VOLUME);
						#endif

						if(Is_LRC_file != LYRIC_YES_DIS_YES){
		
							#if defined ML128x64
								UI_DISPLAY(UI_FILETYPE, file_type);//MP3
							#endif

							UI_DISPLAY(UI_TRACK, DONTCARE);

							UI_DISPLAY(UI_EQ,eq_mode);
							UI_DISPLAY(UI_PLAYMODE,ICON_PLAY);
							UI_DISPLAY(UI_REPEAT,repeat_mode);
							UI_DISPLAY(UI_BITRATE, DONTCARE);

							if(CUR_DIR_NAME.info == 1){//Long Entry曼炼
								Get_LongDirName(IMAGE_BUFF1);
							}else{//Short Entry曼炼
								Get_ShortDirName(IMAGE_BUFF1);
							}

							#if defined L320x240
								Lcd_Dis_Dir(44, IMAGE_BUFF1, F_WHITE);
							#elif defined L128x128
								Lcd_Dis_Dir(21, IMAGE_BUFF1, F_WHITE);
							#elif defined L96x96
								Lcd_Dis_Dir(21, IMAGE_BUFF1, F_BLACK); 
							#elif defined L96x64
							#elif defined MONO_LCD
								LcdDisplayImage(IMG_PMODE_MUSIC);
								Lcd_Dis_Dir(2, IMAGE_BUFF1, F_WHITE);
							#endif		
							scrolltitle(SCROLL_PAGE1, 0, BG_COLOR, F_WHITE);
							scrolltitle(SCROLL_PAGE2, 1, BG_COLOR, F_WHITE);


						}
						else {
							 #if defined L320x240
								UI_DISPLAY(UI_TRACK, DONTCARE);
	
								UI_DISPLAY(UI_EQ,eq_mode);
								UI_DISPLAY(UI_PLAYMODE,ICON_PLAY);
								UI_DISPLAY(UI_REPEAT,repeat_mode);
								UI_DISPLAY(UI_BITRATE, DONTCARE);
								UI_DISPLAY(UI_FILETYPE, file_type);//mp3
							 #endif
						}
					}
				}

				#ifdef CLASS_D_AMP

				#else
					#ifdef TLV320B
					   AIC_Initial(0x0017, 0x0067);
					#else
					if(codec_ctrl)
						Codec_DEC_Initial1();
					#endif
				#endif

				printf("MP3_START\n");

				decode_state = MP3_Decoding();
				Mp3_Mute_On();
				break;
			
			case FF_REW_STATE:
				if(sub_mode_in_play == DEC_LRC){
					sub_mode_in_play = DEC_DEC;
				}
				else if(sub_mode_in_play == DEC_MENU) {
					Menu_image_Byte = MENU_IMAGE_INFO.Info.byte;
					*Menu_image_size = MENU_IMAGE_INFO.size;
					*Menu_image_pos = MENU_IMAGE_INFO.pos;
					cur_menu_sec_tmp = cur_menu_section;
				}

				FuncInMode = DECODE_STATE;
				Reserve_Code(CHANGE_ID3_MODE);
				break;

			case MODE_EXIT_STATE:
			default://exception!
#ifdef IDLE_STOP_MODE
				if(FuncInMode == PAUSE_STATE){
					ff_rew_course = CURRENT;
					FuncInMode = INIT_STATE;
					Reserve_Code(CHANGE_ID3_MODE);	
				}
#endif

				#ifdef TLV320B
					AIC_Close();
				#endif

				switch(gIsMain_Mode) {
				case MAIN_MODE_MOVIE_INIT:
						PBmode = NO_ACT;
						FuncInMode = IDLE_STATE;
						Reserve_Code(CHANGE_IDLE_MODE);
					break;

				case MAIN_MODE_DEC:
#ifdef MMC_SUPPORT
					if(FuncInMode == CHANGE_MEDIA_STATE){// Media Change
					
						PBmode = NO_ACT;
					//	gIsMain_Mode = MAIN_MODE_DEC;
						if(Media_Select == MMC_SEL){
							FuncInMode = CHANGE_MEDIA_STATE;
							Reserve_Code(CHANGE_MMCIDLE_MODE);
						}
					}else
#endif
					if(PBmode != NO_ACT){
						ff_rew_course = CURRENT;

			#ifdef IDLE_STOP_MODE
					
						FuncInMode = INIT_STATE;
						Reserve_Code(CHANGE_ID3_MODE);
	
			#else
						FuncInMode = NAV_STATE;
						Reserve_Code(CHANGE_NAV_MODE);
			#endif

					}
				 	else if(FuncInMode == DECODE_STATE) {

				#ifdef IDLE_STOP_MODE
						FuncInMode = IDLE_STATE;
						Reserve_Code(CHANGE_PWON_MODE);

				#else
						FuncInMode = NAV_STATE;
						Reserve_Code(CHANGE_NAV_MODE);
				#endif

					}
					else{

						xdata UINT8 *DMA_SECTOR_BUFF0 = ((unsigned char volatile xdata *)(BUFFER1+0x10000));


//						sub_mode_in_play = DEC_DEC;
					
						if(FuncInMode == POWER_OFF_STATE){
						
							Reserve_Code(CHANGE_IDLE_MODE);
	
						}
						else if(FuncInMode==BOOKMARK_STATE){

							sub_mode_in_play = DEC_PAUSE;

							getDirShortEntry(TRACK_INFO.folder_cur, USED_DIR, &CUR_DIR, 0);

							memcpy( &(DMA_SECTOR_BUFF0[0]), &DirInfo, sizeof(_fat_dirinfo));

							ff_rew_course = CURRENT;
							Reserve_Code(CHANGE_NAV_MODE);

						}else if(FuncInMode==PLAYLIST_STATE){

							sub_mode_in_play = DEC_PAUSE;

							memcpy( &(DMA_SECTOR_BUFF0[0]), &playListFile, sizeof(PLAYLIST_ENTRY));

							ff_rew_course = CURRENT;
							Reserve_Code(CHANGE_NAV_MODE);

						}else if(FuncInMode==USB_STATE){

							Reserve_Code(CHANGE_IDLE_MODE);

						}else{ 

							ff_rew_course = CURRENT;
					#ifdef IDLE_STOP_MODE
							FuncInMode = IDLE_STATE;
							Reserve_Code(CHANGE_PWON_MODE);
	
					#else
							FuncInMode = NAV_STATE;
							Reserve_Code(CHANGE_NAV_MODE);
					#endif
						}

					}
					break;

				case MAIN_MODE_FM:
					FuncInMode = FM_STATE;
					Reserve_Code(CHANGE_FM_MODE);
					break;

				case MAIN_MODE_REC_VOICE:
				case MAIN_MODE_REC_LINEIN:
					FuncInMode = IDLE_STATE;
					Reserve_Code(CHANGE_IDLE_MODE);
					break;

				case MAIN_MODE_PHOTO_INIT:
					gIsMain_Mode =	MAIN_MODE_PHOTO_INIT;
					Reserve_Code(CHANGE_PHOTO_MODE);
					break;

				case MAIN_MODE_TEXT_INIT:
					gIsMain_Mode =	MAIN_MODE_TEXT_INIT;
					Reserve_Code(CHANGE_TEXT_MODE);
					break;
				case MAIN_MODE_GAME:
					gIsMain_Mode =	MAIN_MODE_GAME;
					Reserve_Code(CHANGE_GAME_MODE);
					break;

				}

				break;
		}
	}
}


⌨️ 快捷键说明

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