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

📄 iminemusic.c

📁 brew3.1做的挖雷游戏
💻 C
字号:
#include "IMineMusic.h"

//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
static void IMINEMUSIC_CBStatus(void * pUser, AEESoundPlayerCmd eCBType, AEESoundPlayerStatus eSPStatus, uint32 dwParam);
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
IMineMusic* IMINEMUSIC_CreateInstance(IShell* pIShell)
{
	IMineMusic* pCtl=NULL;
	
	if(NULL==pIShell) return NULL;
	pCtl=MALLOCREC(IMineMusic);
	if(NULL==pCtl) return NULL;
	MEMSET(pCtl,0,sizeof(IMineMusic));	
	pCtl->m_pIShell=pIShell;
	return pCtl;
}
boolean	IMINEMUSIC_Release(IMineMusic* pCtl)
{
	if(pCtl)
	{
		if(pCtl->m_pISoundPlayer)
			ISOUNDPLAYER_Release(pCtl->m_pISoundPlayer);			
		FREEIF(pCtl);
	}
	return TRUE;
}
boolean	IMINEMUSIC_Start(IMineMusic* pCtl,TMineMusicType type)
{
	AEESoundPlayerInfo info;

	if(!pCtl) return FALSE;
	IMINEMUSIC_Stop(pCtl);
	if(SUCCESS!=ISHELL_CreateInstance(pCtl->m_pIShell, AEECLSID_SOUNDPLAYER, (void **)(&pCtl->m_pISoundPlayer)))
		return FALSE;			
	ISOUNDPLAYER_RegisterNotify(pCtl->m_pISoundPlayer,IMINEMUSIC_CBStatus,pCtl);
	//get music name
	switch(type)
	{
	case MMT_FLASH:
		info.pData=(void*)"sound/flash.mp3";
		break;
	case MMT_START:
		info.pData=(void*)"sound/start.mid";		
		break;
	case MMT_SUCCESS:
		info.pData=(void*)"sound/success.mid";		
		break;
	case MMT_FAILURE:
		info.pData=(void*)"sound/failure.mid";		
		break;
	default:
		return FALSE;
	}
	//start new music
	info.eInput=SDT_FILE;
	if(AEE_SUCCESS==ISOUNDPLAYER_SetInfo(pCtl->m_pISoundPlayer,&info))
		ISOUNDPLAYER_Play(pCtl->m_pISoundPlayer);
	return TRUE;
}	
boolean	IMINEMUSIC_Stop(IMineMusic* pCtl)
{
	if(pCtl&&pCtl->m_pISoundPlayer)
	{
		ISOUNDPLAYER_Stop(pCtl->m_pISoundPlayer);	
		ISOUNDPLAYER_Release(pCtl->m_pISoundPlayer);
		pCtl->m_pISoundPlayer=NULL;
	}
	return TRUE;
}	
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
static void IMINEMUSIC_CBStatus(void * pUser, AEESoundPlayerCmd eCBType, AEESoundPlayerStatus eSPStatus, uint32 dwParam)
{
	IMineMusic* pCtl=(IMineMusic*)pUser;

	if(pCtl&&(pCtl->m_pISoundPlayer)&&(AEE_SOUNDPLAYER_PLAY_CB==eCBType)&&(AEE_SOUNDPLAYER_DONE==eSPStatus)) 
		ISOUNDPLAYER_Play(pCtl->m_pISoundPlayer);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -