Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Audio::Source Class Referenceabstract

#include <Source.h>

Inheritance diagram for Audio::Source:
Audio::SimpleSource

Public Member Functions

virtual ~Source ()
 
LVector3 getPosition () const throw ()
 
void setPosition (LVector3 x) throw ()
 
Vector3 getDirection () const throw ()
 
void setDirection (Vector3 x) throw ()
 
Vector3 getVelocity () const throw ()
 
void setVelocity (Vector3 x) throw ()
 
Range< ScalargetAngleRange () const throw ()
 
void setAngleRange (Range< Scalar > r) throw ()
 
Range< ScalargetCosAngleRange () const throw ()
 
void setCosAngleRange (Range< Scalar > r) throw ()
 
Scalar getRadius () const throw ()
 
void setRadius (Scalar r) throw ()
 
PerFrequency< ScalargetPerFrequencyRadiusRatios () const throw ()
 
void setPerFrequencyRadiusRatios (PerFrequency< Scalar > val) throw ()
 
PerFrequency< ScalargetReferenceFreqs () const throw ()
 
void setReferenceFreqs (PerFrequency< Scalar > val) throw ()
 
Scalar getGain () const throw ()
 
void setGain (Scalar g) throw ()
 
bool isLooping () const throw ()
 
void setLooping (bool loop) throw ()
 
bool isAttenuated () const throw ()
 
void setAttenuated (bool attenuated) throw ()
 
bool isRelative () const throw ()
 
void setRelative (bool relative) throw ()
 
void startPlaying (Timestamp start=0) throw (Exception)
 
void stopPlaying () throw ()
 
void pausePlaying () throw ()
 
void continuePlaying () throw (Exception)
 
bool isPlaying () const throw ()
 
bool isActive () const throw ()
 
Timestamp getPlayingTime () const throw ()
 
Timestamp getWouldbePlayingTime () const throw ()
 
SharedPtr< RenderableSourcegetRenderable () const throw ()
 
void setRenderable (SharedPtr< RenderableSource > ptr) throw ()
 
SharedPtr< UserDatagetUserDataPtr () const throw ()
 
void setUserDataLong (SharedPtr< UserData > ptr) throw ()
 
long getUserDataLong () const throw ()
 
void setUserDataLong (long data) throw ()
 
SharedPtr< SourceListenergetSourceListener () const throw ()
 
void setSourceListener (SharedPtr< SourceListener > ptr) throw ()
 
SharedPtr< SoundgetSound () const throw ()
 
void setSound (SharedPtr< Sound > ptr) throw ()
 
void updateRenderable (int flags, const Listener &sceneListener) throw ()
 
void seek (Timestamp time) throw (Exception)
 
void _notifyPlaying () throw ()
 

Protected Member Functions

 Source (SharedPtr< Sound > sound, bool looping=false) throw ()
 
Timestamp setLastKnownPlayingTime (Timestamp timestamp) throw ()
 
virtual void startPlayingImpl (Timestamp start)=0 throw (Exception)
 
virtual void stopPlayingImpl ()=0 throw (Exception)
 
virtual bool isPlayingImpl () const =0 throw (Exception)
 

Protected Attributes

LVector3 position
 
Vector3 direction
 
Vector3 velocity
 
Range< ScalarcosAngleRange
 
Scalar radius
 
PerFrequency< ScalarpfRadiusRatios
 
PerFrequency< ScalarreferenceFreqs
 
Scalar gain
 
struct {
   int   looping: 1
 
   int   attenuated: 1
 
   int   relative: 1
 
flags
 
Timestamp lastKnownPlayingTime
 
Timestamp lastKnownPlayingTimeTime
 
struct {
   int   location: 1
 
   int   attributes: 1
 
   int   gain: 1
 
   int   soundPtr: 1
 
