📄 soundhelper.cpp
字号:
#include "StdAfx.h"
#include ".\soundhelper.h"
CSoundHelper::CSoundHelper(CResourceLib* pResourceLib)
{
m_pResourceLib = pResourceLib;
}
CSoundHelper::~CSoundHelper(void)
{
StopAll();
}
// 播放
BOOL CSoundHelper::Play(_CString szName, int iLoop){
CResource* pResource = m_pResourceLib->GetResource(szName);
// 判断是否声音资源及是否可加载
if(pResource->IsSound() && pResource->GetStatus()!=0){
// 资源暂时释放,则重新加载
if(pResource->GetStatus()==2)
pResource->ReLoad();
switch(pResource->GetType()){
case Resource_Music:
m_pResourceLib->m_lpGDI->Music_Play(pResource->GetResourcePoint(), iLoop<1);
break;
case Resource_Stream:
m_pResourceLib->m_lpGDI->Stream_Play(pResource->GetResourcePoint(), iLoop<1);
break;
case Resource_Effect:
m_pResourceLib->m_lpGDI->Effect_PlayEx(pResource->GetResourcePoint(), m_iVolume, m_iPanning, 1.0, iLoop<1);
break;
}
return true;
}
return false;
}
// 停止
BOOL CSoundHelper::Stop(_CString szName){
CResource* pResource = (*m_pResourceLib)[szName];
// 判断是否声音资源并且已加载
if(pResource->IsSound() && pResource->GetStatus()==1){
return pResource->Free();
}
return false;
}
// 暂停
BOOL CSoundHelper::Pause(_CString szName){
return false;
}
// 恢复
BOOL CSoundHelper::Resume(_CString szName){
return Play(szName);;
}
// 设置当前播放位置
void CSoundHelper::SetPosition(_CString szName, float fPos){
CResource* pResource = (*m_pResourceLib)[szName];
// 判断是否声音资源并且已加载
if(pResource->GetType()==Resource_Music && pResource->GetStatus()==1){
// 新版HGE才支持(1.7以上)
//m_pResourceLib->m_lpGDI->Music_SetPos(pResource->GetResourcePoint(), 1, 1);
}
}
// 返回当前播放位置
float CSoundHelper::GetPosition(_CString szName){
CResource* pResource = (*m_pResourceLib)[szName];
// 判断是否声音资源并且已加载
if(pResource->GetType()==Resource_Music && pResource->GetStatus()==1){
// 新版HGE才支持(1.7以上)
//m_pResourceLib->m_lpGDI->Music_GetPos(pResource->GetResourcePoint(), 1, 1);
}
return 0;
}
// 设置声音大小
void CSoundHelper::SetVolume(_CString szName, WORD wVolume){
m_iVolume = wVolume;
}
// 返回声音大小
int CSoundHelper::GetVolume(_CString szName){
return 0;
}
// 设置左右平衡
void CSoundHelper::SetPanning(int iPanning){
m_iPanning = iPanning;
}
// 返回左右平衡
int CSoundHelper::GetPanning(){
return 0;
}
// 停止所有
BOOL CSoundHelper::StopAll(){
CResource* pResource = m_pResourceLib->m_lstResourcs.Iterators(true);
while(pResource){
if(pResource->IsSound())
pResource->Free();
pResource = m_pResourceLib->m_lstResourcs.Iterators();
}
return true;
}
// 恢复所有
BOOL CSoundHelper::ResumeAll(){
CResource* pResource = m_pResourceLib->m_lstResourcs.Iterators(true);
while(pResource){
pResource = m_pResourceLib->m_lstResourcs.Iterators();
}
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -