My Project
ParaSimpleAudioSource.h
1 #pragma once
2 #include "IParaAudioEngine.h"
3 
4 namespace ParaEngine
5 {
8  {
9  public:
11  {
14  AudioFileState_LoadingFromDisk,
15  AudioFileState_NotFound,
16  AudioFileState_Unknown,
17  };
18 
19  CParaSimpleAudioSource(const char* sFileName=NULL, unsigned int pSource = 0);
20  virtual ~CParaSimpleAudioSource();
21 
22  public:
23  unsigned int GetSourcePointer();
24  const std::string& GetFileName();
25 
26  CParaSimpleAudioSource::AudioFileState GetAudioFileState() const;
27  void SetAudioFileState(CParaSimpleAudioSource::AudioFileState val);
28 
29  public:
30 
31  virtual bool play();
32 
33  virtual bool play2d(const bool& toLoop = false);
34 
35  virtual bool play3d(const PARAVECTOR3& position, const float& soundstr = 1.0, const bool& toLoop = false);
36 
37  virtual void pause();
38 
39  virtual void stop();
40 
41  virtual void loop(const bool& toLoop);
42 
43  virtual bool seek(const float& seconds, bool relative = false);
44 
45  virtual float getTotalAudioTime();
46 
47  virtual int getTotalAudioSize();
48 
49  virtual int getCompressedAudioSize();
50 
51  virtual float getCurrentAudioTime();
52 
53  virtual int getCurrentAudioPosition();
54 
56 
57  virtual bool update();
58 
59  virtual void release();
60 
61  virtual const bool isValid() const;
62 
63  virtual const bool isPlaying() const;
64 
65  virtual const bool isPaused() const;
66 
67  virtual const bool isStopped() const;
68 
69  virtual const bool isLooping() const;
70 
71  virtual void setPosition(const PARAVECTOR3& position);
72 
73  virtual void setVelocity(const PARAVECTOR3& velocity);
74 
75  virtual void setDirection(const PARAVECTOR3& direction);
76 
77  virtual void setRolloffFactor(const float& rolloff);
78 
79  virtual void setStrength(const float& soundstrength);
80 
81  virtual void setMinDistance(const float& minDistance);
82 
83  virtual void setMaxDistance(const float& maxDistance);
84 
85  virtual void setPitch(const float& pitch);
86 
87  virtual void setVolume(const float& volume);
88 
89  virtual void setMinVolume(const float& minVolume);
90 
91  virtual void setMaxVolume(const float& maxVolume);
92 
93  virtual void setInnerConeAngle(const float& innerAngle);
94 
95  virtual void setOuterConeAngle(const float& outerAngle);
96 
97  virtual void setOuterConeVolume(const float& outerVolume);
98 
99  virtual void setDopplerStrength(const float& dstrength);
100 
101  virtual void setDopplerVelocity(const PARAVECTOR3& dvelocity);
102 
103  virtual void move(const PARAVECTOR3& position);
104 
105  virtual const PARAVECTOR3 getPosition() const;
106 
107  virtual const PARAVECTOR3 getVelocity() const;
108 
109  virtual const PARAVECTOR3 getDirection() const;
110 
111  virtual const float getRolloffFactor() const;
112 
113  virtual const float getStrength() const;
114 
115  virtual const float getMinDistance() const;
116 
117  virtual const float getMaxDistance() const;
118 
119  virtual const float getPitch() const;
120 
121  virtual const float getVolume() const;
122 
123  virtual const float getMinVolume() const;
124 
125  virtual const float getMaxVolume() const;
126 
127  virtual const float getInnerConeAngle() const;
128 
129  virtual const float getOuterConeAngle() const;
130 
131  virtual const float getOuterConeVolume() const;
132 
133  virtual const float getDopplerStrength() const;
134 
135  virtual const PARAVECTOR3 getDopplerVelocity() const;
136 
137  virtual void registerEventHandler(IAudioSourceEventHandler* handler);
138 
139  virtual void unRegisterAllEventHandlers();
140  public:
142  inline bool IsBackgroundMusic(){
143  return m_bLoop;
144  }
145  protected:
146  // the OpenAL source id
147  unsigned int m_pSource;
148  std::string m_sFilename;
149  bool m_bLoop;
150  bool m_bPlaying;
151  uint32 m_nCurTick;
152 
153  AudioFileState m_nAudioFileState;
154 
155  };
156 
157 }
virtual void setMinVolume(const float &minVolume)
Sets the minimum volume that the source can be attenuated to.
Definition: ParaSimpleAudioSource.cpp:262
virtual const float getPitch() const
Returns the pitch of the source.
Definition: ParaSimpleAudioSource.cpp:337
virtual void setMinDistance(const float &minDistance)
Sets the distance from the source where attenuation will begin.
Definition: ParaSimpleAudioSource.cpp:242
virtual const float getMinDistance() const
Returns the distance from the source where attenuation will begin.
Definition: ParaSimpleAudioSource.cpp:327
virtual void setMaxVolume(const float &maxVolume)
Sets the maximum volume that the source can achieve.
Definition: ParaSimpleAudioSource.cpp:267
AudioFileState
Definition: ParaSimpleAudioSource.h:10
virtual bool play2d(const bool &toLoop=false)
Plays the source in 2D mode.
Definition: ParaSimpleAudioSource.cpp:45
virtual void pause()
Pauses playback of the sound source.
Definition: ParaSimpleAudioSource.cpp:74
virtual const float getOuterConeAngle() const
Returns the angle of the outer sound cone of the source.
Definition: ParaSimpleAudioSource.cpp:362
virtual void unRegisterAllEventHandlers()
Removes all event handlers attached to this source.
Definition: ParaSimpleAudioSource.cpp:387
virtual int getTotalAudioSize()
Returns the total decoded size of the audio stream. See IAudioDecoder for details.
Definition: ParaSimpleAudioSource.cpp:121
virtual const PARAVECTOR3 getPosition() const
Returns the audio objects position.
Definition: ParaSimpleAudioSource.cpp:302
virtual void setStrength(const float &soundstrength)
Sets how well the source carries over distance.
Definition: ParaSimpleAudioSource.cpp:237
different physics engine has different winding order.
Definition: EventBinding.h:32
virtual const bool isPlaying() const
Returns if the source is playing.
Definition: ParaSimpleAudioSource.cpp:197
virtual void registerEventHandler(IAudioSourceEventHandler *handler)
Registers a new event handler to this source.
Definition: ParaSimpleAudioSource.cpp:382
virtual const float getOuterConeVolume() const
Returns how much the volume of the source is scaled in the outer cone.
Definition: ParaSimpleAudioSource.cpp:367
virtual void setDopplerVelocity(const PARAVECTOR3 &dvelocity)
Overrides the doppler velocity vector. It is usually better to let the engine take care of it automat...
Definition: ParaSimpleAudioSource.cpp:292
virtual const bool isPaused() const
Returns if the source is paused.
Definition: ParaSimpleAudioSource.cpp:202
virtual void setPitch(const float &pitch)
Sets the pitch of the source.
Definition: ParaSimpleAudioSource.cpp:252
virtual void move(const PARAVECTOR3 &position)
Convenience function to automatically set the velocity and position for you in a single call...
Definition: ParaSimpleAudioSource.cpp:297
virtual void release()
Releases all resources used by the audio source, normally used to clean up before deletion...
Definition: ParaSimpleAudioSource.cpp:184
virtual const PARAVECTOR3 getDopplerVelocity() const
Returns the override for the doppler velocity vector.
Definition: ParaSimpleAudioSource.cpp:377
virtual void setDirection(const PARAVECTOR3 &direction)
Sets the direction the source is facing.
Definition: ParaSimpleAudioSource.cpp:227
virtual const float getMinVolume() const
Returns the minimum volume that the source can be attenuated to.
Definition: ParaSimpleAudioSource.cpp:347
virtual const bool isValid() const
Returns if the source is ready to be used.
Definition: ParaSimpleAudioSource.cpp:192
virtual void setVolume(const float &volume)
Sets the source volume before attenuation and other effects.
Definition: ParaSimpleAudioSource.cpp:257
virtual const float getInnerConeAngle() const
Returns the angle of the inner sound cone of the source.
Definition: ParaSimpleAudioSource.cpp:357
virtual bool play3d(const PARAVECTOR3 &position, const float &soundstr=1.0, const bool &toLoop=false)
Plays the source in 3D mode.
Definition: ParaSimpleAudioSource.cpp:67
virtual void setPosition(const PARAVECTOR3 &position)
Sets the position of the source in 3D space.
Definition: ParaSimpleAudioSource.cpp:217
asset is always created in normal state.
Definition: ParaSimpleAudioSource.h:13
bool IsBackgroundMusic()
only one bg music at a time.
Definition: ParaSimpleAudioSource.h:142
virtual void setInnerConeAngle(const float &innerAngle)
Sets the angle of the inner sound cone of the source. The cone opens up in the direction of the sourc...
Definition: ParaSimpleAudioSource.cpp:272
virtual const bool isStopped() const
Returns if the source is stopped.
Definition: ParaSimpleAudioSource.cpp:207
virtual const float getRolloffFactor() const
Returns the factor used in attenuating the source over distance.
Definition: ParaSimpleAudioSource.cpp:317
virtual bool update()
Normally called every frame by the audio manager to update the internal buffers. Note: For internal u...
Definition: ParaSimpleAudioSource.cpp:146
virtual const float getMaxVolume() const
Returns the maximum volume that the source can achieve.
Definition: ParaSimpleAudioSource.cpp:352
virtual bool play()
Plays the source with the last set parameters.
Definition: ParaSimpleAudioSource.cpp:40
virtual const float getVolume() const
Returns the source volume before attenuation and other effects.
Definition: ParaSimpleAudioSource.cpp:342
virtual int getCompressedAudioSize()
Returns the original size of the audio stream. See IAudioDecoder for details.
Definition: ParaSimpleAudioSource.cpp:126
virtual int getCurrentCompressedAudioPosition()
Returns the current position in the original audio stream in bytes. See IAudioDecoder for details...
Definition: ParaSimpleAudioSource.cpp:141
an audio source
Definition: IParaAudioEngine.h:55
virtual void setMaxDistance(const float &maxDistance)
Sets the distance from the source where attenuation will stop.
Definition: ParaSimpleAudioSource.cpp:247
virtual const float getDopplerStrength() const
Returns the doppler strength, which enhances or diminishes the doppler effect.
Definition: ParaSimpleAudioSource.cpp:372
virtual bool seek(const float &seconds, bool relative=false)
Seeks through the audio stream to a specific spot.
Definition: ParaSimpleAudioSource.cpp:100
represents a single audio file being played or loaded.
Definition: ParaSimpleAudioSource.h:7
virtual int getCurrentAudioPosition()
Returns the current position in the decoded audio stream in bytes. See IAudioDecoder for details...
Definition: ParaSimpleAudioSource.cpp:136
virtual const PARAVECTOR3 getVelocity() const
Returns the audio objects velocity.
Definition: ParaSimpleAudioSource.cpp:307
virtual void setOuterConeVolume(const float &outerVolume)
Sets how much the volume of the source is scaled in the outer cone.
Definition: ParaSimpleAudioSource.cpp:282
virtual const bool isLooping() const
Returns if the source is looping.
Definition: ParaSimpleAudioSource.cpp:212
virtual const PARAVECTOR3 getDirection() const
Returns the audio objects direction.
Definition: ParaSimpleAudioSource.cpp:312
Definition: PEtypes.h:298
virtual float getCurrentAudioTime()
Returns the current position in the audio stream in seconds. See IAudioDecoder for details...
Definition: ParaSimpleAudioSource.cpp:131
virtual const float getStrength() const
Returns the strength of the source.
Definition: ParaSimpleAudioSource.cpp:322
virtual void setVelocity(const PARAVECTOR3 &velocity)
Sets the current velocity of the source for doppler effects.
Definition: ParaSimpleAudioSource.cpp:222
virtual float getTotalAudioTime()
Returns the total amount of time in the audio stream. See IAudioDecoder for details.
Definition: ParaSimpleAudioSource.cpp:116
virtual void stop()
Stops playback of the sound source.
Definition: ParaSimpleAudioSource.cpp:79
Interface for event handlers on Audio Sources.
Definition: IParaAudioEngine.h:35
virtual void setOuterConeAngle(const float &outerAngle)
Sets the angle of the outer sound cone of the source. The cone opens up in the direction of the sourc...
Definition: ParaSimpleAudioSource.cpp:277
virtual void setDopplerStrength(const float &dstrength)
Sets the doppler strength, which enhances or diminishes the doppler effect. Can be used to exaggerate...
Definition: ParaSimpleAudioSource.cpp:287
virtual const float getMaxDistance() const
Returns the distance from the source where attenuation will stop.
Definition: ParaSimpleAudioSource.cpp:332
virtual void setRolloffFactor(const float &rolloff)
Sets the factor used in attenuating the source over distance.
Definition: ParaSimpleAudioSource.cpp:232
virtual void loop(const bool &toLoop)
Controls whether the source should loop or not.
Definition: ParaSimpleAudioSource.cpp:95