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

📄 mp3.c

📁 国家ASIC工程中心使用的嵌入式操作系统
💻 C
📖 第 1 页 / 共 2 页
字号:
			
			//mp3_name[num][lenth] = statobj.lfname[];
			//strcpy(mp3_name[music_num],statobj.lfname);
			music_num2++;
			
			if (NU_Get_Next(&statobj) != NU_SUCCESS) //NU_Get_Next
			{
				NU_Done(&statobj);
				break;
			}
		}
	}
	
	RecordLen = music_num1+music_num2;//MP3_NUM;
	
	if((mp3_name =(char *) malloc(MP3_NAME_LEN*RecordLen)) != NULL)
	{
		memset(mp3_name,0,MP3_NAME_LEN*RecordLen);
		music_num1 =0;
		music_num2 =0;

#ifndef GE01		
		if ((ret = NU_Get_First(&statobj, path1)) == NU_SUCCESS)//NU_Get_First
		{
			while(1)
			{	
				strcat(music_dir1, statobj.lfname);
				strcpy((mp3_name+music_num1*MP3_NAME_LEN),music_dir1);
				memset(music_dir1, 0, sizeof(music_dir1));
				strcpy(music_dir1, "b:\\");
				//music_dir[20]="b:\\";
				music_num1++;
			
				if (NU_Get_Next(&statobj) != NU_SUCCESS) //NU_Get_Next
				{
					NU_Done(&statobj);
					break;
				}
			}
		}
		
#endif		
	
		
		if ((ret = NU_Get_First(&statobj, path2)) == NU_SUCCESS)//NU_Get_First
		{
			while(1)
			{	
				strcat(music_dir2, statobj.lfname);
				strcpy((mp3_name+(music_num1+music_num2)*MP3_NAME_LEN),music_dir2);
				memset(music_dir2, 0, sizeof(music_dir2));
				strcpy(music_dir2, "c:\\");
				//music_dir[20]="b:\\";
				music_num2++;
			
				if (NU_Get_Next(&statobj) != NU_SUCCESS) //NU_Get_Next
				{
					NU_Done(&statobj);
					break;
				}
			}
		}
	}
#endif
}
//****************************************************************
	for( i=0;i<DISP_NUM;i++ )
		bt[i] = CreateWindow( WNDCLASS_BUTTON,
							NULL,
							WS_CHILD | BS_REGULAR,
							LIST_X_POS,LIST_Y_POS+20*i,
							LIST_WIDTH,20,
							mainwin,
							0,
							NULL);


	low=0;                                   
	if(RecordLen <= DISP_NUM)
	{
		high = 0;
		endp=RecordLen ;
	}
	else
	{
		high = RecordLen -DISP_NUM;
		endp=DISP_NUM;
	}
	startp=0;
	hmenu = MAKELONG(low, high);   
	
	
	scroll = CreateWindow(WNDCLASS_SCROLL, 
	                            "Scroll", 
	                            WS_CHILD|SBS_VERT, 
	                            SCRL_X_POS,SCRL_Y_POS,
	                            18,
	                            SCRL_HEIGH,
	                            mainwin,
	                            hmenu,
	                            NULL);

	Mp3LstDsp((mp3_name+3),
		RecordLen,
		0,
		endp,
		bt);
	
	
	
	GroupOff( hGC, 1, 1, LCD_WIDTH-1,LCD_HEIGHT-1);



	//printf("mp3 app init!\n");

	while(!quit)
	{
		ASIXGetMessage(&msg, NULL, 0, 0);
		switch(msg.message)
		{
			// 在此用户加入自己的消息处理
			case  WM_COMMAND:
				if (msg.lparam == start)
				{
					//printf("mp3 app got START flag!\n");
					set_flg( MP3_EVENT, MP3_START_FLG );
					switch_enable = DISABLE;
					CreateTimer( &timer, 2700, NULL, NULL, CYC_MODE|AUTO_START_MODE );//1s
					
					StartTimer( timer );
					break;
				}
				
				if (msg.lparam == stop)
				{
					//printf("mp3 app got STOP flag!\n");
					set_flg( MP3_EVENT, MP3_STOP_FLG );
					switch_enable = ENABLE;
					
					FreeTimer( timer );
					cur_tim.hour = 0;
					cur_tim.minute = 0;
					cur_tim.second = 0;
					Refreshtime("00:00:00");
					break;
				}

				if (msg.lparam == pause)
				{
					//printf("mp3 app got PAUSE flag!\n");
					set_flg( MP3_EVENT, MP3_PAUSE_FLG );
					StopTimer( timer );
					break;

				}

				if (msg.lparam == prev)
				{
					//printf("mp3 app got START flag!\n");
					set_flg( MP3_EVENT, MP3_SLOW_FLG );
					break;

				}

				if (msg.lparam == next)
				{
					//printf("mp3 app got START flag!\n");
					set_flg( MP3_EVENT, MP3_FAST_FLG );
					break;

				}

				if (msg.lparam == addv)
				{
					//printf("mp3 app got START flag!\n");
					set_flg( MP3_EVENT, MP3_ADDV_FLG );
					/*
					if(v_volume_level < 20)
					{
						v_volume_level+=2;
						Rec_Refreshvolum(v_volume_level);
					}
					volume_up();*/
					break;

				}

				if (msg.lparam == subv)
				{
					//printf("mp3 app got START flag!\n");
					set_flg( MP3_EVENT, MP3_SUBV_FLG );
					/*
					if(v_volume_level > 0)
					{
						v_volume_level-=2;
						Rec_Refreshvolum(v_volume_level);
					}
					volume_down();*/
					break;

				}
				
				
				for(i=0;i<RecordLen;i++)
				{
					if(msg.lparam == bt[i])
					{
						if( switch_enable == ENABLE )
						{
							Rrfreshname(mp3_name+(i +startp_before)*MP3_NAME_LEN+3);
							set_flg( MP3_EVENT, (i +startp_before+1)& MP3_SELECT_FLG );
						}
						break;
					}
				}
				break;
				
			case WM_TIMER:
				if( msg.lparam == timer )
				{
					ASIX_TIME	temp_tim;
					U8	flag[3];

					// 更新时间和界面
					/*GetTime( &temp_tim );
					flag[0] = ( temp_tim.hour != cur_tim.hour );
					flag[1] = ( temp_tim.minute != cur_tim.minute );
					flag[2] = ( temp_tim.second != cur_tim.second );
					memcpy( &cur_tim, &temp_tim, sizeof( ASIX_TIME ) );
		
					if( flag[0]||flag[1]||flag[2] )
					{
						sprintf( time_str, "%02u:%02u:%02u",cur_tim.hour, cur_tim.minute, cur_tim.second );
						Refreshtime(time_str);
					}*/
					pol_flg( &flgptn, BUF_DMA_EVENT, 0XFFFFFF, TWF_ORW);
					if( flgptn & DEC_OVER_FLG ){
						clr_flg( BUF_DMA_EVENT,~(DEC_OVER_FLG) );
						FreeTimer( timer );
						cur_tim.hour = 0;
						cur_tim.minute = 0;
						cur_tim.second = 0;
						Refreshtime("00:00:00");
						switch_enable = ENABLE;
						break;
					}
					
					if( cur_tim.second == 59)
					{
						cur_tim.second = 0;
						if(cur_tim.minute == 59)
						{	cur_tim.minute = 0;
							cur_tim.hour++;
						}
						else
							cur_tim.minute++;
					}
					else
						cur_tim.second++;
					
					
					
					sprintf( time_str, "%02u:%02u:%02u",cur_tim.hour, cur_tim.minute, cur_tim.second );
					Refreshtime(time_str);
				}
				break;
				
			case WM_SELECTBOX:
				{ 
					if(msg.lparam==check1)
					{
						//style_item1[0].state = SL_CHECKED;
						
						//设置为POP风格
						style_item2[0].state = SL_UNCHECKED;
						style_item3[0].state = SL_UNCHECKED;
						style_item4[0].state = SL_UNCHECKED;
						pop();
					}
					else if(msg.lparam==check2)
					{
						//style_item2[0].state = SL_CHECKED;
						
						//设置为ROCK风格
						style_item1[0].state = SL_UNCHECKED;
						style_item3[0].state = SL_UNCHECKED;
						style_item4[0].state = SL_UNCHECKED;
						rock();
					}
					if(msg.lparam==check3)
					{
						//style_item3[0].state = SL_CHECKED;
						
						//设置为JAZZ风格
						style_item1[0].state = SL_UNCHECKED;
						style_item2[0].state = SL_UNCHECKED;
						style_item4[0].state = SL_UNCHECKED;
						jazz();
					}
					else if(msg.lparam==check4)
					{
						//style_item4[0].state = SL_CHECKED;
						
						//设置为CLASSIC风格
						style_item1[0].state = SL_UNCHECKED;
						style_item2[0].state = SL_UNCHECKED;
						style_item3[0].state = SL_UNCHECKED;
						classic();
					}
					break;
				}

			case WM_VSCROLL:
			
                if(msg.lparam == scroll)
				{
					if(startp == 0)	topdir=TRUE;//表示第一次到starpos = 0,则需要刷新,后面,就不要
					if(endp == RecordLen)	enddir=TRUE;

					switch(msg.wparam)
					{
						case	SB_LINEDOWN:
								startp++;
								endp++;
								break;
						case	SB_LINEUP:
								if(startp==0)
									break;
								startp--;
								endp--;
								break;										
						case	SB_PAGEDOWN:
								startp += 1;
								endp += 1;
								break;										
						case	SB_PAGEUP:
								startp -= 1;
								endp-=1;
								break;
						case	SB_ENDSCROLL :
								startp = GetScrollPos(scroll,0,0,0);
								endp=startp-DISP_NUM;
								break;
						default :
								break;
					}
					low = 0;
					if(RecordLen > DISP_NUM)
					{
						high = RecordLen-DISP_NUM;
						if((S8)(startp)<0)	      startp = 0;
						if(startp>high)		startp = high;		
						endp = startp+DISP_NUM;
					}
					else
					{
						high = 0;
						startp = 0;
						endp=RecordLen;
					}
					startp_before = startp;
					
					
					Mp3LstDsp((mp3_name+3),
						RecordLen,
						startp, 
						endp, 
						bt); 

					if(topdir==TRUE)
					if(startp!=0) topdir=FALSE;
					if(enddir==TRUE)
					if(endp!=RecordLen) enddir=FALSE;
					SetScrollRange(scroll,low,high);
					SetScrollPos(scroll, startp, 0, 0); 
				}
				break;

			case WM_QUIT:
				quit = 1;
				free(mp3_name);
				FreeTimer( timer );
				set_flg( MP3_EVENT, MP3_STOP_FLG );
				break;

			default:
				break;	
		}
		DefWindowProc(msg.message, msg.lparam, msg.data, msg.wparam); 
	}


	DestroyWindow( mainwin );
	EndofTask();
	return ASIX_OK;
}



⌨️ 快捷键说明

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