1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
/*
Copyright (C) 1998, 1999 by Nathaniel 'NooTe' Saint Martin
Copyright (C) 1998, 1999 by Jorrit Tyberghein
Written by Nathaniel 'NooTe' Saint Martin
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __CSSOUNDLISTENERDS3D_H__
#define __CSSOUNDLISTENERDS3D_H__
#include "../common/slstn.h"
class csSoundRenderDS3D;
class csSoundListenerDS3D : public csSoundListener
{
friend class csSoundRenderDS3D;
public:
SCF_DECLARE_IBASE;
csSoundListenerDS3D(iBase *piBase);
virtual ~csSoundListenerDS3D();
virtual void SetDirection (const csVector3 &Front, const csVector3 &Top);
virtual void SetPosition (const csVector3 &pos);
virtual void SetVelocity (const csVector3 &v);
virtual void SetDistanceFactor (float factor);
virtual void SetRollOffFactor (float factor);
virtual void SetDopplerFactor (float factor);
virtual void SetHeadSize (float size);
virtual void SetEnvironment (csSoundEnvironment env);
bool Initialize(csSoundRenderDS3D *srdr);
void Prepare();
private:
csSoundRenderDS3D *Renderer;
LPDIRECTSOUNDBUFFER PrimaryBuffer;
LPDIRECTSOUND3DLISTENER Listener;
bool Dirty;
};
#endif
|