   int   soundAttributes: 1
 
dirty
 

Detailed Description

Source abstract class

Remarks
This is the interface to all kinds of audio sources. This base class implements the majority of the functions required for sources, specific implementations need only provide a handful of functions (impl functions) that keep their associated scene managers up to speed.
Renderer-specific implementation goes through RenderableSource s
attached to the abstract Source. Renderers are responsible for attaching RenderableSource s to abstract Sources as necessary. Many implementation functions (as play/stop/getPlayingTime) go through those renderer-specific interfaces.

Definition at line 36 of file Source.h.

Constructor & Destructor Documentation

Audio::Source::Source ( SharedPtr< Sound sound,
bool  looping = false 
)
throw (
)
protected

Internal constructor used by derived classes

Definition at line 14 of file Source.cpp.

14  :
15  soundPtr(sound),
16 
17  // Some safe defaults
18  position(0,0,0),
19  direction(0,0,1),
20  velocity(0,0,0),
21 
22  cosAngleRange(-1,-1),
23 
24  radius(1),
25 
26  pfRadiusRatios(1,1),
27  referenceFreqs(250,5000),
28 
29  gain(1),
30 
33  {
34  // Some default flags
35  setLooping(_looping);
36  setRelative(false);
37  setAttenuated(true);
38  }
Audio::Source::~Source ( )
virtual

Definition at line 40 of file Source.cpp.

41  {
42  }

Member Function Documentation

void Audio::Source::_notifyPlaying ( )
throw (
)

Notifies source listeners (if any) that the source has begun actually playing.

Remarks
Usually, listener notifications are automatic. In the case of rendering start (actual playing), it's not as easy, since the renderer and scene manager have ultimate control over it. It's the renderer's responsability, thus, to fire this notification event when it's begun rendering. All other events take place immediately, so they're automatically handled by Source's implementation.
void Audio::Source::continuePlaying ( )
throw (Exception
)

Continue playing a source

Remarks
If the source is playing but inactive, continue playing. Otherwise, do nothing.
See Also
pausePlaying

Definition at line 83 of file Source.cpp.

References getWouldbePlayingTime(), isActive(), and isPlaying().

84  {
85  if (rendererDataPtr.get() && isPlaying() && !isActive()) {
86  // Must notify the listener, if any
87  if (sourceListenerPtr.get() != 0 && sourceListenerPtr->wantPlayEvents())
88  sourceListenerPtr->onPrePlay(*this, true);
89 
90  rendererDataPtr->startPlaying( getWouldbePlayingTime() );
91 
92  // Must notify the listener, if any
93  if (sourceListenerPtr.get() != 0 && sourceListenerPtr->wantPlayEvents())
94  sourceListenerPtr->onPrePlay(*this, true);
95 
96  }
97  }
Range< Scalar > Audio::Source::getAngleRange ( ) const
throw (
)

Return the source's minimum/maximum propagation angle

Remarks
Sound will fully propagate in directions within minimum directional drift. Further drift will attenuate the sound until it (practically) disappears by the maximum propagation angle.

Definition at line 138 of file Source.cpp.

References UniverseUtil::acos(), cosAngleRange, Audio::Range< T >::max, and Audio::Range< T >::min.

Referenced by Audio::OpenALRenderableSource::updateImpl(), and Audio::OpenALRenderableStreamingSource::updateImpl().

139  {
140  return Range<Scalar>(Scalar(acos(cosAngleRange.min)),
142  }
Range<Scalar> Audio::Source::getCosAngleRange ( ) const
throw (
)
inline
See Also
getAngleRange
Remarks
This version returns cosine-angles rather than radians, much quicker

Definition at line 141 of file Source.h.

References cosAngleRange.

141 { return cosAngleRange; }
Vector3 Audio::Source::getDirection ( ) const
throw (
)
inline

Return the source's main propagation direction

Definition at line 119 of file Source.h.

References direction.

Referenced by Audio::OpenALRenderableSource::updateImpl(), and Audio::OpenALRenderableStreamingSource::updateImpl().

119 { return direction; }
Scalar Audio::Source::getGain ( ) const
throw (
)
inline

Get the source's main gain

Definition at line 172 of file Source.h.

References gain.

Referenced by Audio::OpenALRenderableSource::updateImpl(), and Audio::OpenALRenderableStreamingSource::updateImpl().

172 { return gain; }
PerFrequency<Scalar> Audio::Source::getPerFrequencyRadiusRatios ( ) const
throw (
)
inline

Get the source's frequency-dependant radius ratios

Remarks
Sound propagation goes different for low and high frequencies than for others. Sound creation does too - this specifies the ratio of a source's volume that is generating high/low frequency vibrations. This will affect propagation of those frequencies over distance.

Definition at line 158 of file Source.h.

References pfRadiusRatios.

158 { return pfRadiusRatios; }
Timestamp Audio::Source::getPlayingTime ( ) const
throw (
)

Get the playing position of a playing or paused source

Definition at line 99 of file Source.cpp.

References e, isActive(), and lastKnownPlayingTime.

Referenced by pausePlaying().

100  {
101  try {
102  if (rendererDataPtr.get() && isActive())
103  return rendererDataPtr->getPlayingTime();
104  else
105  return lastKnownPlayingTime;
106  } catch(Exception e) {
107  return lastKnownPlayingTime;
108  }
109  }
LVector3 Audio::Source::getPosition ( ) const
throw (
)
inline

Return the source's central position in 3D space

Definition at line 113 of file Source.h.

References position.

Referenced by Audio::OpenALRenderableSource::updateImpl(), and Audio::OpenALRenderableStreamingSource::updateImpl().

113 { return position; }
Scalar Audio::Source::getRadius ( ) const
throw (
)
inline

Get the source's radius

Definition at line 147 of file Source.h.

References radius.

Referenced by Audio::OpenALRenderableSource::updateImpl(), and Audio::OpenALRenderableStreamingSource::updateImpl().

147 { return radius; }
PerFrequency<Scalar> Audio::Source::getReferenceFreqs ( ) const
throw (
)
inline

Get the source's refernece frequencies

Definition at line 166 of file Source.h.

References referenceFreqs.

166 { return referenceFreqs; }
SharedPtr<RenderableSource> Audio::Source::getRenderable ( ) const
throw (
)
inline

Get renderer-specific data associated (and destroyed) with this sound source

Definition at line 243 of file Source.h.

243 { return rendererDataPtr; }
SharedPtr<Sound> Audio::Source::getSound ( ) const
throw (
)
inline
SharedPtr<SourceListener> Audio::Source::getSourceListener ( ) const
throw (
)
inline

Get an event listener associated with this sound source

Definition at line 261 of file Source.h.

261 { return sourceListenerPtr; }
long Audio::Source::getUserDataLong ( ) const
throw (
)
inline

Get user-specific data associated with this sound source

Definition at line 255 of file Source.h.

Referenced by Audio::Test::EngParticleListener::onUpdate().

255 { return userDataLong; }
SharedPtr<UserData> Audio::Source::getUserDataPtr ( ) const
throw (
)
inline

Get user-specific data associated (and destroyed) with this sound source

Definition at line 249 of file Source.h.

249 { return userDataPtr; }
Vector3 Audio::Source::getVelocity ( ) const
throw (
)
inline

Return the source's velocity

Definition at line 125 of file Source.h.

References velocity.

Referenced by Audio::OpenALRenderableSource::updateImpl(), and Audio::OpenALRenderableStreamingSource::updateImpl().

125 { return velocity; }
Timestamp Audio::Source::getWouldbePlayingTime ( ) const
throw (
)

Get the playing position of a playing or paused source. For a paused source, extrapolate from the last known playing time and elapsed time since the measurement was done.

Definition at line 111 of file Source.cpp.

References e, Audio::getRealTime(), isActive(), lastKnownPlayingTime, and lastKnownPlayingTimeTime.

Referenced by continuePlaying().

112  {
113  try {
114  if (rendererDataPtr.get() && isActive())
115  return rendererDataPtr->getPlayingTime();
116  } catch(Exception e) { }
118  }
bool Audio::Source::isActive ( ) const
throw (
)

Is the attached renderable playing this source?

Definition at line 129 of file Source.cpp.

References e.

Referenced by continuePlaying(), getPlayingTime(), getWouldbePlayingTime(), and pausePlaying().

130  {
131  try {
132  return rendererDataPtr.get() && rendererDataPtr->isPlaying();
133  } catch(Exception e) {
134  return false;
135  }
136  }
bool Audio::Source::isAttenuated ( ) const
throw (
)
inline

Is the source using distance attenuation?

Definition at line 184 of file Source.h.

References flags.

Referenced by Audio::OpenALRenderableSource::updateImpl(), and Audio::OpenALRenderableStreamingSource::updateImpl().

184 { return flags.attenuated != 0; }
bool Audio::Source::isLooping ( ) const
throw (
)
inline

Is the source in looping mode?

Definition at line 178 of file Source.h.

References flags.

Referenced by Audio::OpenALRenderableStreamingSource::queueALBuffers(), Audio::OpenALRenderableSource::updateImpl(), and Audio::OpenALRenderableStreamingSource::updateImpl().

178 { return flags.looping != 0; }
bool Audio::Source::isPlaying ( ) const
throw (
)

Is the source still playing?

Definition at line 120 of file Source.cpp.

References e, and isPlayingImpl().

Referenced by continuePlaying(), and Audio::SimpleSource::stopPlayingImpl().

121  {
122  try {
123  return isPlayingImpl();
124  } catch(Exception e) {
125  return false;
126  }
127  }
virtual bool Audio::Source::isPlayingImpl ( ) const
throw (Exception
)
protectedpure virtual
See Also
isPlaying.

Implemented in Audio::SimpleSource.

Referenced by isPlaying().

bool Audio::Source::isRelative ( ) const
throw (
)
inline

Is the source's position always relative to the root listener?

Remarks
Relative sources are useful for interphase sounds, music, comm streams, and all those sources which are not anchored to a real 3D object, but rather to the listener itself.

Definition at line 194 of file Source.h.

References flags.

Referenced by Audio::OpenALRenderableSource::updateImpl(), and Audio::OpenALRenderableStreamingSource::updateImpl().

194 { return flags.relative != 0; }
void Audio::Source::pausePlaying ( )
throw (
)

Pause a playing source

Remarks
If the source is active, make it inactive. Otherwise, do nothing. Playing state is not changed, but the attached renderable is stopped. This is useful to free up resources. A later call to continuePlaying() undoes this, and playing resumes as if the source hadn't been stopped (at getWouldBePlayingTime).
See Also
getWouldBePlayingTime

Definition at line 64 of file Source.cpp.

References e, getPlayingTime(), isActive(), and setLastKnownPlayingTime().

Referenced by stopPlaying().

65  {
66  if (rendererDataPtr.get() && isActive()) {
67  try {
69  } catch(Exception e) { }
70 
71  // Must notify the listener, if any
72  if (sourceListenerPtr.get() != 0 && sourceListenerPtr->wantPlayEvents())
73  sourceListenerPtr->onPrePlay(*this, false);
74 
75  rendererDataPtr->stopPlaying();
76 
77  // Must notify the listener, if any
78  if (sourceListenerPtr.get() != 0 && sourceListenerPtr->wantPlayEvents())
79  sourceListenerPtr->onPostPlay(*this, false);
80  }
81  }
void Audio::Source::seek ( Timestamp  time)
throw (Exception
)

Seek to the specified position

Note
It may not be supported by the renderer on all sources. Streaming sources are guaranteed to perform a rough seek on a best effort basis, meaning the effective time after the seek may be off a bit, and the process may be costly. Seeking in non-streaming sources may not be supported at all.
Exceptions
EndOfStreamExceptionif you try to seek past the end

Definition at line 209 of file Source.cpp.

211  {
212  if (rendererDataPtr.get() && isPlaying() && isActive()) {
213  rendererDataPtr->seek(time);
214  } else {
216  }
217  }
void Audio::Source::setAngleRange ( Range< Scalar r)
throw (
)
See Also
getAngleRange

Definition at line 144 of file Source.cpp.

References UniverseUtil::cos().

145  {
146  cosAngleRange.min = Scalar(cos(r.min));
147  cosAngleRange.max = Scalar(cos(r.max));
148  dirty.attributes = 1;
149  }
void Audio::Source::setAttenuated ( bool  attenuated)
throw (
)
inline

Set whether the source uses distance attenuation

Definition at line 187 of file Source.h.

References attenuated, dirty, and flags.

187 { flags.attenuated = attenuated ? 1 : 0; dirty.attributes = 1; }
void Audio::Source::setCosAngleRange ( Range< Scalar r)
throw (
)
inline
See Also
getAngleRange
Remarks
This version takes cosine-angles rather than radians, much quicker

Definition at line 144 of file Source.h.

References cosAngleRange, and dirty.

144 { cosAngleRange = r; dirty.attributes = 1; }
void Audio::Source::setDirection ( Vector3  x)
throw (
)
inline

Set the source's main propagation direction

Definition at line 122 of file Source.h.

References direction, dirty, and x.

Referenced by Audio::Test::EngParticleListener::onUpdate().

122 { direction = x; dirty.location = 1; }
void Audio::Source::setGain ( Scalar  g)
throw (
)
inline

Set the source's main gain

Definition at line 175 of file Source.h.

References dirty, g, and gain.

175 { gain = g; dirty.gain = 1; }
Timestamp Audio::Source::setLastKnownPlayingTime ( Timestamp  timestamp)
throw (
)
protected

Set the last known playing time, update the measurement timestamp as well.

Returns
the parameter, for chaining.

Definition at line 44 of file Source.cpp.

References Audio::getRealTime().

Referenced by pausePlaying().

45  {
46  lastKnownPlayingTime = timestamp;
48  return timestamp;
49  }
void Audio::Source::setLooping ( bool  loop)
throw (
)
inline

Set the source's looping mode

Definition at line 181 of file Source.h.

References dirty, flags, and loop().

181 { flags.looping = loop ? 1 : 0; dirty.soundAttributes = 1; }
void Audio::Source::setPerFrequencyRadiusRatios ( PerFrequency< Scalar val)
throw (
)
inline

Set the source's frequency-dependant radius ratios

See Also
getRadiusRatios

Definition at line 163 of file Source.h.

References dirty, and pfRadiusRatios.

163 { pfRadiusRatios = val; dirty.attributes = 1; }
void Audio::Source::setPosition ( LVector3  x)
throw (
)
inline

Set the source's central position in 3D space

Definition at line 116 of file Source.h.

References dirty, position, and x.

Referenced by Audio::Test::EngParticleListener::onUpdate().

116 { position = x; dirty.location = 1; }
void Audio::Source::setRadius ( Scalar  r)
throw (
)
inline

Set the source's radius

Definition at line 150 of file Source.h.

References dirty, and radius.

150 { radius = r; dirty.attributes = 1; }
void Audio::Source::setReferenceFreqs ( PerFrequency< Scalar val)
throw (
)
inline

Set the source's reference frequencies

Definition at line 169 of file Source.h.

References dirty, and referenceFreqs.

169 { referenceFreqs = val; dirty.attributes = 1; }
void Audio::Source::setRelative ( bool  relative)
throw (
)
inline

Set whether the source's position is always relative to the root listener.

Definition at line 197 of file Source.h.

References dirty, flags, and relative.

197 { flags.relative = relative ? 1 : 0; dirty.attributes = 1; }
void Audio::Source::setRenderable ( SharedPtr< RenderableSource ptr)
throw (
)

Set renderer-specific data to be associated (and destroyed) with this sound source

Definition at line 195 of file Source.cpp.

197  {
198  // Notify at/detachment to listener, if any
199  if (sourceListenerPtr.get() != 0 && sourceListenerPtr->wantAttachEvents())
200  sourceListenerPtr->onPreAttach(*this, ptr.get() != 0);
201 
202  rendererDataPtr = ptr;
203 
204  // Notify at/detachment to listener, if any
205  if (sourceListenerPtr.get() != 0 && sourceListenerPtr->wantAttachEvents())
206  sourceListenerPtr->onPostAttach(*this, ptr.get() != 0);
207  }
void Audio::Source::setSound ( SharedPtr< Sound ptr)
throw (
)
inline

Set the associated sound stream - Only for SceneManagers to call

Definition at line 270 of file Source.h.

References dirty.

270 { soundPtr = ptr; dirty.soundPtr = 1; }
void Audio::Source::setSourceListener ( SharedPtr< SourceListener ptr)
throw (
)
inline

Set an event listener to be associated with this sound source

Definition at line 264 of file Source.h.

264 { sourceListenerPtr = ptr; }
void Audio::Source::setUserDataLong ( SharedPtr< UserData ptr)
throw (
)
inline

Set user-specific data to be associated (and destroyed) with this sound source

Definition at line 252 of file Source.h.

252 { userDataPtr = ptr; }
void Audio::Source::setUserDataLong ( long  data)
throw (
)
inline

Get user-specific data associated with this sound source

Definition at line 258 of file Source.h.

258 { userDataLong = data; }
void Audio::Source::setVelocity ( Vector3  x)
throw (
)
inline

Set the source's velocity

Definition at line 128 of file Source.h.

References dirty, velocity, and x.

Referenced by Audio::Test::EngParticleListener::onUpdate().

128 { velocity = x; dirty.location = 1; }
void Audio::Source::startPlaying ( Timestamp  start = 0)
throw (Exception
)

Play the source

Parameters
startan optional timestamp to start playing from.
Remarks
Rewind and play from the beginning. If the source is playing, it is reset. May not take effect immediately.

Definition at line 51 of file Source.cpp.

References start.

52  {
53  dirty.setAll();
55  }
virtual void Audio::Source::startPlayingImpl ( Timestamp  start)
throw (Exception
)
protectedpure virtual
See Also
startPlaying
Parameters
startThe starting position.

Implemented in Audio::SimpleSource.

void Audio::Source::stopPlaying ( )
throw (
)

Stop a playing source

Remarks
If the source is playing, stop it. Otherwise, do nothing.
Remembers the playing time so that a call to getWouldbePlayingTime can
return the correct time.

Definition at line 57 of file Source.cpp.

References pausePlaying(), and stopPlayingImpl().

58  {
59  // Pause first to stop the renderable
60  pausePlaying();
62  }
virtual void Audio::Source::stopPlayingImpl ( )
throw (Exception
)
protectedpure virtual
See Also
stopPlaying.

Implemented in Audio::SimpleSource.

Referenced by stopPlaying().

void Audio::Source::updateRenderable ( int  flags,
const Listener sceneListener 
)
throw (
)

Convenience function to update the attached renderable, if present, and active.

Parameters
flagssee RenderableSource::UpdateFlags
sceneListenerthe listener to which this source is associated

Definition at line 151 of file Source.cpp.

References Audio::RenderableSource::UPDATE_ALL, Audio::RenderableSource::UPDATE_ATTRIBUTES, Audio::RenderableSource::UPDATE_EFFECTS, Audio::RenderableSource::UPDATE_GAIN, and Audio::RenderableSource::UPDATE_LOCATION.

153  {
154  if (rendererDataPtr.get()) {
155  int oflags = flags;
156 
157  if (!dirty.attributes)
158  flags &= ~RenderableSource::UPDATE_ATTRIBUTES;
159  if (!dirty.gain)
160  flags &= ~RenderableSource::UPDATE_GAIN;
161 
162  // Must always update location... listeners might move around.
164 
165  // Must nofity listener, if any
166  if (sourceListenerPtr.get() != 0 && sourceListenerPtr->wantUpdateEvents())
167  sourceListenerPtr->onUpdate(*this, flags);
168 
169  rendererDataPtr->update(flags, sceneListener);
170 
171  if (oflags == RenderableSource::UPDATE_ALL) {
172  dirty.reset();
173  } else {
175  dirty.location = 0;
177  dirty.attributes = 0;
179  dirty.gain = 0;
180  }
181 
182  switch(flags) {
184  dirty.reset();
185  break;
187  case RenderableSource::UPDATE_ATTRIBUTES:
188  dirty.attributes = 0;
189  case RenderableSource::UPDATE_LOCATION:
190  dirty.location = 0;
191  };
192  }
193  }

Member Data Documentation

int Audio::Source::attenuated

Definition at line 60 of file Source.h.

Referenced by setAttenuated().

int Audio::Source::attributes

min/max angle, radius, pf radius ratios, reference freqs, attenuation

Definition at line 76 of file Source.h.

Range<Scalar> Audio::Source::cosAngleRange
protected

Definition at line 50 of file Source.h.

Referenced by getAngleRange(), getCosAngleRange(), and setCosAngleRange().

Vector3 Audio::Source::direction
protected

Definition at line 47 of file Source.h.

Referenced by getDirection(), and setDirection().

struct { ... } Audio::Source::dirty

Notify implementations after position and/or attributes changes

Remarks
Implementations use the "dirty" member struct to precisely know and track what changed and what didn't. Call reset() when synchronized.

Referenced by setAttenuated(), setCosAngleRange(), setDirection(), setGain(), setLooping(), setPerFrequencyRadiusRatios(), setPosition(), setRadius(), setReferenceFreqs(), setRelative(), setSound(), and setVelocity().

struct { ... } Audio::Source::flags
Scalar Audio::Source::gain
protected

Definition at line 56 of file Source.h.

Referenced by getGain(), and setGain().

int Audio::Source::gain

gain

Definition at line 79 of file Source.h.

Timestamp Audio::Source::lastKnownPlayingTime
protected

Definition at line 64 of file Source.h.

Referenced by getPlayingTime(), and getWouldbePlayingTime().

Timestamp Audio::Source::lastKnownPlayingTimeTime
protected

Definition at line 65 of file Source.h.

Referenced by getWouldbePlayingTime().

int Audio::Source::location

position, velocity & direction

Definition at line 73 of file Source.h.

int Audio::Source::looping

Definition at line 59 of file Source.h.

PerFrequency<Scalar> Audio::Source::pfRadiusRatios
protected

Definition at line 53 of file Source.h.

Referenced by getPerFrequencyRadiusRatios(), and setPerFrequencyRadiusRatios().

LVector3 Audio::Source::position
protected

Definition at line 46 of file Source.h.

Referenced by getPosition(), and setPosition().

Scalar Audio::Source::radius
protected

Definition at line 52 of file Source.h.

Referenced by getRadius(), and setRadius().

PerFrequency<Scalar> Audio::Source::referenceFreqs
protected

Definition at line 54 of file Source.h.

Referenced by getReferenceFreqs(), and setReferenceFreqs().

int Audio::Source::relative

Definition at line 61 of file Source.h.

Referenced by setRelative().

int Audio::Source::soundAttributes

looping

Definition at line 85 of file Source.h.

int Audio::Source::soundPtr

soundPtr

Definition at line 82 of file Source.h.

Vector3 Audio::Source::velocity
protected

Definition at line 48 of file Source.h.

Referenced by getVelocity(), and setVelocity().


The documentation for this class was generated from the following files: