soundtst.c

来自「一个操作系统源代码 用于嵌入式设备 在Vc++环境下仿真 成功移植到多款处理器上」· C语言 代码 · 共 95 行

C
95
字号
#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 + =
减小字号Ctrl + -
显示快捷键?