CrystalSpace

Public API Reference

Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

listener.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_LISTENER_H__
00022 #define __CS_ISOUND_LISTENER_H__
00023 
00024 #include "csutil/scf.h"
00025 
00026 class csVector3;
00027 
00029 enum csSoundEnvironment
00030 {
00031   ENVIRONMENT_GENERIC = 0,
00032   ENVIRONMENT_PADDEDCELL,
00033   ENVIRONMENT_ROOM,
00034   ENVIRONMENT_BATHROOM,
00035   ENVIRONMENT_LIVINGROOM,
00036   ENVIRONMENT_STONEROOM,
00037   ENVIRONMENT_AUDITORIUM,
00038   ENVIRONMENT_CONCERTHALL,
00039   ENVIRONMENT_CAVE,
00040   ENVIRONMENT_ARENA,
00041   ENVIRONMENT_CARPETEDHALLWAY,
00042   ENVIRONMENT_HALLWAY,
00043   ENVIRONMENT_STONECORRIDOR,
00044   ENVIRONMENT_ALLEY,
00045   ENVIRONMENT_FOREST,
00046   ENVIRONMENT_CITY,
00047   ENVIRONMENT_MOUNTAINS,
00048   ENVIRONMENT_QUARRY,
00049   ENVIRONMENT_PLAIN,
00050   ENVIRONMENT_PARKINGLOT,
00051   ENVIRONMENT_SEWERPIPE,
00052   ENVIRONMENT_UNDERWATER,
00053   ENVIRONMENT_DRUGGED,
00054   ENVIRONMENT_DIZZY,
00055   ENVIRONMENT_PSYCHOTIC
00056 };
00057 
00058 SCF_VERSION (iSoundListener, 0, 0, 1);
00059 
00065 struct iSoundListener : public iBase
00066 {
00068   virtual void SetDirection (const csVector3 &Front, const csVector3 &Top) = 0;
00070   virtual void SetPosition (const csVector3 &pos) = 0;
00072   virtual void SetVelocity (const csVector3 &v) = 0;
00074   virtual void SetDistanceFactor (float factor) = 0;
00076   virtual void SetRollOffFactor (float factor) = 0;
00078   virtual void SetDopplerFactor (float factor) = 0;
00080   virtual void SetHeadSize (float size) = 0;
00082   virtual void SetEnvironment (csSoundEnvironment env) = 0;
00083 
00085   virtual void GetDirection (csVector3 &Front, csVector3 &Top) = 0;
00087   virtual const csVector3 &GetPosition () = 0;
00089   virtual const csVector3 &GetVelocity () = 0;
00091   virtual float GetDistanceFactor () = 0;
00093   virtual float GetRollOffFactor () = 0;
00095   virtual float GetDopplerFactor () = 0;
00097   virtual float GetHeadSize () = 0;
00099   virtual csSoundEnvironment GetEnvironment () = 0;
00100 };
00101 
00102 #endif // __CS_ISOUND_LISTENER_H__

Generated for Crystal Space by doxygen 1.4.4