📄 mp3.c
字号:
//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 + -