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

📄 soundtst.c

📁 一个操作系统源代码 用于嵌入式设备 在Vc++环境下仿真 成功移植到多款处理器上
💻 C
字号:
#include <stdio.h>
#include <string.h>

#include <asixwin.h>
#include <asixapp.h>

#include <resource\bitmap.h>
#include <resource\picture.h>

#include <service\audio\audiosvr.h>

#include <resource\audio.h>

#define TEST_SOUND_NAME	snd_down
#define TEST_MID_NAME	tiger

void test_sound(void);

TASKDESCRIPTION TestSoundTskDesp =
{"test_sound",	ASIX_APP,	0,	xitong,		2048,	1,	LCD_WIDTH,	LCD_HEIGHT,	test_sound,	APP_PRI};

void test_sound( void )
{
	MSG 	msg ;
	U32		mainwin;
 	U8		quit = 0;
	U32		start_sound_bt, stop_sound_bt;
	U32		start_note_bt, stop_note_bt;
	U32		start_MIDI_bt, stop_MIDI_bt;	

	mainwin = CreateWindow(	WNDCLASS_WIN, "声音的测试", WS_OVERLAPPEDWINDOW,	0, 0, PHY_LCD_W, PHY_LCD_H, 0, 0, NULL );					//窗口的附加数据(主窗口没有附加数据)

	start_sound_bt = CreateWindow(WNDCLASS_BUTTON, "定长播放", WS_CHILD|BS_BOARD_REGULAR, 0, 30, 70,40,mainwin, 0, NULL);
	stop_sound_bt = CreateWindow(WNDCLASS_BUTTON, "■停止■", WS_CHILD|BS_BOARD_REGULAR, 90,30, 70,40,mainwin, 0, NULL);
	start_note_bt = CreateWindow(WNDCLASS_BUTTON, "定时播放", WS_CHILD|BS_BOARD_REGULAR, 0, 90, 70,40,mainwin, 0, NULL);
	stop_note_bt = CreateWindow(WNDCLASS_BUTTON, "■停止■", WS_CHILD|BS_BOARD_REGULAR, 90,90, 70,40,mainwin, 0, NULL);
	start_MIDI_bt = CreateWindow(WNDCLASS_BUTTON, "播放MIDI", WS_CHILD|BS_BOARD_REGULAR, 0, 150, 70,40,mainwin, 0, NULL);
	stop_MIDI_bt = CreateWindow(WNDCLASS_BUTTON, "■停止■", WS_CHILD|BS_BOARD_REGULAR, 90,150, 70,40,mainwin, 0, NULL);
	
	while(!quit)
	{
	  	ASIXGetMessage(&msg, NULL, 0, 0);

		switch(msg.message)
		{
			case WM_COMMAND:
				if( msg.lparam == start_sound_bt )
				{
					SetRepeatPoint( 0 );//???
					//SoundStart( c5, 8000 );
					SoundStart( TEST_SOUND_NAME, 4817 );
				}
				else if( msg.lparam == stop_sound_bt )
				{
					SoundStop();	
				}
				else if( msg.lparam == start_note_bt )
				{
					SetRepeatPoint( 0 );//???
					//NoteStart( TEST_SOUND_NAME, 129358, 20000 );
					NoteStart( TEST_SOUND_NAME, 4817 ,8000 );
				}
				else if( msg.lparam == stop_note_bt )
				{
					NoteStop();
				}
				else if( msg.lparam == start_MIDI_bt )
				{
					SetRepeatPoint( 4800 );//???
					//MIDIStart( 0x500000 );
					MIDIStart( (U32)TEST_MID_NAME );
				}
				else if( msg.lparam == stop_MIDI_bt )
				{
					MIDIStop();	
				}								
				break;
	
			case WM_QUIT:
				SoundStop();
				NoteStop();
				MIDIStop();
				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 + -