CrystalSpace

Public API Reference

isound/source.h

00001 /*
00002     Copyright (C) 1998, 1999 by Nathaniel 'NooTe' Saint Martin
00003     Copyright (C) 1998, 1999 by Jorrit Tyberghein
00004     Written by Nathaniel 'NooTe' Saint Martin
00005 
00006     This library is free software; you can redistribute it and/or
00007     modify it under the terms of the GNU Library General Public
00008     License as published by the Free Software Foundation; either
00009     version 2 of the License, or (at your option) any later version.
00010 
00011     This library is distributed in the hope that it will be useful,
00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014     Library General Public License for more details.
00015 
00016     You should have received a copy of the GNU Library General Public
00017     License along with this library; if not, write to the Free
00018     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00019 */
00020 
00021 #ifndef __CS_ISOUND_SOURCE_H__
00022 #define __CS_ISOUND_SOURCE_H__
00023 
00024 #include "csutil/scf.h"
00025 
00026 class csVector3;
00027 
00029 #define SOUND_RESTART   1
00030 #define SOUND_LOOP      2
00031 
00033 enum
00034 {
00036   SOUND3D_DISABLE,
00038   SOUND3D_RELATIVE,
00040   SOUND3D_ABSOLUTE
00041 };
00042 
00043 #define SOUND_DISTANCE_INFINITE -1.0f
00044 
00045 SCF_VERSION (iSoundSource, 0, 0, 2);
00046 
00053 struct iSoundSource : public iBase
00054 {
00056   virtual void Play (unsigned long playMethod = 0) = 0;
00058   virtual void Stop () = 0;
00060   virtual void SetVolume (float volume) = 0;
00062   virtual float GetVolume () = 0;
00064   virtual void SetFrequencyFactor (float factor) = 0;
00066   virtual float GetFrequencyFactor () = 0;
00067 
00069   virtual int GetMode3D() = 0;
00071   virtual void SetMode3D(int m) = 0;
00073   virtual void SetPosition(csVector3 pos) = 0;
00075   virtual csVector3 GetPosition() = 0;
00077   virtual void SetVelocity(csVector3 spd) = 0;
00079   virtual csVector3 GetVelocity() = 0;
00080 
00089   virtual void SetMinimumDistance (float distance) = 0;
00090 
00096   virtual void SetMaximumDistance (float distance) = 0;
00097 
00102   virtual float GetMinimumDistance () = 0;
00103 
00108   virtual float GetMaximumDistance () = 0;
00109 };
00110 
00111 #endif // __CS_ISOUND_SOURCE_H__

Generated for Crystal Space by doxygen 1.4.6