IAudioSource.h

00001 // Copyright (c) 2008-2010 Raynaldo (Wildicv) Rivera, Joshua (Dark_Kilauea) Jones
00002 // This file is part of the "cAudio Engine"
00003 // For conditions of distribution and use, see copyright notice in cAudio.h
00004 
00005 #ifndef IAUDIOSOURCE_H
00006 #define IAUDIOSOURCE_H
00007 
00008 #include "cAudioDefines.h"
00009 #include "IRefCounted.h"
00010 #include "IAudioDecoder.h"
00011 #include "cVector3.h"
00012 #include "IEffect.h"
00013 #include "IFilter.h"
00014 #include "ISourceEventHandler.h"
00015 
00016 namespace cAudio
00017 {
00019     class IAudioSource : public IRefCounted
00020     {
00021     public:
00022                 IAudioSource() {}
00023                 virtual ~IAudioSource() {}
00024 
00026 
00028                 virtual bool play() = 0;
00029 
00031 
00034                 virtual bool play2d(const bool& toLoop = false) = 0;
00035 
00037 
00042                 virtual bool play3d(const cVector3& position, const float& soundstr = 1.0 , const bool& toLoop = false) = 0;
00043                 
00045                 virtual void pause() = 0;
00046 
00048                 virtual void stop() = 0;
00049 
00051 
00052                 virtual void loop(const bool& toLoop) = 0;
00053 
00055 
00059                 virtual bool seek(const float& seconds, bool relative = false) = 0;
00060 
00062                 virtual float getTotalAudioTime() = 0;
00063 
00065                 virtual int getTotalAudioSize() = 0;
00066 
00068                 virtual int getCompressedAudioSize() = 0;
00069 
00071                 virtual float getCurrentAudioTime() = 0;
00072 
00074                 virtual int getCurrentAudioPosition() = 0;
00075 
00077                 virtual int getCurrentCompressedAudioPosition() = 0;
00078 
00080                 virtual bool update() = 0;
00081 
00083                 virtual void release() = 0;
00084 
00086                 virtual const bool isValid() const = 0;
00087 
00089                 virtual const bool isPlaying() const = 0;
00090 
00092                 virtual const bool isPaused() const = 0;
00093 
00095                 virtual const bool isStopped() const = 0;
00096 
00098                 virtual const bool isLooping() const = 0;
00099 
00101 
00103                 virtual void setPosition(const cVector3& position) = 0;
00104 
00106 
00108                 virtual void setVelocity(const cVector3& velocity) = 0;
00109 
00111 
00113                 virtual void setDirection(const cVector3& direction) = 0;
00114 
00116 
00119                 virtual void setRolloffFactor(const float& rolloff) = 0;
00120 
00122 
00125                 virtual void setStrength(const float& soundstrength) = 0;
00126 
00128 
00130                 virtual void setMinDistance(const float& minDistance) = 0;
00131 
00133 
00135                 virtual void setMaxDistance(const float& maxDistance) = 0;
00136 
00138 
00140                 virtual void setPitch(const float& pitch) = 0;
00141 
00143 
00145                 virtual void setVolume(const float& volume) = 0;
00146 
00148 
00150                 virtual void setMinVolume(const float& minVolume) = 0;
00151 
00153 
00155                 virtual void setMaxVolume(const float& maxVolume) = 0;
00156 
00158 
00161                 virtual void setInnerConeAngle(const float& innerAngle) = 0;
00162 
00164 
00167                 virtual void setOuterConeAngle(const float& outerAngle) = 0;
00168 
00170 
00172                 virtual void setOuterConeVolume(const float& outerVolume) = 0;
00173 
00175 
00177                 virtual void setDopplerStrength(const float& dstrength) = 0; 
00178 
00180 
00182                 virtual void setDopplerVelocity(const cVector3& dvelocity) = 0;
00183 
00185 
00187                 virtual void move(const cVector3& position) = 0;
00188 
00190                 virtual const cVector3 getPosition() const = 0;
00191 
00193                 virtual const cVector3 getVelocity() const = 0;
00194 
00196                 virtual const cVector3 getDirection() const = 0;
00197 
00199                 virtual const float getRolloffFactor() const = 0;
00200 
00202                 virtual const float getStrength() const = 0;
00203 
00205                 virtual const float getMinDistance() const = 0;
00206 
00208                 virtual const float getMaxDistance() const = 0;
00209 
00211                 virtual const float getPitch() const = 0;
00212 
00214                 virtual const float getVolume() const = 0;
00215 
00217                 virtual const float getMinVolume() const = 0;
00218 
00220                 virtual const float getMaxVolume() const = 0;
00221 
00223                 virtual const float getInnerConeAngle() const = 0;
00224 
00226                 virtual const float getOuterConeAngle() const = 0;
00227 
00229                 virtual const float getOuterConeVolume() const = 0;
00230 
00232                 virtual const float getDopplerStrength() const = 0;
00233 
00235                 virtual const cVector3 getDopplerVelocity() const = 0;
00236 
00238 
00240                 virtual void registerEventHandler(ISourceEventHandler* handler) = 0;
00241 
00243 
00245                 virtual void unRegisterEventHandler(ISourceEventHandler* handler) = 0;
00246 
00248                 virtual void unRegisterAllEventHandlers() = 0;
00249 
00250 #ifdef CAUDIO_EFX_ENABLED
00252                 virtual unsigned int getNumEffectSlotsAvailable() const = 0;
00253 
00255 
00259                 virtual bool attachEffect(unsigned int slot, IEffect* effect) = 0;
00260 
00262 
00264                 virtual void removeEffect(unsigned int slot) = 0;
00265 
00267 
00270                 virtual bool attachFilter(IFilter* filter) = 0;
00271 
00273                 virtual void removeFilter() = 0;
00274 #endif
00275 
00276     protected:
00277     private:
00278     };
00279 };
00280 #endif 
 All Classes Namespaces Functions Variables Enumerations

Generated on Sat Feb 20 22:55:08 2010 for cAudio by  doxygen 1.6.2