diff options
Diffstat (limited to 'intern/SoundSystem/SND_IAudioDevice.h')
-rw-r--r-- | intern/SoundSystem/SND_IAudioDevice.h | 343 |
1 files changed, 0 insertions, 343 deletions
diff --git a/intern/SoundSystem/SND_IAudioDevice.h b/intern/SoundSystem/SND_IAudioDevice.h deleted file mode 100644 index d6b3936e6ef..00000000000 --- a/intern/SoundSystem/SND_IAudioDevice.h +++ /dev/null @@ -1,343 +0,0 @@ -/** - * $Id$ - * - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ -#ifndef SND_IAUDIODEVICE -#define SND_IAUDIODEVICE - -#include "SND_SoundObject.h" -#include "SND_CDObject.h" -#include "SND_WaveCache.h" -#include "SND_WaveSlot.h" -#include "MT_Matrix3x3.h" - -class SND_IAudioDevice -{ -public: - - /** - * constructor - */ - SND_IAudioDevice() {}; - - /** - * destructor - */ - virtual ~SND_IAudioDevice() {}; - - /** - * check to see if initialization was successfull - * - * @return indication of succes - */ - virtual bool IsInitialized()=0; - - /** - * get the wavecache (which does sample (un)loading) - * - * @return pointer to the wavecache - */ - virtual SND_WaveCache* GetWaveCache() const =0; - - /** - * loads a sample into the device - * - * @param samplename the name of the sample - * @param memlocation pointer where the sample is stored - * @param size size of the sample in memory - * - * @return pointer to the slot with sample data - */ - virtual SND_WaveSlot* LoadSample(const STR_String& samplename, - void* memlocation, - int size)=0; - - /** - * remove a sample from the wavecache - * - * @param filename pointer to filename - */ -// virtual void RemoveSample(const char* filename)=0; - - /** - * remove all samples from the wavecache - */ - virtual void RemoveAllSamples()=0; - - /** - * get a new id from the device - * - * @param pObject pointer to soundobject - * - * @return indication of success - */ - virtual bool GetNewId(SND_SoundObject* pObject)=0; - - /** - * clear an id - * - * @param pObject pointer to soundobject - */ - virtual void ClearId(SND_SoundObject* pObject)=0; - - /** - * initialize the listener - */ - virtual void InitListener()=0; - - /** - * set the value of the propagation speed relative to which the - * source velocities are interpreted. - * f' = DOPPLER_FACTOR * f * (DOPPLER_VELOCITY - Vl) / (DOPPLER_VELOCITY + Vo) - * f: frequency in sample (soundobject) - * f': effective Doppler shifted frequency - * Vl: velocity listener - * Vo: velocity soundobject - * - * @param dopplervelocity scaling factor for doppler effect - */ - virtual void SetDopplerVelocity(MT_Scalar dopplervelocity) const =0; - - /** - * set a scaling to exaggerate or deemphasize the Doppler (pitch) - * shift resulting from the calculation. - * f' = DOPPLER_FACTOR * f * (DOPPLER_VELOCITY - Listener_velocity )/(DOPPLER_VELOCITY + object_velocity ) - * - * @param dopplerfactor scaling factor for doppler effect - */ - virtual void SetDopplerFactor(MT_Scalar dopplerfactor) const =0; - - /** - * set the roll-off factor - * - * @param rollofffactor a global volume scaling factor - */ - virtual void SetListenerRollOffFactor(MT_Scalar rollofffactor) const =0; - - /** - * make the context the current one - */ - virtual void MakeCurrent() const =0; - - /** - * update the device - */ - virtual void NextFrame() const =0; - - /** - * set the volume of the listener. - * - * @param gain the mastergain - */ - virtual void SetListenerGain(float gain) const =0; - - /** - * connect the buffer with the source - * - * @param id the id of the object - * @param buffer the buffer the sample is stored in - */ - virtual void SetObjectBuffer(int id, unsigned int buffer)=0; - - /** - * pause playback of the cd - * @param id the id of the object - * - * @return the state the object is in - */ - virtual int GetPlayState(int id) =0; - - /** - * play a sound belonging to an object. - * - * @param id the id of the object - */ - virtual void PlayObject(int id) =0; - - /** - * stop a sound belonging to an object. - * - * @param id the id of the object - */ - virtual void StopObject(int id) const =0; - - /** - * stop all sounds. - */ - virtual void StopAllObjects()=0; - - /** - * pause the sound belonging to an object. - * - * @param id the id of the object - */ - virtual void PauseObject(int id) const =0; - - /** - * set the sound to looping or non-looping. - * - * @param id the id of the object - * @param loopmode type of looping (no loop, normal, bidirectional) - */ - virtual void SetObjectLoop(int id, unsigned int loopmode) const =0; - - /** - * set the looppoints of a sound - * - * @param id the id of the object - * @param loopstart the startpoint of the loop (in samples) - * @param loopend the endpoint of the loop (in samples) - */ - virtual void SetObjectLoopPoints(int id, unsigned int loopstart, unsigned int loopend) const =0; - - /** - * set the pitch of the sound. - * - * @param id the id of the object - * @param pitch the pitch - */ - virtual void SetObjectPitch(int id, MT_Scalar pitch) const =0; - - /** - * set the gain of the sound. - * - * @param id the id of the object - * @param gain the gain - */ - virtual void SetObjectGain(int id, MT_Scalar gain) const =0; - - /** - * ROLLOFF_FACTOR is per-Source parameter the application can use to increase or decrease - * the range of a source by decreasing or increasing the attenuation, respectively. The - * default value is 1. The implementation is free to optimize for a ROLLOFF_FACTOR value - * of 0, which indicates that the application does not wish any distance attenuation on - * the respective Source. - * - * @param id the id of the object - * @param rolloff a per-source volume scaling factor - */ - virtual void SetObjectRollOffFactor(int id, MT_Scalar rolloff) const =0; - - /** - * min_gain indicates the minimal gain which is always guaranteed for this sound - * - * @param id the id of the object - * @param mingain the minimum gain of the object - */ - virtual void SetObjectMinGain(int id, MT_Scalar mingain) const =0; - - /** - * max_gain indicates the maximal gain which is always guaranteed for this sound - * - * @param id the id of the object - * @param maxgain the maximum gain of the object - */ - virtual void SetObjectMaxGain(int id, MT_Scalar maxgain) const =0; - /** - * set the distance at which the Listener will experience gain. - * G_dB = GAIN - 20*log10(1 + ROLLOFF_FACTOR*(dist-REFERENCE_DISTANCE)/REFERENCE_DISTANCE ); - * - * @param id the id of the object - * @param referencedistance the distance at which the listener will start hearing - */ - virtual void SetObjectReferenceDistance(int id, MT_Scalar referencedistance) const =0; - - /** - * set the position, velocity and orientation of a sound. - * - * @param id the id of the object - * @param position the position of the object - * @param velocity the velocity of the object - * @param orientation the orientation of the object - * @param lisposition the position of the listener - * @param rollofffactor the rollofffactor of the object - */ - virtual void SetObjectTransform(int id, - const MT_Vector3& position, - const MT_Vector3& velocity, - const MT_Matrix3x3& orientation, - const MT_Vector3& lisposition, - const MT_Scalar& rollofffactor) const =0; - - /** - * make a sound 2D - * - * @param id the id of the object - */ - virtual void ObjectIs2D(int id) const =0; - - /** - * tell the device we want cd suppport - */ - virtual void UseCD() const =0; - - /** - * start playback of the cd - * - * @param track the tracknumber to start playback from - */ - virtual void PlayCD(int track) const =0; - - /** - * pause playback of the cd (true == pause, false == resume) - */ - virtual void PauseCD(bool pause) const =0; - - /** - * stop playback of the cd - */ - virtual void StopCD() const =0; - - /** - * set the playbackmode of the cd - * SND_CD_ALL play all tracks - * SND_CD_TRACK play one track - * SND_CD_TRACKLOOP play one track looped - * SND_CD_RANDOM play all tracks in random order - * - * @param playmode playmode - */ - virtual void SetCDPlaymode(int playmode) const =0; - - /** - * set the volume playback of the cd - * - * @param gain the gain - */ - virtual void SetCDGain(MT_Scalar gain) const =0; - - virtual void StartUsingDSP() =0; - virtual float* GetSpectrum() =0; - virtual void StopUsingDSP() =0; - -protected: - - virtual void RevokeSoundObject(SND_SoundObject* pObject)=0; -}; - -#endif //SND_IAUDIODEVICE - |