📄 mp3_back.c
字号:
/**********************************************************
* Russian Block v1.o
* programming and graphics by renshaohui
*
*
* 2002/07/12
**********************************************************/
#include <stdio.h>
#include <stdlib.h> //it is differ from template
#include <string.h>
#include "asixwin.h"
#include "asixapp.h"
#include "asix_mn.h"
#include "select.h"
#include "asix_sb.h"
#include "asix_lb.h"
#include "disp.h"
#include "asix_ed.h"
#include "asix_key.h"
#include "bitmap.h"
#include "picture.h"
//*****************************************for mp3
#define SSA (0x11002000)
extern const unsigned char gImage_Dplay_icon[];
extern const unsigned char gImage_play_rv[];
extern const unsigned char gImage_stop_rv[];
extern const unsigned char gImage_open_rv[];
extern const unsigned char gImage_DPlayer_modi[] ;
extern const unsigned char gImage_start[];
extern const unsigned char gImage_stop[];
extern const unsigned char gImage_pause[];
//****************************************
#define KEY_GAP LCD_HEIGHT/40
static const U16 xPos = 5;
static const U16 yPos = 30;
//const U8 xWidth = 100;
//const U8 yHeight = 200;
//const U8 sBricklen = 10;
static const U16 xWidth = LCD_WIDTH/2;
static const U16 yHeight = LCD_WIDTH;
static const U16 sBricklen = LCD_WIDTH/20;
U8 mp3flag=0;
char text[40]; //some text used for using textout
extern void Mp3Bar( void );
TASKDESCRIPTION Mp3TskDesp =
{"播放器", ASIX_APP, 0, zi_jimu, 4096, 1, LCD_WIDTH, LCD_HEIGHT, Mp3Bar, APP_PRI};
static void ClearAllOnScreen(U32 hGC)
{
ClearRec(hGC, GPC_WHITE,xPos, yPos, xWidth-1, yHeight-1, REPLACE_STYLE);
}
void Mp3Bar(void)
{
MSG msg;
U32 mainwin;
U32 hGC;
U8 quit=0;
U32 stop,pause,start,fast,slow,showselect,select1,select2,select3,select4,select5,select6;
U32 tskbar; // 任务栏
int pcmsize;
int stereo;
struct frame fr;
int nframe;
int lenenc, lendec, incenc, incdec;
unsigned long penc, pdec;
char * px;
int i;
/* 创建主窗口 */
mainwin = CreateWindow( WNDCLASS_WIN, //窗口类型(主窗口)
"音乐吧", //窗口标题
WS_OVERLAPPEDWINDOW, //窗口风格(主窗口风格的宏定义参见头文件asixwin.h)
0,0, //窗口左上角在逻辑屏幕中的坐标
PHY_LCD_W,PHY_LCD_H, //窗口的宽度和高度
0, //窗口的父窗口(主窗口没有父窗口)
0, //窗口的附加参数(主窗口没有附加参数)
NULL);
tskbar = CreateWindow(WNDCLASS_TSKBAR, NULL, WS_CHILD|TBS_TYPICAL, 0, 0, 0, 0,mainwin, 0, NULL);
#if 1
px = (char *)(*(unsigned int *)SSA);
for(i = 0; i<17760;i++)
*px++ = *(gImage_Dplay_icon+i);
#endif
slow = CreateWindow( WNDCLASS_BUTTON,
"slow",
WS_CHILD|BS_ICON|BS_FLAT,//WS_CHILD | BS_REGULAR,
8,65,//30,55,
31,21,//42,20,
mainwin,
0,
NULL);
start = CreateWindow( WNDCLASS_BUTTON,
"start",
WS_CHILD|BS_ICON|BS_FLAT,//WS_CHILD | BS_REGULAR,
38,65,//30,55,
37,21,//42,20,
mainwin,
0,
(char *)gImage_start);
stop = CreateWindow( WNDCLASS_BUTTON,
"停止",
WS_CHILD|BS_ICON|BS_FLAT,//WS_CHILD | BS_REGULAR,
73,66,
51,21,//42,20,
mainwin,
0,
(char *)gImage_stop);
pause = CreateWindow( WNDCLASS_BUTTON,
"暂停",
WS_CHILD|BS_ICON|BS_FLAT,//WS_CHILD | BS_REGULAR,
123,65,
31,21,
mainwin,
0,
(char *)gImage_pause);
fast = CreateWindow( WNDCLASS_BUTTON,
"fast",
WS_CHILD|BS_ICON|BS_FLAT,//WS_CHILD | BS_REGULAR,
154,65,//30,55,
40,21,//42,20,
mainwin,
0,
NULL);
select1 = CreateWindow( WNDCLASS_BUTTON,
"马不停蹄的忧伤.mp3",
WS_CHILD | BS_REGULAR,
10,138,//30,55,
222,20,//42,20,
mainwin,
0,
NULL);
select2 = CreateWindow( WNDCLASS_BUTTON,
"一面湖水.mp3",
WS_CHILD | BS_REGULAR,
10,158,
222,20,//42,20,
mainwin,
0,
NULL);
select3 = CreateWindow( WNDCLASS_BUTTON,
"奥运之歌.mp3",
WS_CHILD | BS_REGULAR,
10,178,
222,20,//42,20,
mainwin,
0,
NULL);
select4 = CreateWindow( WNDCLASS_BUTTON,
"恶狼的传说.mp3",
WS_CHILD | BS_REGULAR,
10,198,
222,20,//42,20,
mainwin,
0,
NULL);
select5 = CreateWindow( WNDCLASS_BUTTON,
"广岛之恋.mp3",
WS_CHILD | BS_REGULAR,
10,218,
222,20,//42,20,
mainwin,
0,
NULL);
select6 = CreateWindow( WNDCLASS_BUTTON,
"李香兰.mp3",
WS_CHILD | BS_REGULAR,
10,238,
222,20,//42,20,
mainwin,
0,
NULL);
#if 1
showselect = CreateWindow(WNDCLASS_STATIC,
text,
WS_CHILD|SS_TEXT|SS_MULTILINE,
10,36,
200,20,
mainwin,
0,
NULL);
#endif
hGC = GetGC();
//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 );
}
if (msg.lparam == fast){
//printf("mp3 app got START flag!\n");
set_flg( MP3_EVENT, MP3_FAST_FLG );
}
if (msg.lparam == slow){
//printf("mp3 app got START flag!\n");
set_flg( MP3_EVENT, MP3_SLOW_FLG );
}
if (msg.lparam == select1){
//printf("mp3 app got START flag!\n");
//sprintf(text,"马不停蹄的忧伤.mp3");
set_flg( MP3_EVENT, MP3_SELECT1_FLG );
}
if (msg.lparam == select2){
//printf("mp3 app got START flag!\n");
//sprintf(text,"一面湖水.mp3");
set_flg( MP3_EVENT, MP3_SELECT2_FLG );//lake
}
if (msg.lparam == select3){
//printf("mp3 app got START flag!\n");
//set_flg( MP3_EVENT, MP3_SELECT3_FLG );//lake
}
if (msg.lparam == select4){
//printf("mp3 app got START flag!\n");
//set_flg( MP3_EVENT, MP3_SELECT4_FLG );//lake
}
if (msg.lparam == pause){
//printf("mp3 app got PAUSE flag!\n");
set_flg( MP3_EVENT, MP3_PAUSE_FLG );
}
if (msg.lparam == stop){
//printf("mp3 app got STOP flag!\n");
set_flg( MP3_EVENT, MP3_STOP_FLG );
}
break;
case WM_QUIT:
quit = 1;
break;
default:
break;
}
DefWindowProc(msg.message, msg.lparam, msg.data, msg.wparam);
}
DestroyWindow( mainwin );
EndofTask();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -