00001 // Copyright (C) 2002-2018 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 00043 virtual void stop() = 0; 00044 00046 00048 virtual ik_f32 getVolume() = 0; 00049 00051 00053 virtual void setVolume(ik_f32 volume) = 0; 00054 00056 virtual void setPan(ik_f32 pan) = 0; 00057 00059 virtual ik_f32 getPan() = 0; 00060 00062 virtual bool isLooped() = 0; 00063 00065 00070 virtual void setIsLooped(bool looped) = 0; 00071 00073 00078 virtual bool isFinished() = 0; 00079 00081 00089 virtual void setMinDistance(ik_f32 min) = 0; 00090 00092 00093 virtual ik_f32 getMinDistance() = 0; 00094 00096 00103 virtual void setMaxDistance(ik_f32 max) = 0; 00104 00106 00107 virtual ik_f32 getMaxDistance() = 0; 00108 00110 virtual void setPosition(vec3df position) = 0; 00111 00113 virtual vec3df getPosition() = 0; 00114 00116 00120 virtual void setVelocity(vec3df vel) = 0; 00121 00123 00127 virtual vec3df getVelocity() = 0; 00128 00130 00132 virtual ik_u32 getPlayPosition() = 0; 00133 00135 00141 virtual bool setPlayPosition(ik_u32 pos) = 0; 00142 00144 00155 virtual bool setPlaybackSpeed(ik_f32 speed = 1.0f) = 0; 00156 00158 00159 virtual ik_f32 getPlaybackSpeed() = 0; 00160 00162 00166 virtual ik_u32 getPlayLength() = 0; 00167 00169 00177 virtual ISoundEffectControl* getSoundEffectControl() = 0; 00178 00180 00188 virtual void setSoundStopEventReceiver(ISoundStopEventReceiver* reciever, void* userData=0) = 0; 00189 }; 00190 00191 } // end namespace irrklang 00192 00193 00194 #endif
The irrKlang
Engine Documentation © 2003-2018 by Nikolaus Gebhardt. Generated
by Doxygen
(1.6.1) |