00001 // Copyright (C) 2002-2009 Nikolaus Gebhardt 00002 // This file is part of the "irrKlang" library. 00003 // For conditions of distribution and use, see copyright notice in irrKlang.h 00004 00005 #ifndef __I_IRRKLANG_SOUND_H_INCLUDED__ 00006 #define __I_IRRKLANG_SOUND_H_INCLUDED__ 00007 00008 #include "ik_IVirtualRefCounted.h" 00009 #include "ik_ISoundEffectControl.h" 00010 #include "ik_vec3d.h" 00011 00012 00013 namespace irrklang 00014 { 00015 class ISoundSource; 00016 class ISoundStopEventReceiver; 00017 00019 00024 class ISound : public IVirtualRefCounted 00025 { 00026 public: 00027 00029 00031 virtual ISoundSource* getSoundSource() = 0; 00032 00034 virtual void setIsPaused( bool paused = true) = 0; 00035 00037 virtual bool getIsPaused() = 0; 00038 00040 00042 virtual void stop() = 0; 00043 00045 00047 virtual ik_f32 getVolume() = 0; 00048 00050 00052 virtual void setVolume(ik_f32 volume) = 0; 00053 00055 virtual void setPan(ik_f32 pan) = 0; 00056 00058 virtual ik_f32 getPan() = 0; 00059 00061 virtual bool isLooped() = 0; 00062 00064 00069 virtual void setIsLooped(bool looped) = 0; 00070 00072 00077 virtual bool isFinished() = 0; 00078 00080 00088 virtual void setMinDistance(ik_f32 min) = 0; 00089 00091 00092 virtual ik_f32 getMinDistance() = 0; 00093 00095 00102 virtual void setMaxDistance(ik_f32 max) = 0; 00103 00105 00106 virtual ik_f32 getMaxDistance() = 0; 00107 00109 virtual void setPosition(vec3df position) = 0; 00110 00112 virtual vec3df getPosition() = 0; 00113 00115 00119 virtual void setVelocity(vec3df vel) = 0; 00120 00122 00126 virtual vec3df getVelocity() = 0; 00127 00129 00131 virtual ik_u32 getPlayPosition() = 0; 00132 00134 00140 virtual bool setPlayPosition(ik_u32 pos) = 0; 00141 00143 00154 virtual bool setPlaybackSpeed(ik_f32 speed = 1.0f) = 0; 00155 00157 00158 virtual ik_f32 getPlaybackSpeed() = 0; 00159 00161 00165 virtual ik_u32 getPlayLength() = 0; 00166 00168 00176 virtual ISoundEffectControl* getSoundEffectControl() = 0; 00177 00179 00187 virtual void setSoundStopEventReceiver(ISoundStopEventReceiver* reciever, void* userData=0) = 0; 00188 }; 00189 00190 } // end namespace irrklang 00191 00192 00193 #endif
The irrKlang
Engine Documentation © 2003-2009 by Nikolaus Gebhardt. Generated
by Doxygen
(1.6.1) |