My Project
IParaAudioEngine.h
1 #pragma once
2 #include "PEtypes.h"
3 
4 namespace ParaEngine
5 {
8  {
9  EAF_8BIT_MONO,
10  EAF_8BIT_STEREO,
11  EAF_16BIT_MONO,
12  EAF_16BIT_STEREO
13  };
14 
17  {
18  AUDIO_FLAG_Uninitialized = 0,
19  AUDIO_FLAG_STOP_RELEASE,
20  AUDIO_FLAG_STOP_IMMEDIATE,
21  };
24  {
25  Audio_DistModel_NONE = 0,
26  Audio_DistModel_INVERSE_DISTANCE,
27  Audio_DistModel_INVERSE_DISTANCE_CLAMPED,
28  Audio_DistModel_LINEAR_DISTANCE,
29  Audio_DistModel_LINEAR_DISTANCE_CLAMPED,
30  Audio_DistModel_EXPONENT_DISTANCE,
31  Audio_DistModel_EXPONENT_DISTANCE_CLAMPED,
32  };
33 
36  {
37  public:
39  virtual void onUpdate() = 0;
40 
42  virtual void onRelease() = 0;
43 
45  virtual void onPlay() = 0;
46 
48  virtual void onStop() = 0;
49 
51  virtual void onPause() = 0;
52  };
53 
56  {
57  public:
60  virtual bool play() = 0;
61 
66  virtual bool play2d(const bool& toLoop = false) = 0;
67 
73  virtual bool play3d(const PARAVECTOR3& position, const float& soundstr = 1.0 , const bool& toLoop = false) = 0;
74 
76  virtual void pause() = 0;
77 
79  virtual void stop() = 0;
80 
82 
83  virtual void loop(const bool& toLoop) = 0;
84 
86 
90  virtual bool seek(const float& seconds, bool relative = false) = 0;
91 
93  virtual float getTotalAudioTime() = 0;
94 
96  virtual int getTotalAudioSize() = 0;
97 
99  virtual int getCompressedAudioSize() = 0;
100 
102  virtual float getCurrentAudioTime() = 0;
103 
105  virtual int getCurrentAudioPosition() = 0;
106 
108  virtual int getCurrentCompressedAudioPosition() = 0;
109 
111  virtual bool update() = 0;
112 
114  virtual void release() = 0;
115 
117  virtual const bool isValid() const = 0;
118 
120  virtual const bool isPlaying() const = 0;
121 
123  virtual const bool isPaused() const = 0;
124 
126  virtual const bool isStopped() const = 0;
127 
129  virtual const bool isLooping() const = 0;
130 
132 
134  virtual void setPosition(const PARAVECTOR3& position) = 0;
135 
137 
139  virtual void setVelocity(const PARAVECTOR3& velocity) = 0;
140 
142 
144  virtual void setDirection(const PARAVECTOR3& direction) = 0;
145 
147 
150  virtual void setRolloffFactor(const float& rolloff) = 0;
151 
153 
156  virtual void setStrength(const float& soundstrength) = 0;
157 
159 
161  virtual void setMinDistance(const float& minDistance) = 0;
162 
164 
166  virtual void setMaxDistance(const float& maxDistance) = 0;
167 
169 
171  virtual void setPitch(const float& pitch) = 0;
172 
174 
176  virtual void setVolume(const float& volume) = 0;
177 
179 
181  virtual void setMinVolume(const float& minVolume) = 0;
182 
184 
186  virtual void setMaxVolume(const float& maxVolume) = 0;
187 
189 
192  virtual void setInnerConeAngle(const float& innerAngle) = 0;
193 
195 
198  virtual void setOuterConeAngle(const float& outerAngle) = 0;
199 
201 
203  virtual void setOuterConeVolume(const float& outerVolume) = 0;
204 
206 
208  virtual void setDopplerStrength(const float& dstrength) = 0;
209 
211 
213  virtual void setDopplerVelocity(const PARAVECTOR3& dvelocity) = 0;
214 
216 
218  virtual void move(const PARAVECTOR3& position) = 0;
219 
221  virtual const PARAVECTOR3 getPosition() const = 0;
222 
224  virtual const PARAVECTOR3 getVelocity() const = 0;
225 
227  virtual const PARAVECTOR3 getDirection() const = 0;
228 
230  virtual const float getRolloffFactor() const = 0;
231 
233  virtual const float getStrength() const = 0;
234 
236  virtual const float getMinDistance() const = 0;
237 
239  virtual const float getMaxDistance() const = 0;
240 
242  virtual const float getPitch() const = 0;
243 
245  virtual const float getVolume() const = 0;
246 
248  virtual const float getMinVolume() const = 0;
249 
251  virtual const float getMaxVolume() const = 0;
252 
254  virtual const float getInnerConeAngle() const = 0;
255 
257  virtual const float getOuterConeAngle() const = 0;
258 
260  virtual const float getOuterConeVolume() const = 0;
261 
263  virtual const float getDopplerStrength() const = 0;
264 
266  virtual const PARAVECTOR3 getDopplerVelocity() const = 0;
267 
270  virtual void registerEventHandler(IAudioSourceEventHandler* handler) = 0;
271 
273  virtual void unRegisterAllEventHandlers() = 0;
274  };
275 
279  {
280  public:
281  virtual void Release() = 0;
282 
284 
289  virtual bool initialize(const char* deviceName = 0x0, int outputFrequency = -1, int eaxEffectSlots = 4) = 0;
290 
292  virtual void shutDown() = 0;
293 
295  virtual void update() = 0;
296 
298 
301  virtual IParaAudioSource* getSoundByName(const char* name) = 0;
302 
304  virtual void releaseAllSources() = 0;
305 
307 
308  virtual void release(IParaAudioSource* source) = 0;
309 
311 
313  virtual const char* getAvailableDeviceName(unsigned int index) = 0;
314 
316 
317  virtual unsigned int getAvailableDeviceCount() = 0;
318 
320 
321  virtual const char* getDefaultDeviceName() = 0;
322 
324 
330  virtual IParaAudioSource* create(const char* name, const char* filename, bool stream = false) = 0;
331 
333 
340  virtual IParaAudioSource* createFromMemory(const char* name, const char* data, size_t length, const char* extension) = 0;
341 
343 
351  virtual IParaAudioSource* createFromRaw(const char* name, const char* data, size_t length, unsigned int frequency, ParaAudioFormats format) = 0;
352 
353  public:
358  virtual void SetDistanceModel(ParaAudioDistanceModelEnum eDistModel) = 0;
359 
363 
368  virtual void setPosition(const PARAVECTOR3& pos) = 0;
369 
372  virtual void setDirection(const PARAVECTOR3& dir) = 0;
373 
377  virtual void setUpVector(const PARAVECTOR3& up) = 0;
378 
381  virtual void setVelocity(const PARAVECTOR3& vel) = 0;
382 
385  virtual void setMasterVolume(const float& volume) = 0;
386 
388 
390  virtual void move(const PARAVECTOR3& pos) = 0;
391 
393  virtual PARAVECTOR3 getPosition(void) const = 0;
394 
396  virtual PARAVECTOR3 getDirection(void) const = 0;
397 
399  virtual PARAVECTOR3 getUpVector(void) const = 0;
400 
402  virtual PARAVECTOR3 getVelocity(void) const = 0;
403 
405  virtual float getMasterVolume(void) const = 0;
406 
412  virtual void SetCoordinateSystem(int nLeftHand) = 0;
413  };
414 }
different physics engine has different winding order.
Definition: EventBinding.h:32
virtual void onPlay()=0
This function is called when a source starts playing.
ParaAudioFormats
Enumeration of audio formats supported by the engine.
Definition: IParaAudioEngine.h:7
ParaAudioFlagsEnum
Audio flags.
Definition: IParaAudioEngine.h:16
an audio source
Definition: IParaAudioEngine.h:55
virtual void onRelease()=0
This function is called when a source is released and soon to be deleted.
virtual void onStop()=0
This function is called when a source stopped playback.
ParaAudioEngine core interface.
Definition: IParaAudioEngine.h:278
Definition: PEtypes.h:298
virtual void onPause()=0
This function is called when a source is paused.
virtual void onUpdate()=0
This function is called when a source updates its buffers.
Interface for event handlers on Audio Sources.
Definition: IParaAudioEngine.h:35
ParaAudioDistanceModelEnum
Audio flags.
Definition: IParaAudioEngine.h:23