Mercurial > fife-parpg
annotate engine/core/audio/soundemitter.h @ 629:e37469251b22
* Removed some more unused files
author | prock@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Mon, 04 Oct 2010 20:52:06 +0000 |
parents | 58c0bbeeeb35 |
children |
rev | line source |
---|---|
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
1 /*************************************************************************** |
46
90005975cdbb
* Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
0
diff
changeset
|
2 * Copyright (C) 2005-2008 by the FIFE team * |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
3 * http://www.fifengine.de * |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
4 * This file is part of FIFE. * |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
5 * * |
46
90005975cdbb
* Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
0
diff
changeset
|
6 * FIFE is free software; you can redistribute it and/or * |
90005975cdbb
* Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
0
diff
changeset
|
7 * modify it under the terms of the GNU Lesser General Public * |
90005975cdbb
* Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
0
diff
changeset
|
8 * License as published by the Free Software Foundation; either * |
90005975cdbb
* Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
0
diff
changeset
|
9 * version 2.1 of the License, or (at your option) any later version. * |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
10 * * |
46
90005975cdbb
* Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
0
diff
changeset
|
11 * This library is distributed in the hope that it will be useful, * |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
46
90005975cdbb
* Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
0
diff
changeset
|
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * |
90005975cdbb
* Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
0
diff
changeset
|
14 * Lesser General Public License for more details. * |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
15 * * |
46
90005975cdbb
* Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
0
diff
changeset
|
16 * You should have received a copy of the GNU Lesser General Public * |
90005975cdbb
* Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
0
diff
changeset
|
17 * License along with this library; if not, write to the * |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
18 * Free Software Foundation, Inc., * |
46
90005975cdbb
* Final LGPL switch step by adjusting the file headers
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
0
diff
changeset
|
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
20 ***************************************************************************/ |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
21 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
22 #ifndef FIFE_SOUNDEMITTER_H_ |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
23 #define FIFE_SOUNDEMITTER_H_ |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
24 |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
25 // Standard C++ library includes |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
26 |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
27 // Platform specific includes |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
28 |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
29 // 3rd party library includes |
360
11896fe26c1d
Added SoundEmitter::setCallback(). The callback will be
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
174
diff
changeset
|
30 #include <boost/function.hpp> |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
31 |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
32 // FIFE includes |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
33 // These includes are split up in two parts, separated by one empty line |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
34 // First block: files included from the FIFE root src directory |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
35 // Second block: files included from the same folder |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
36 #include "vfs/raw/rawdata.h" |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
37 #include "util/time/timeevent.h" |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
38 |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
39 #include "soundclip.h" |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
40 |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
41 namespace FIFE { |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
42 |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
43 class SoundManager; |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
44 class SoundClipPool; |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
45 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
46 /** The class for playing audio files |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
47 */ |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
48 class SoundEmitter : private TimeEvent { |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
49 public: |
360
11896fe26c1d
Added SoundEmitter::setCallback(). The callback will be
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
174
diff
changeset
|
50 typedef boost::function0<void> type_callback; |
11896fe26c1d
Added SoundEmitter::setCallback(). The callback will be
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
174
diff
changeset
|
51 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
52 SoundEmitter(SoundManager* manager, SoundClipPool* pool, unsigned int uid); |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
53 ~SoundEmitter(); |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
54 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
55 /** Returns the emitter-id |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
56 */ |
574
58c0bbeeeb35
* Changed getID() to getId(). fixes[ticket:461]
helios2000@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
487
diff
changeset
|
57 unsigned int getId() const{ |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
58 return m_emitterid; |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
59 } |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
60 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
61 /** Sets Positioning-Type |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
62 * Default is false |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
63 * |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
64 * @param relative If set to true, the emitters position will be interpreted relative to the listener object |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
65 * |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
66 */ |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
67 void setPositioning(bool relative) { |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
68 alSourcei(m_source, AL_SOURCE_RELATIVE, relative ? AL_TRUE : AL_FALSE); |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
69 } |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
70 |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
71 /** Sets the AL_ROLEOFF_FACTOR. Rolloff factor judges the strength of attenuation over distance. |
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
72 * |
174
362fe23920b9
* Fixed a small typo: soundemitter:setRoleoff -> soundemitter:setRolloff
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
173
diff
changeset
|
73 * @param rolloff Rolloff factor. You'll need to do a lot of testing to find a value which suits your needs. |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
74 */ |
174
362fe23920b9
* Fixed a small typo: soundemitter:setRoleoff -> soundemitter:setRolloff
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
173
diff
changeset
|
75 void setRolloff(float rolloff) { |
362fe23920b9
* Fixed a small typo: soundemitter:setRoleoff -> soundemitter:setRolloff
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
173
diff
changeset
|
76 alSourcef (m_source, AL_ROLLOFF_FACTOR, rolloff); |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
77 } |
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
78 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
79 /** Sets the sound clip to be used by this emitter. |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
80 * @param sound_id SoundClipPool id of the sound to be used. |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
81 */ |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
82 void setSoundClip(unsigned int sound_id); |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
83 |
360
11896fe26c1d
Added SoundEmitter::setCallback(). The callback will be
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
174
diff
changeset
|
84 /** Sets the callback to use when the STREAM has finished being played. |
11896fe26c1d
Added SoundEmitter::setCallback(). The callback will be
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
174
diff
changeset
|
85 * NOTE: This only works with streaming audio. |
11896fe26c1d
Added SoundEmitter::setCallback(). The callback will be
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
174
diff
changeset
|
86 * |
11896fe26c1d
Added SoundEmitter::setCallback(). The callback will be
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
174
diff
changeset
|
87 * @param cb function callback |
11896fe26c1d
Added SoundEmitter::setCallback(). The callback will be
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
174
diff
changeset
|
88 */ |
11896fe26c1d
Added SoundEmitter::setCallback(). The callback will be
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
174
diff
changeset
|
89 void setCallback(const type_callback& cb); |
11896fe26c1d
Added SoundEmitter::setCallback(). The callback will be
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
174
diff
changeset
|
90 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
91 /** Reset the emitter, free all internal buffers |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
92 * |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
93 * @param defaultall If set to true, emitter position, velocity, gain and type will be set to the default values |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
94 */ |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
95 void reset(bool defaultall = false); |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
96 |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
97 /** Releases the emitter |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
98 */ |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
99 void release(); |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
100 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
101 /** Sets the playing mode |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
102 */ |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
103 void setLooping(bool loop); |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
104 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
105 /** Plays the associated audio file. |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
106 */ |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
107 void play(); |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
108 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
109 /** Stops playing the audio file and rewinds to the beginning |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
110 */ |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
111 void stop(); |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
112 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
113 /** Pauses playing the audio file |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
114 */ |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
115 void pause() { |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
116 if (m_soundclip) { |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
117 alSourcePause(m_source); |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
118 } |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
119 } |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
120 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
121 /** Sets the gain of the emitter |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
122 * |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
123 * @param gain The gain value. 0=silence ... 1.0=normal loudness. |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
124 */ |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
125 void setGain(float gain) { |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
126 alSourcef(m_source, AL_GAIN, gain); |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
127 } |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
128 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
129 /** Returns the gain of the emitter |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
130 * |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
131 * @return The gain value. 0=silence ... 1.0=normal loudness. |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
132 */ |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
133 float getGain() { |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
134 float tmp; |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
135 alGetSourcef(m_source, AL_GAIN, &tmp); |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
136 return tmp; |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
137 } |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
138 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
139 /** Tests if the audio data is stereo data or mono. |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
140 * |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
141 * @return Returns true if the audio data is stereo, false if mono. |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
142 */ |
378
64738befdf3b
bringing in the changes from the build_system_rework branch in preparation for the 0.3.0 release. This commit will require the Jan2010 devkit. Clients will also need to be modified to the new way to import fife.
vtchill@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
360
diff
changeset
|
143 bool isStereo() const{ |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
144 if (m_soundclip) { |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
145 return m_soundclip->getDecoder()->isStereo(); |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
146 } |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
147 return false; |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
148 } |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
149 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
150 /** Returns the bit resolution |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
151 */ |
378
64738befdf3b
bringing in the changes from the build_system_rework branch in preparation for the 0.3.0 release. This commit will require the Jan2010 devkit. Clients will also need to be modified to the new way to import fife.
vtchill@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
360
diff
changeset
|
152 short getBitResolution() const { |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
153 if (m_soundclip) { |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
154 return m_soundclip->getDecoder()->getBitResolution(); |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
155 } |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
156 return 0; |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
157 } |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
158 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
159 /** Returns the sample rate |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
160 */ |
378
64738befdf3b
bringing in the changes from the build_system_rework branch in preparation for the 0.3.0 release. This commit will require the Jan2010 devkit. Clients will also need to be modified to the new way to import fife.
vtchill@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
360
diff
changeset
|
161 unsigned long getSampleRate() const{ |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
162 if (m_soundclip) { |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
163 return m_soundclip->getDecoder()->getSampleRate(); |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
164 } |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
165 return 0; |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
166 } |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
167 |
484
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
168 /** Returns the length of the decoded length in bytes |
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
169 */ |
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
170 unsigned long getDecodedLength() const{ |
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
171 if (m_soundclip) { |
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
172 return m_soundclip->getDecoder()->getDecodedLength(); |
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
173 |
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
174 } |
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
175 return 0; |
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
176 } |
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
177 |
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
178 /** Returns the duration of the sound clip in milliseconds |
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
179 */ |
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
180 unsigned long getDuration() const{ |
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
181 if (m_soundclip) { |
487
7f1c42b66aa4
Moved the shooter demo Timer() class to helpers.py.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
484
diff
changeset
|
182 double samplerate = static_cast<double>(getSampleRate()) / 1000.0; //convert to milliseconds |
7f1c42b66aa4
Moved the shooter demo Timer() class to helpers.py.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
484
diff
changeset
|
183 double bitres = static_cast<double>(getBitResolution()); |
7f1c42b66aa4
Moved the shooter demo Timer() class to helpers.py.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
484
diff
changeset
|
184 double size = static_cast<double>(getDecodedLength()) * 8.0; //convert to bits |
7f1c42b66aa4
Moved the shooter demo Timer() class to helpers.py.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
484
diff
changeset
|
185 double stereo = (isStereo() ? 2.0 : 1.0); |
7f1c42b66aa4
Moved the shooter demo Timer() class to helpers.py.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
484
diff
changeset
|
186 double time = ( size / (samplerate * bitres) ) / stereo; |
484
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
187 |
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
188 return static_cast<unsigned long>(time); |
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
189 } |
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
190 return 0; |
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
191 } |
e584b0b8b4a2
Added SoundEmitter::getDecodedLength and SoundEmitter::getDuration. The getDuration function will allow a timer to be registered to fire after the sound has been played. This is not a callback as requested but it does provide the functionality if required. I will be committing an example of it in the shooter demo shortly. [t:346]
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
378
diff
changeset
|
192 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
193 /** Sets the cursor position in the audio file |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
194 */ |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
195 void setCursor(SoundPositionType type, float value); |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
196 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
197 /** Returns the cursor position in the audio file |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
198 */ |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
199 float getCursor(SoundPositionType type); |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
200 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
201 /** Sets the position of the SoundEmitter in the virtual audio space. |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
202 */ |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
203 void setPosition(float x, float y, float z) { |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
204 alSource3f(m_source, AL_POSITION, x, y, z); |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
205 } |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
206 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
207 /** Sets the velocity of the SoundEmitter in the virtual audio space. |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
208 */ |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
209 void setVelocity(float x, float y, float z) { |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
210 alSource3f(m_source, AL_VELOCITY, x, y, z); |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
211 } |
173
454ed60ad7b2
* Added a setRoleoff() function to the SoundEmitter class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
46
diff
changeset
|
212 |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
213 private: |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
214 /** Implementation of the pure virtual function from TimeEvent to update streaming |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
215 */ |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
216 virtual void updateEvent(unsigned long time); |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
217 |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
218 /** Internal function to attach a soundclip to the source |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
219 */ |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
220 void attachSoundClip(); |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
221 |
360
11896fe26c1d
Added SoundEmitter::setCallback(). The callback will be
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
174
diff
changeset
|
222 SoundManager* m_manager; |
11896fe26c1d
Added SoundEmitter::setCallback(). The callback will be
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
174
diff
changeset
|
223 SoundClipPool* m_pool; |
11896fe26c1d
Added SoundEmitter::setCallback(). The callback will be
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
174
diff
changeset
|
224 ALuint m_source; // The openAL-source |
11896fe26c1d
Added SoundEmitter::setCallback(). The callback will be
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
174
diff
changeset
|
225 SoundClip* m_soundclip; // the attached soundclip |
11896fe26c1d
Added SoundEmitter::setCallback(). The callback will be
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
174
diff
changeset
|
226 unsigned int m_soundclipid;// id of the attached soundclip |
11896fe26c1d
Added SoundEmitter::setCallback(). The callback will be
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
174
diff
changeset
|
227 unsigned int m_streamid; // the id of the stream |
11896fe26c1d
Added SoundEmitter::setCallback(). The callback will be
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
174
diff
changeset
|
228 unsigned int m_emitterid; // the emitter-id |
11896fe26c1d
Added SoundEmitter::setCallback(). The callback will be
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
174
diff
changeset
|
229 bool m_loop; // loop? |
11896fe26c1d
Added SoundEmitter::setCallback(). The callback will be
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
174
diff
changeset
|
230 type_callback m_callback; |
0
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
231 }; |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
232 } |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
233 |
4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
234 #endif |