axmol/cocos/audio/linux/AudioPlayer.h

141 lines
3.4 KiB
C++

/*
* AudioPlayer.h
*
* Created on: Aug 18, 2011
* Author: laschweinski
*/
#ifndef AUDIOPLAYER_H_
#define AUDIOPLAYER_H_
namespace CocosDenshion {
class AudioPlayer {
public:
virtual void close() = 0;
/**
@brief Preload background music
@param pszFilePath The path of the background music file,or the FileName of T_SoundResInfo
*/
virtual void preloadBackgroundMusic(const char* pszFilePath) = 0;
/**
@brief Play background music
@param pszFilePath The path of the background music file,or the FileName of T_SoundResInfo
@param bLoop Whether the background music loop or not
*/
virtual void playBackgroundMusic(const char* pszFilePath, bool bLoop = false) = 0;
/**
@brief Stop playing background music
@param bReleaseData If release the background music data or not.As default value is false
*/
virtual void stopBackgroundMusic(bool bReleaseData = false) = 0;
/**
@brief Pause playing background music
*/
virtual void pauseBackgroundMusic() = 0;
/**
@brief Resume playing background music
*/
virtual void resumeBackgroundMusic() = 0;
/**
@brief Rewind playing background music
*/
virtual void rewindBackgroundMusic() = 0;
virtual bool willPlayBackgroundMusic() = 0;
/**
@brief Whether the background music is playing
@return If is playing return true,or return false
*/
virtual bool isBackgroundMusicPlaying() = 0;
// properties
/**
@brief The volume of the background music max value is 1.0,the min value is 0.0
*/
virtual float getBackgroundMusicVolume() = 0;
/**
@brief set the volume of background music
@param volume must be in 0.0~1.0
*/
virtual void setBackgroundMusicVolume(float volume) = 0;
/**
@brief The volume of the effects max value is 1.0,the min value is 0.0
*/
virtual float getEffectsVolume() = 0;
/**
@brief set the volume of sound effecs
@param volume must be in 0.0~1.0
*/
virtual void setEffectsVolume(float volume) = 0;
// for sound effects
/**
@brief Play sound effect
@param pszFilePath The path of the effect file,or the FileName of T_SoundResInfo
@bLoop Whether to loop the effect playing, default value is false
*/
virtual unsigned int playEffect(const char* pszFilePath, bool bLoop,
float pitch, float pan, float gain) = 0;
/**
@brief Stop playing sound effect
@param nSoundId The return value of function playEffect
*/
virtual void stopEffect(unsigned int nSoundId) = 0;
/**
@brief preload a compressed audio file
@details the compressed audio will be decode to wave, then write into an
internal buffer in SimpleaudioEngine
*/
virtual void preloadEffect(const char* pszFilePath) = 0;
/**
@brief unload the preloaded effect from internal buffer
@param[in] pszFilePath The path of the effect file,or the FileName of T_SoundResInfo
*/
virtual void unloadEffect(const char* pszFilePath) = 0;
/**
@brief pause an effect identified by sound id
@param[in] uSoundId sound id
*/
virtual void pauseEffect(unsigned int uSoundId) = 0;
/**
@brief pause all playing effects
*/
virtual void pauseAllEffects() = 0;
/**
@brief resume an effect identified by sound id
@param[in] uSoundId sound id
*/
virtual void resumeEffect(unsigned int uSoundId) = 0;
/**
@brief resume a effect identified by sound id
*/
virtual void resumeAllEffects() = 0;
/**
@brief stop all playing effects
*/
virtual void stopAllEffects() = 0;
};
}
#endif /* AUDIOPLAYER_H_ */