axmol/TestAudioEngine.uphone/TestAudioEngineMainForm.cpp

144 lines
3.6 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Application main form file.
// Original file name: TestAudioEngineMainForm.cpp
// Generated by TOPS Builder:Project wizard,Date:2010-9-29
#include "TestAudioEngineMainForm.h"
#include "testaudioengine_res_def.h"
#include "TestAudioEngineUnicodeScript_str.h"
#include "SimpleAudioEngine.h"
#include <cassert>
extern const AppResourceEntry TestAudioEngineResourceEntry;
/**
@warning 在声音数据信息的结构体中FileName必须包含文件的扩展名并且需要与原始文件的扩展名一致
否则无法播。另:音效文件只支持 wav 格式。
*/
const T_SoundResInfo SoundResInfo[] =
{
{ "background.mp3", TESTAU_ID_RAWDATA_background },
{ "Effect1.wav", TESTAU_ID_RAWDATA_Effect1 },
{ "Effect2.wav", TESTAU_ID_RAWDATA_Effect2 },
};
TMainForm::TMainForm(TApplication * pApp):TWindow(pApp)
, m_nEffect1ID(0)
, m_nEffect2ID(0)
{
Create(TESTAU_ID_Form1002);
}
TMainForm::~TMainForm()
{
SimpleAudioEngine::sharedEngine()->release();
}
Boolean TMainForm::EventHandler(TApplication * pApp, EventType * pEvent)
{
Boolean bHandled = FALSE;
switch(pEvent->eType)
{
case EVENT_WinInit:
{
SimpleAudioEngine::sharedEngine()->setResourceEntry(&TestAudioEngineResourceEntry);
SimpleAudioEngine::sharedEngine()->setSoundResInfo(SoundResInfo, sizeof(SoundResInfo) / sizeof(T_SoundResInfo));
bHandled = TRUE;
}
break;
case EVENT_WinPaint:
{
DrawWindow();
bHandled = TRUE;
}
break;
case EVENT_CtrlSelect:
{
//switch(pEvent->sParam1)
//{
//case RES_SYSTEM_WINDOW_TITLE_BUTTON_ID:
// bHandled = TRUE;
// break;
//}
bHandled = CtrlSelected(pApp, pEvent);
}
break;
case EVENT_WinClose:
{
// Stop the application since the main form has been closed
pApp->SendStopEvent();
}
break;
}
if (FALSE == bHandled)
{
return TWindow::EventHandler(pApp,pEvent);
}
return bHandled;
}
Boolean TMainForm::CtrlSelected(TApplication * pApp, EventType * pEvent)
{
Boolean bHandled = FALSE;
SimpleAudioEngine* pAudioEngine = SimpleAudioEngine::sharedEngine();
switch (pEvent->sParam1)
{
case TESTAU_ID_Form1002_PlayBack:
// play background music
pAudioEngine->SetBackgroundMusicVolume(30);
pAudioEngine->playBackgroundMusic(SoundResInfo[0].FileName, true);
bHandled = TRUE;
break;
case TESTAU_ID_Form1002_StopBack:
// stop background music
pAudioEngine->stopBackgroundMusic();
bHandled = TRUE;
break;
case TESTAU_ID_Form1002_LoadEffect:
// load effect1
m_nEffect1ID = pAudioEngine->preloadEffect(SoundResInfo[1].FileName);
assert(m_nEffect1ID > 0);
bHandled = TRUE;
break;
case TESTAU_ID_Form1002_UnLoadBtn:
// unload effect1
pAudioEngine->unloadEffect(m_nEffect1ID);
m_nEffect1ID = 0;
bHandled = TRUE;
break;
case TESTAU_ID_Form1002_PlayLoaded:
// play loaded effect1
if (m_nEffect1ID == 0)
{
pApp->MessageBox(UnloadedTip, FailedTitle, WMB_OKCANCEL);
}
else
{
pAudioEngine->SetEffectsVolume(30);
pAudioEngine->playPreloadedEffect(m_nEffect1ID);
}
bHandled = TRUE;
break;
case TESTAU_ID_Form1002_PlayEffect:
// play effect2
pAudioEngine->SetEffectsVolume(30);
m_nEffect2ID = pAudioEngine->playEffect(SoundResInfo[2].FileName);
assert(m_nEffect2ID > 0);
bHandled = TRUE;
break;
default:
break;
}
return bHandled;
}