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

📄 soundmanager.cpp

📁 mopoid game symbian os application development
💻 CPP
字号:
/*
========================================================================
 Name        : SoundManager.cpp
 Author      : 
 Copyright   : 
 Description : Manages multiple sound files.
 License     : 

========================================================================
*/
#include "SoundManager.h"

/// Constructors
CSoundManager::CSoundManager()
	{
	for (TInt i = 0; i < MAX_SOUNDS; i++)
		iSounds[i] = NULL;

	iSoundOn = EFalse;

	}

/// Destructor
CSoundManager::~CSoundManager()
	{
	for (TInt i = 0; i < MAX_SOUNDS; i++)
		{
		if (iSounds[i])DELETE_AND_NULL(iSounds[i]);
		}
	}

void CSoundManager::LoadSoundFileL(RFs& aFs, const TDesC& aSoundFileName,
		TInt aSoundNumber)
	{
	if (aSoundNumber >= 0 && aSoundNumber < MAX_SOUNDS)
		{
		RBuf fileName;
		fileName.CleanupClosePushL();
		NCommonFunctions::AddPrivateDirL(aFs, aSoundFileName, fileName);
		iSounds[aSoundNumber] = CPlayerAdapter::NewL(fileName);
		CleanupStack::PopAndDestroy(&fileName);
		}
	}

void CSoundManager::PlayL(TInt aSoundNumber)
	{
	if (iSoundOn && iSounds[aSoundNumber])
		{
		// Stop all sounds as we can't play two sounds at the same time.
		for (TInt i=0; i < MAX_SOUNDS; i++)
			{
			if (iSounds[i] && iSounds[i]->IsPlaying())
				{
				// Don't play new sound if one is currently playing,
				// otherwise, there will be a significant delay in the game.
				//iSounds[i]->Stop();
				return;
				}
			}
		// Now, finally we can play our sound.
		iSounds[aSoundNumber]->Play();
		}

	}

void CSoundManager::Stop(TInt aSoundNumber)
	{
	if (iSoundOn && iSounds[aSoundNumber])
		{
		TRAPD(error, iSounds[aSoundNumber]->Stop())
		;
		}
	}

void CSoundManager::SetVolume(const TInt aSoundLevel)
	{
	if (aSoundLevel == VOLUME_OFF)
		{
		iSoundOn = EFalse;
		}
	else
		{
		iSoundOn = ETrue;
		for (TInt i=0; i < MAX_SOUNDS; i++)
			{
			if (iSounds[i])
				iSounds[i]->SetVolumeFraction(aSoundLevel);
			}

		}
	}

⌨️ 快捷键说明

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