## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# isound/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
    00063 struct iSoundListener : public virtual iBase
    00064 {
    00065   SCF_INTERFACE(iSoundListener, 2,0,0);
    00067   virtual void SetDirection (const csVector3 &Front, const csVector3 &Top) = 0;
    00069   virtual void SetPosition (const csVector3 &pos) = 0;
    00071   virtual void SetVelocity (const csVector3 &v) = 0;
    00073   virtual void SetDistanceFactor (float factor) = 0;
    00075   virtual void SetRollOffFactor (float factor) = 0;
    00077   virtual void SetDopplerFactor (float factor) = 0;
    00079   virtual void SetHeadSize (float size) = 0;
    00081   virtual void SetEnvironment (csSoundEnvironment env) = 0;
    00082
    00084   virtual void GetDirection (csVector3 &Front, csVector3 &Top) = 0;
    00086   virtual const csVector3 &GetPosition () = 0;
    00088   virtual const csVector3 &GetVelocity () = 0;
    00090   virtual float GetDistanceFactor () = 0;
    00092   virtual float GetRollOffFactor () = 0;
    00094   virtual float GetDopplerFactor () = 0;
    00096   virtual float GetHeadSize () = 0;
    00098   virtual csSoundEnvironment GetEnvironment () = 0;
    00099 };
    00100
    00101 #endif // __CS_ISOUND_LISTENER_H__