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

📄 mp3_back.c

📁 国家ASIC工程中心使用的嵌入式操作系统
💻 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 + -