tag:blogger.com,1999:blog-59282793194579764102024-01-17T11:23:02.484+01:00OpenAL Audio Framework3D Sound, Reverb Effects, Audio Streaming (Music and Voices)Alexhttp://www.blogger.com/profile/12911562805026944414noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-5928279319457976410.post-43396476826595112112011-07-05T12:24:00.007+02:002022-03-15T21:03:23.044+01:00Soundeffekte und Hintergrundmusik<div class="separator" style="clear: both; text-align: center;">
<a href="http://abload.de/img/audioframework19oxcg.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="240" src="http://abload.de/img/audioframework19oxcg.jpg" width="320" /></a></div>
<b style="mso-bidi-font-weight: normal;">Initialisieren und Beenden des Audio Frameworks:</b><br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="font-family: "courier new"; font-size: 10pt;">Load_SoundSettings_And_Init_Audio(<span style="color: #a31515;"><br />
"AudioSettings.txt"</span>);<br />
<br />
[...]<br />
<br />
Shutdown_Audio();</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br />
<br />
<br />
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Soundeffekte statisch in den Speicher laden und wieder freigeben:</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="color: green; font-family: "courier new"; font-size: 10pt;">/*<br />
<b style="mso-bidi-font-weight: normal;">// Soundeffekte einzeln laden:<br />
</b>Set_MaxNumberOfSoundEffects(10);<br />
Add_New_SoundEffect(0, "../SoundAndMusic/DistantCollision1.wav",<br />
5, 60.0f, 1.0f, 1.0f, 0);<br />
Add_New_SoundEffect(1, "../SoundAndMusic/DistantCollision2.wav",<br />
5, 60.0f, 1.0f, 1.0f, 0);<br />
[...]<br />
*/<br />
<br />
<b style="mso-bidi-font-weight: normal;">// alle Soundeffekte laden, die in der Datei </b></span><span lang="EN-GB" style="color: #a31515; font-family: "courier new"; font-size: 10pt;">SoundEffects.txt</span><b style="mso-bidi-font-weight: normal;"><span lang="EN-GB" style="color: green; font-family: "courier new"; font-size: 10pt;"> aufgelistet<br />
// sind:</span></b><span lang="EN-GB" style="color: green; font-family: "courier new"; font-size: 10pt;"><br />
</span><span lang="EN-GB" style="font-family: "courier new"; font-size: 10pt;">Load_SoundEffectList(<span style="color: #a31515;">"../SoundAndMusic/SoundEffects.txt"</span>,<br />
<span style="color: #a31515;">"../SoundAndMusic/"</span>);</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="font-family: "courier new"; font-size: 10pt;"><br />
[...]<br />
<br />
Delete_SoundEffectList();</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Musik-Trackliste laden und freigeben:</b></div>
<div class="MsoNormal">
<br />
<a name='more'></a><br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="font-family: "courier new"; font-size: 10pt;">MusicTracks = <span style="color: blue;">new</span> CMusicTracks;<br />
MusicTracks->Load_TrackList(<span style="color: #a31515;">"../SoundAndMusic/MusicTracks.txt"</span>,<br />
<span style="color: #a31515;">"../SoundAndMusic/"</span>);<br />
<br />
[...]<br />
<br />
SAFE_DELETE(MusicTracks)</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Musik abspielen (Audio Streaming), zufälligen Titel aus der Trackliste auswählen:</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "courier new"; font-size: 10pt;">MusicTracks->Start_RandomMusicTrack();<br />
<br />
</span><span lang="EN-GB" style="font-family: "courier new"; font-size: 10pt;">[...]<br />
<br />
</span><span style="color: green; font-family: "courier new"; font-size: 10pt;">// neuen Titel auswählen und abspielen, wenn der vorangehende Titel beendet<br />
// ist:</span><span style="font-family: "courier new"; font-size: 10pt;"><br />
MusicTracks->Update();</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Soundeffekt positionieren und mit aktuell gewähltem Reverb-Effekt abspielen:</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="color: green; font-family: "courier new"; font-size: 10pt;">// Kollision:</span><span lang="EN-GB" style="font-family: "courier new"; font-size: 10pt;"><br />
absDistance = fabs(Asteroid[Asteroid_ID2].PlayerViewDirectionDistance);<br />
<br />
<span style="color: blue;">if</span>(absDistance < g_Max3DSoundDistance)<br />
{<br />
<span style="color: blue;">if</span>(absDistance < g_MaxImmediate3DSoundDistance)<br />
{<br />
SoundEffectID = lrnd(0, 2);<br />
SourceID = Play_SoundEffect_Immediately(&g_matView, SoundEffectID,<br />
&Asteroid[Asteroid_ID2].CameraSpacePosition,<br />
&g_NullVector, <span style="color: blue;">true </span><span style="color: green;">/*Reverb*/</span>);<br />
}<br />
<span style="color: blue;">else<br />
</span>{<br />
SoundEffectID = lrnd(0, 2);<br />
SourceID = Play_SoundEffect(&g_matView, SoundEffectID,<br />
&Asteroid[Asteroid_ID2].CameraSpacePosition,<br />
&g_NullVector, <span style="color: blue;">true </span><span style="color: green;">/*Reverb*/</span>);<br />
}<br />
}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-size: large;"><b><a href="https://drive.google.com/uc?export=download&id=1lanGAy5ebIuyXheQ8X_v3g7RPB19rhUh" target="">AudioFrameWorkDemo1_WithOpenGL.zip</a></b></span><br />
<br /></div>
Alexhttp://www.blogger.com/profile/12911562805026944414noreply@blogger.comtag:blogger.com,1999:blog-5928279319457976410.post-53361079889311092272011-07-05T12:20:00.009+02:002022-03-15T21:03:41.903+01:00Sprachausgabe<a href="http://abload.de/img/audioframework2i7z6b.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="240" src="http://abload.de/img/audioframework2i7z6b.jpg" width="320" /></a><b>Initialisieren und Beenden des Audio Frameworks:</b><br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="font-family: "courier new"; font-size: 10pt;">Load_SoundSettings_And_Init_Audio(<br />
<span style="color: #a31515;">"AudioSettings.txt"</span>);<br />
<br />
[...]<br />
<br />
Shutdown_Audio();</span></div>
<div class="MsoNormal">
<br />
<br />
<br />
<br />
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Liste mit den zu verwendenden Sprach-Samples laden und freigeben:</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="color: green; font-family: "courier new"; font-size: 10pt;">// Sprach-Samples laden:<br />
</span><span lang="EN-GB" style="font-family: "courier new"; font-size: 10pt;">VoiceSamples = <span style="color: blue;">new</span> CVoiceSamples;<br />
VoiceSamples->Load_SampleList(<span style="color: #a31515;">"../SoundAndMusic/VoiceSamples.txt"</span>,<br />
<span style="color: #a31515;">"../SoundAndMusic/"</span>);<br />
<br />
<span style="color: green;">//VoiceSamples->Add_VoiceSample("../SoundAndMusic/ComeOn.ogg");<br />
//VoiceSamples->Add_VoiceSample("../SoundAndMusic/FollowMe.ogg");<br />
//VoiceSamples->Add_VoiceSample("../SoundAndMusic/WhereAreYou.ogg");<br />
</span><br />
[...]<br />
<br />
SAFE_DELETE(VoiceSamples)</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Umgebungseffekte berücksichtigen und Hörweite festlegen:</b></div>
<div class="MsoNormal">
<br />
<a name='more'></a><br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="font-family: "courier new"; font-size: 10pt;">Set_ReverbEffect(84, 0, 0);<br />
Set_ReverbEffect(90, 1, 1);<br />
<br />
Set_VoiceStream_ReverbEffectSlotID(0, 1 <span style="color: green;">/*StreamID*/</span>);<br />
Set_VoiceStream_ReverbEffectSlotID(1, 0 <span style="color: green;">/*StreamID*/</span>);<br />
<br />
Enable_VoiceStream_ReverbEffect(0);<br />
Enable_VoiceStream_ReverbEffect(1);<br />
<br />
<span style="color: green;">// Hörweite festlegen:<br />
</span>Set_VoiceStream_MaxSoundDistance(7.0f, 0);<br />
Set_VoiceStream_MaxSoundDistance(20.0f, 1);</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-GB">Positionen der Sprecher aktualisieren:</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="font-family: "courier new"; font-size: 10pt;">Update_VoiceStream_Position(&g_matView,<br />
&SkeletalAnimatedTestModel_CameraSpacePos[0],<br />
0 <span style="color: green;">/*StreamID*/</span>);<br />
Update_VoiceStream_Position(&g_matView,<br />
&SkeletalAnimatedTestModel_CameraSpacePos[1],<br />
1 <span style="color: green;">/*StreamID*/</span>);</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Sprechrichtung eines der Sprecher festlegen, zufälliges Sprach-Sample auswählen und abspielen (Audio Streaming):</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "courier new"; font-size: 10pt;">Set_VoiceStream_SoundDirection(&SourceDirection,<br />
20.0f, <span style="color: green;">/*innerer Klangtrichter*/<br />
</span>180.0f,<span style="color: green;"> /*äußerer Klangtrichter*/<br />
</span>0.2f, <span style="color: green;">/*Lautstärke außerhalb des äußeren Klangtrichters*/</span><br />
1 <span style="color: green;">/*StreamID*/</span>);<br />
<br />
<span style="color: blue;">if</span>(lrnd(0, 1000) == 1)<br />
{<br />
<span style="color: green;">// neues Sprach-Sample ausgeben:<br />
</span> VoiceSamples->Start_Sample(lrnd(2, 3), 1);<br />
}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-size: large;"><b><a href="https://drive.google.com/uc?export=download&id=11W4Ma2K6uvLLEvOabGGAmQMcP5yXhukd" target="">AudioFrameWorkDemo2_WithOpenGL.zip</a></b></span><br />
<br /></div>
Alexhttp://www.blogger.com/profile/12911562805026944414noreply@blogger.comtag:blogger.com,1999:blog-5928279319457976410.post-62284827676715158462011-07-05T12:07:00.004+02:002011-07-05T12:08:57.507+02:00OpenAL Audio Framework Import-Header-DateiUm das Audio Framework nutzen zu können, müssen Sie lediglich die Headerdatei <i style="mso-bidi-font-style: normal;">OpenAL_Audio_Framework_Imports.h</i> sowie die <i style="mso-bidi-font-style: normal;">OpenAl_Audio_Framework.lib</i>-Datei in Ihr Projekt mit einbinden und darüber hinaus alle dll-Dateien aus dem <i style="mso-bidi-font-style: normal;">AudioFrameworkImports</i>-Vereichnis in das <i style="mso-bidi-font-style: normal;">Bin</i>-Verzeichnis (bzw. in das Verzeichnis mit den ausführbaren Dateien) Ihrer Anwendung kopieren.<br />
<div class="MsoNormal"><br />
<a name='more'></a><br />
</div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="color: green; font-family: "Courier New"; font-size: 10pt;">//-------------------------------------------------------------------------<br />
// OpenAL_Audio_Framework_Imports.h --- Schnittstelle zwischen der<br />
// Audio-Framework-Bibliothek und der Anwendung<br />
// Copyright (c) 2011 by Alexander Rudolph spieleprogrammierung.net<br />
//<br />
// [...]<br />
//-------------------------------------------------------------------------<br />
<br />
<br />
</span><span lang="EN-GB" style="color: blue; font-family: "Courier New"; font-size: 10pt;">#ifndef</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;"> _OPENAL_AUDIO_FRAMEWORK_IMPORTS_H_<br />
<span style="color: blue;">#define</span> _OPENAL_AUDIO_FRAMEWORK_IMPORTS_H_<br />
<br />
<span style="color: blue;">#include</span> <span style="color: #a31515;">"AudioFrameworkImports/DirectXBasedMath.h"<br />
<br />
</span><span style="color: blue;">#pragma</span> <span style="color: blue;">warning</span>(<span style="color: blue;">disable</span>:4251)<br />
<br />
<span style="color: blue;">#ifdef</span> _MSC_VER<br />
<span style="color: blue;">#define</span> AUDIO3D_API <span style="color: blue;">__declspec</span>(<span style="color: blue;">dllimport</span>)<br />
<span style="color: blue;">#else<br />
#define</span> AUDIO3D_API<br />
<span style="color: blue;">#endif<br />
<br />
#define</span> Num_Reverb_Effects 113<br />
<br />
AUDIO3D_API <span style="color: blue;">float</span> g_EffectVolume;<br />
AUDIO3D_API <span style="color: blue;">float</span> g_MusicVolume;<br />
AUDIO3D_API <span style="color: blue;">float</span> g_VoiceVolume;<br />
<br />
AUDIO3D_API <span style="color: blue;">float</span> g_Max3DSoundDistanceSq;<br />
AUDIO3D_API <span style="color: blue;">float</span> g_Max3DSoundDistance;<br />
AUDIO3D_API <span style="color: blue;">float</span> g_MaxImmediate3DSoundDistanceSq;<br />
AUDIO3D_API <span style="color: blue;">float</span> g_MaxImmediate3DSoundDistance;<br />
<br />
AUDIO3D_API <span style="color: blue;">long</span> g_IDofInitialUsedReverbEffect;<br />
AUDIO3D_API <span style="color: blue;">long</span> g_NumSoundEffectsUsed;<br />
AUDIO3D_API <span style="color: blue;">long</span> g_IDofInitialUsedReverbEffect;<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Load_SoundSettings_And_Init_Audio(<span style="color: blue;">char</span>* pFile);<br />
AUDIO3D_API <span style="color: blue;">void</span> Shutdown_Audio(<span style="color: blue;">void</span>);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Enable_ReverbEffects(<span style="color: blue;">void</span>);<br />
AUDIO3D_API <span style="color: blue;">void</span> Disable_ReverbEffects(<span style="color: blue;">void</span>);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Set_ReverbEffect(<span style="color: blue;">long</span> ReverbDescID, <span style="color: blue;">long</span> EffectID,<br />
<span style="color: blue;">long</span> EffectSlotID);<br />
<br />
<span style="color: green;">// Sound Effects:<br />
<br />
</span>AUDIO3D_API <span style="color: blue;">void</span> Set_MaxNumberOfSoundEffects(<span style="color: blue;">long</span> NumSoundEffectsMax);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Add_New_SoundEffect(<span style="color: blue;">long</span> soundEffectID,<br />
<span style="color: blue;">char</span>* pSoundEffectFile,<br />
<span style="color: blue;">long</span> numSourcesMax, <span style="color: blue;">float</span> maxDistance,<br />
<span style="color: blue;">float</span> gain, <span style="color: blue;">float</span> rolloff,<br />
BOOL playLoop);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Unload_SoundEffect(<span style="color: blue;">long</span> soundEffectID);<br />
AUDIO3D_API <span style="color: blue;">void</span> Load_SoundEffectList(<span style="color: blue;">char</span>* pFile, <span style="color: blue;">char</span>* pSoundDirectory);<br />
AUDIO3D_API <span style="color: blue;">void</span> Delete_SoundEffectList(<span style="color: blue;">void</span>);<br />
<br />
</span><span lang="EN-GB" style="color: green; font-family: "Courier New"; font-size: 10pt;">// pListenerOrientation := Camera Orientation<br />
// Return Values: Sound Source ID<br />
<br />
</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">AUDIO3D_API <span style="color: blue;">long</span> Play_SoundEffect(D3DXMATRIXA16* </span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">pListenerOrientation</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">,<br />
<span style="color: blue;">long</span> SoundEffectID,<br />
D3DXVECTOR3* pSourcePosition,<br />
D3DXVECTOR3* pSourceVelocity,<br />
<span style="color: blue;">bool</span> useReverbEffect=<span style="color: blue;">false</span>);<br />
<br />
AUDIO3D_API <span style="color: blue;">long</span> Play_SoundEffect_Immediately(<br />
D3DXMATRIXA16* </span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">pListenerOrientation</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">,<br />
<span style="color: blue;">long</span> SoundEffectID,<br />
D3DXVECTOR3* pSourcePosition,<br />
D3DXVECTOR3* pSourceVelocity,<br />
<span style="color: blue;">bool</span> useReverbEffect=<span style="color: blue;">false</span>);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Play_SoundEffect_Immediately(<br />
D3DXMATRIXA16* </span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">pListenerOrientation</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">,<br />
<span style="color: blue;">long</span> SoundEffectID,<br />
<span style="color: blue;">long</span> SourceID,<br />
D3DXVECTOR3* pSourcePosition,<br />
D3DXVECTOR3* pSourceVelocity,<br />
<span style="color: blue;">bool</span> useReverbEffect=<span style="color: blue;">false</span>);<br />
<br />
</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">AUDIO3D_API <span style="color: blue;">long</span> Play_SoundEffect(<span style="color: blue;">long</span> SoundEffectID,<br />
<span style="color: blue;">bool</span> useReverbEffect=<span style="color: blue;">false</span>);<br />
<br />
AUDIO3D_API <span style="color: blue;">long</span> Play_SoundEffect(<span style="color: blue;">long</span> SoundEffectID,<br />
D3DXVECTOR3* pSourcePosition,<br />
D3DXVECTOR3* pSourceVelocity,<br />
<span style="color: blue;">bool</span> useReverbEffect=<span style="color: blue;">false</span>);<br />
<br />
AUDIO3D_API <span style="color: blue;">long</span> Play_SoundEffect_Immediately(<span style="color: blue;">long</span> SoundEffectID,<br />
<span style="color: blue;">bool</span> useReverbEffect=<span style="color: blue;">false</span>);<br />
<br />
AUDIO3D_API <span style="color: blue;">long</span> Play_SoundEffect_Immediately(<span style="color: blue;">long</span> SoundEffectID,<br />
D3DXVECTOR3* pSourcePosition,<br />
D3DXVECTOR3* pSourceVelocity,<br />
<span style="color: blue;">bool</span> useReverbEffect=<span style="color: blue;">false</span>);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Play_SoundEffect_Immediately(<span style="color: blue;">long</span> SoundEffectID,<br />
<span style="color: blue;">long</span> SourceID,<br />
<span style="color: blue;">bool</span> useReverbEffect=<span style="color: blue;">false</span>);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Play_SoundEffect_Immediately(<span style="color: blue;">long</span> SoundEffectID,<br />
<span style="color: blue;">long</span> SourceID,<br />
D3DXVECTOR3* pSourcePosition,<br />
D3DXVECTOR3* pSourceVelocity,<br />
<span style="color: blue;">bool</span> useReverbEffect=<span style="color: blue;">false</span>);<br />
<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Stop_SoundEffect_Immediately(<span style="color: blue;">long</span> SoundEffectID,<br />
<span style="color: blue;">long</span> SourceID);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Set_SoundEffect_ReverbEffectSlotID(<span style="color: blue;">long</span> EffectSlotID,<br />
<span style="color: blue;">long</span> SoundEffectID,<br />
<span style="color: blue;">long</span> SourceID);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Set_SoundEffect_Pitch(<span style="color: blue;">float</span> Value, <span style="color: blue;">long</span> SoundEffectID,<br />
<span style="color: blue;">long</span> SourceID);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Reset_SoundEffect_Pitch(<span style="color: blue;">long</span> SoundEffectID,<br />
<span style="color: blue;">long</span> SourceID);<br />
<br />
<span style="color: green;">// Listener Space := Camera Space</span><br />
AUDIO3D_API <span style="color: blue;">void</span> Set_SoundEffect_SoundDirection(<br />
D3DXVECTOR3* </span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">pListenerSpaceDirection</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">,<br />
<span style="color: blue;">float</span> Cone_Inner_Angle,<br />
<span style="color: blue;">float</span> Cone_Outer_Angle,<br />
<span style="color: blue;">float</span> Cone_Outer_Gain,<br />
<span style="color: blue;">long</span> SoundEffectID,<br />
<span style="color: blue;">long</span> SourceID);<br />
<br />
</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">AUDIO3D_API <span style="color: blue;">void</span> Set_SoundEffect_SoundDirection(<br />
D3DXMATRIXA16* </span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">pListenerOrientation</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">,<br />
D3DXVECTOR3* pWorldSpaceDirection,<br />
<span style="color: blue;">float</span> Cone_Inner_Angle,<br />
<span style="color: blue;">float</span> Cone_Outer_Angle,<br />
<span style="color: blue;">float</span> Cone_Outer_Gain,<br />
<span style="color: blue;">long</span> SoundEffectID,<br />
<span style="color: blue;">long</span> SourceID);<br />
<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Reset_SoundEffect_SoundDirection(<span style="color: blue;">long</span> SoundEffectID,<br />
<span style="color: blue;">long</span> SourceID);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Set_SoundEffect_Volume(<span style="color: blue;">float</span> Value, <span style="color: blue;">long</span> SoundEffectID,<br />
<span style="color: blue;">long</span> SourceID);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Reset_SoundEffect_Volume(<span style="color: blue;">long</span> SoundEffectID,<br />
<span style="color: blue;">long</span> SourceID);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Update_SoundEffect_Position(<br />
D3DXMATRIXA16* </span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">pListenerOrientation</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">,<br />
<span style="color: blue;">long</span> SoundEffectID,<br />
<span style="color: blue;">long</span> SourceID,<br />
D3DXVECTOR3* pSourcePosition);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Update_SoundEffect_Velocity(<br />
D3DXMATRIXA16* </span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">pListenerOrientation</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">,<br />
<span style="color: blue;">long</span> SoundEffectID,<br />
<span style="color: blue;">long</span> SourceID,<br />
D3DXVECTOR3* pSourceVelocity);<br />
<br />
<br />
<span style="color: green;">// Setter functions for various 3D Sound Parameter used when calling<br />
// PlaySoundEffect(), PlaySoundEffect_Immediately(), Play3DSoundEffect() or<br />
// Play3DSoundEffect_Immediately():<br />
</span>AUDIO3D_API <span style="color: blue;">void</span> Set_SoundEffect_ReverbEffectSlotID(<span style="color: blue;">long</span> EffectSlotID);<br />
AUDIO3D_API <span style="color: blue;">void</span> Set_SoundEffect_Pitch(<span style="color: blue;">float</span> Value);<br />
AUDIO3D_API <span style="color: blue;">void</span> Reset_SoundEffect_Pitch(<span style="color: blue;">void</span>);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Set_SoundEffect_SoundDirection(<br />
D3DXVECTOR3* </span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">pListenerSpaceDirection</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">,<br />
<span style="color: blue;">float</span> Cone_Inner_Angle,<br />
<span style="color: blue;">float</span> Cone_Outer_Angle,<br />
<span style="color: blue;">float</span> Cone_Outer_Gain);<br />
<br />
</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">AUDIO3D_API <span style="color: blue;">void</span> Set_SoundEffect_SoundDirection(<br />
D3DXMATRIXA16* </span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">pListenerOrientation</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">,<br />
D3DXVECTOR3* pWorldSpaceDirection,<br />
<span style="color: blue;">float</span> Cone_Inner_Angle,<br />
<span style="color: blue;">float</span> Cone_Outer_Angle,<br />
<span style="color: blue;">float</span> Cone_Outer_Gain);<br />
<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Reset_SoundEffect_SoundDirection(<span style="color: blue;">void</span>);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Set_SoundEffect_Volume(<span style="color: blue;">float</span> Value);<br />
AUDIO3D_API <span style="color: blue;">void</span> Reset_SoundEffect_Volume(<span style="color: blue;">void</span>);<br />
<br />
<span style="color: green;">// Music, Voice Samples:<br />
</span>AUDIO3D_API <span style="color: blue;">void</span> Set_MusicStream_Volume(<span style="color: blue;">float</span> Value, <span style="color: blue;">long</span> StreamID);<br />
AUDIO3D_API <span style="color: blue;">void</span> Set_VoiceStream_Volume(<span style="color: blue;">float</span> Value, <span style="color: blue;">long</span> StreamID);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Reset_MusicStream_Volume(<span style="color: blue;">long</span> StreamID);<br />
AUDIO3D_API <span style="color: blue;">void</span> Reset_VoiceStream_Volume(<span style="color: blue;">long</span> StreamID);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Set_MusicStream_Pitch(<span style="color: blue;">float</span> Value, <span style="color: blue;">long</span> StreamID);<br />
AUDIO3D_API <span style="color: blue;">void</span> Set_VoiceStream_Pitch(<span style="color: blue;">float</span> Value, <span style="color: blue;">long</span> StreamID);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Reset_MusicStream_Pitch(<span style="color: blue;">long</span> StreamID);<br />
AUDIO3D_API <span style="color: blue;">void</span> Reset_VoiceStream_Pitch(<span style="color: blue;">long</span> StreamID);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Reset_MusicStream_SoundDirection(<span style="color: blue;">long</span> StreamID);<br />
AUDIO3D_API <span style="color: blue;">void</span> Reset_VoiceStream_SoundDirection(<span style="color: blue;">long</span> StreamID);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Set_MusicStream_SoundDirection(<br />
D3DXVECTOR3* </span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">pListenerSpaceDirection</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">,<br />
<span style="color: blue;">float</span> Cone_Inner_Angle,<br />
<span style="color: blue;">float</span> Cone_Outer_Angle,<br />
<span style="color: blue;">float</span> Cone_Outer_Gain,<br />
<span style="color: blue;">long</span> StreamID);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Set_VoiceStream_SoundDirection(<br />
D3DXVECTOR3* </span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">pListenerSpaceDirection</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">,<br />
<span style="color: blue;">float</span> Cone_Inner_Angle,<br />
<span style="color: blue;">float</span> Cone_Outer_Angle,<br />
<span style="color: blue;">float</span> Cone_Outer_Gain,<br />
<span style="color: blue;">long</span> StreamID);<br />
<br />
</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">AUDIO3D_API <span style="color: blue;">void</span> Set_MusicStream_SoundDirection(<br />
D3DXMATRIXA16* </span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">pListenerOrientation</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">,<br />
D3DXVECTOR3* pWorldSpaceDirection,<br />
<span style="color: blue;">float</span> Cone_Inner_Angle,<br />
<span style="color: blue;">float</span> Cone_Outer_Angle,<br />
<span style="color: blue;">float</span> Cone_Outer_Gain,<br />
<span style="color: blue;">long</span> StreamID);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Set_VoiceStream_SoundDirection(<br />
D3DXMATRIXA16* </span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">pListenerOrientation</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">,<br />
D3DXVECTOR3* pWorldSpaceDirection,<br />
<span style="color: blue;">float</span> Cone_Inner_Angle,<br />
<span style="color: blue;">float</span> Cone_Outer_Angle,<br />
<span style="color: blue;">float</span> Cone_Outer_Gain,<br />
<span style="color: blue;">long</span> StreamID);<br />
<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Update_MusicStream_Position(<br />
D3DXMATRIXA16* </span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">pListenerOrientation</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">,<br />
D3DXVECTOR3* pSourcePosition, <span style="color: blue;">long</span> StreamID);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Update_MusicStream_Velocity(<br />
D3DXMATRIXA16* </span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">pListenerOrientation</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">,<br />
D3DXVECTOR3* pSourceVelocity, <span style="color: blue;">long</span> StreamID);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Update_VoiceStream_Position(<br />
D3DXMATRIXA16* </span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">pListenerOrientation</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">,<br />
D3DXVECTOR3* pSourcePosition, <span style="color: blue;">long</span> StreamID);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Update_VoiceStream_Velocity(<br />
D3DXMATRIXA16* </span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">pListenerOrientation</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">,<br />
D3DXVECTOR3* pSourceVelocity, <span style="color: blue;">long</span> StreamID);<br />
<br />
<br />
</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">AUDIO3D_API <span style="color: blue;">void</span> Update_MusicStream_Position(D3DXVECTOR3* pSourcePosition,<br />
<span style="color: blue;">long</span> StreamID);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Update_MusicStream_Velocity(D3DXVECTOR3* pSourceVelocity,<br />
<span style="color: blue;">long</span> StreamID);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Update_VoiceStream_Position(D3DXVECTOR3* pSourcePosition,<br />
<span style="color: blue;">long</span> StreamID);<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Update_VoiceStream_Velocity(D3DXVECTOR3* pSourceVelocity,<br />
<span style="color: blue;">long</span> StreamID);<br />
<br />
<br />
AUDIO3D_API <span style="color: blue;">void</span> Reset_MusicStream_Position(<span style="color: blue;">long</span> StreamID);</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;"></span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">AUDIO3D_API <span style="color: blue;">void</span> Reset_MusicStream_Velocity(<span style="color: blue;">long</span> StreamID);</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><br />
</div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">AUDIO3D_API <span style="color: blue;">void</span> Reset_VoiceStream_Position(<span style="color: blue;">long</span> StreamID);</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">AUDIO3D_API <span style="color: blue;">void</span> Reset_VoiceStream_Velocity(<span style="color: blue;">long</span> StreamID);</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><br />
</div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">AUDIO3D_API <span style="color: blue;">void</span> Set_MusicStream_MaxSoundDistance(<span style="color: blue;">float</span> Value, <span style="color: blue;">long</span> StreamID);</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">AUDIO3D_API <span style="color: blue;">void</span> Set_VoiceStream_MaxSoundDistance(<span style="color: blue;">float</span> Value, <span style="color: blue;">long</span> StreamID);</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><br />
</div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">AUDIO3D_API <span style="color: blue;">void</span> Enable_MusicStream_ReverbEffect(<span style="color: blue;">long</span> StreamID);</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">AUDIO3D_API <span style="color: blue;">void</span> Enable_VoiceStream_ReverbEffect(<span style="color: blue;">long</span> StreamID);</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><br />
</div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">AUDIO3D_API <span style="color: blue;">void</span> Disable_MusicStream_ReverbEffect(<span style="color: blue;">long</span> StreamID);</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">AUDIO3D_API <span style="color: blue;">void</span> Disable_VoiceStream_ReverbEffect(<span style="color: blue;">long</span> StreamID);</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><br />
</div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">AUDIO3D_API <span style="color: blue;">void</span> Set_MusicStream_ReverbEffectSlotID(<span style="color: blue;">long</span> EffectSlotID, <span style="color: blue;">long</span> StreamID);</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">AUDIO3D_API <span style="color: blue;">void</span> Set_VoiceStream_ReverbEffectSlotID(<span style="color: blue;">long</span> EffectSlotID, <span style="color: blue;">long</span> StreamID);</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;"><br />
<br />
<span style="color: blue;">struct</span> AUDIO3D_API CStreamDesc<br />
{<br />
<span style="color: blue;">char</span> Name[200];<br />
};<br />
<br />
<span style="color: blue;">class</span> AUDIO3D_API CMusicTracks<br />
{<br />
<span style="color: blue;">public</span>:<br />
<br />
<span style="color: blue;">long</span> NumMusicTracks;<br />
<span style="color: blue;">long</span> actualMusicTrackNr[4];<br />
CStreamDesc* Stream;<br />
<br />
<span style="color: blue;">long</span> PlaybackThreadProcessorID;<br />
<br />
HANDLE PlaybackThreadHandle[4];<br />
<span style="color: blue;">unsigned</span> <span style="color: blue;">int</span> PlaybackThreadID[4];<br />
<span style="color: blue;">bool</span> PlaybackThreadRunning[4];<br />
<span style="color: blue;">bool</span> PlaybackThreadStarted[4];<br />
<br />
CMusicTracks();<br />
~CMusicTracks();<br />
<br />
<span style="color: blue;">void</span> Add_MusicTrack(<span style="color: blue;">char</span>* pFileName);<br />
<span style="color: blue;">void</span> Delete_MusicTracks(<span style="color: blue;">void</span>);<br />
<span style="color: blue;">void</span> Load_TrackList(<span style="color: blue;">char</span>* pMusicTrackList, <span style="color: blue;">char</span>* pDirectory);<br />
<span style="color: blue;">void</span> Set_PlaybackThreadProcessorID(<span style="color: blue;">long</span> ProcessorID = -1);<br />
<span style="color: blue;">void</span> Start_RandomMusicTrack(<span style="color: blue;">long</span> StreamID = 0);<br />
<span style="color: blue;">void</span> Start_FirstMusicTrack(<span style="color: blue;">long</span> StreamID = 0);<br />
<span style="color: blue;">void</span> Start_MusicTrack(<span style="color: blue;">long</span> TrackID, <span style="color: blue;">long</span> StreamID = 0);<br />
<span style="color: blue;">void</span> Update(<span style="color: blue;">long</span> StreamID = 0, <span style="color: blue;">bool</span> RandomTrackSelection = <span style="color: blue;">false</span>);<br />
<span style="color: blue;">void</span> Stop_Playback(<span style="color: blue;">long</span> StreamID = 0);<br />
};<br />
<br />
<span style="color: blue;">class</span> AUDIO3D_API CVoiceSamples<br />
{<br />
<span style="color: blue;">public</span>:<br />
<br />
<span style="color: blue;">long</span> NumVoiceSamples;<br />
<span style="color: blue;">long</span> actualVoiceSampleNr[4];<br />
CStreamDesc* Stream;<br />
<br />
<span style="color: blue;">long</span> PlaybackThreadProcessorID;<br />
<br />
HANDLE PlaybackThreadHandle[4];<br />
<span style="color: blue;">unsigned</span> <span style="color: blue;">int</span> PlaybackThreadID[4];<br />
<span style="color: blue;">bool</span> PlaybackThreadRunning[4];<br />
<span style="color: blue;">bool</span> PlaybackThreadStarted[4];<br />
<br />
CVoiceSamples();<br />
~CVoiceSamples();<br />
<br />
<span style="color: blue;">void</span> Add_VoiceSample(<span style="color: blue;">char</span>* pFileName);<br />
<span style="color: blue;">void</span> Delete_VoiceSamples(<span style="color: blue;">void</span>);<br />
<span style="color: blue;">void</span> Load_SampleList(<span style="color: blue;">char</span>* pVoiceSampleList, <span style="color: blue;">char</span>* pDirectory);<br />
<span style="color: blue;">void</span> Set_PlaybackThreadProcessorID(<span style="color: blue;">long</span> ProcessorID = -1);<br />
<span style="color: blue;">bool</span> Start_Sample(<span style="color: blue;">long</span> SampleID, <span style="color: blue;">long</span> StreamID = 0);<br />
<span style="color: blue;">void</span> Start_SampleImmediately(<span style="color: blue;">long</span> SampleID, <span style="color: blue;">long</span> StreamID = 0);<br />
<span style="color: blue;">void</span> Stop_Playback(<span style="color: blue;">long</span> StreamID);<br />
};<br />
<br />
<br />
<span style="color: blue;">enum</span> ReverbEffectDesc</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;"></span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">{</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_GENERIC,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_PADDEDCELL,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_ROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_BATHROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_LIVINGROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_STONEROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_AUDITORIUM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CONCERTHALL,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CAVE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_ARENA,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_HANGAR,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CARPETTEDHALLWAY,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_HALLWAY,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_STONECORRIDOR,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_ALLEY,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_FOREST,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CITY,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_MOUNTAINS,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_QUARRY,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_PLAIN,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_PARKINGLOT,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_SEWERPIPE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_UNDERWATER,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_DRUGGED,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_DIZZY,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_PSYCHOTIC,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CASTLE_SMALLROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CASTLE_SHORTPASSAGE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CASTLE_MEDIUMROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CASTLE_LONGPASSAGE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CASTLE_LARGEROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CASTLE_HALL,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CASTLE_CUPBOARD,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CASTLE_COURTYARD,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CASTLE_ALCOVE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_FACTORY_ALCOVE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_FACTORY_SHORTPASSAGE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_FACTORY_MEDIUMROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_FACTORY_LONGPASSAGE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_FACTORY_LARGEROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_FACTORY_HALL,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_FACTORY_CUPBOARD,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_FACTORY_COURTYARD,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_FACTORY_SMALLROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_ICEPALACE_ALCOVE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_ICEPALACE_SHORTPASSAGE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_ICEPALACE_MEDIUMROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_ICEPALACE_LONGPASSAGE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_ICEPALACE_LARGEROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_ICEPALACE_HALL,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_ICEPALACE_CUPBOARD,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_ICEPALACE_COURTYARD,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_ICEPALACE_SMALLROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_SPACESTATION_ALCOVE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_SPACESTATION_MEDIUMROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_SPACESTATION_SHORTPASSAGE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_SPACESTATION_LONGPASSAGE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_SPACESTATION_LARGEROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_SPACESTATION_HALL,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_SPACESTATION_CUPBOARD,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_SPACESTATION_SMALLROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_WOODEN_ALCOVE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_WOODEN_SHORTPASSAGE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_WOODEN_MEDIUMROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_WOODEN_LONGPASSAGE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_WOODEN_LARGEROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_WOODEN_HALL,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_WOODEN_CUPBOARD,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_WOODEN_SMALLROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_WOODEN_COURTYARD,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_SPORT_EMPTYSTADIUM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_SPORT_SQUASHCOURT,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_SPORT_SMALLSWIMMINGPOOL,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_SPORT_LARGESWIMMINGPOOL,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_SPORT_GYMNASIUM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_SPORT_FULLSTADIUM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_SPORT_STADIUMTANNOY,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_PREFAB_WORKSHOP,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_PREFAB_SCHOOLROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_PREFAB_PRACTISEROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_PREFAB_OUTHOUSE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_PREFAB_CARAVAN,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_DOME_TOMB,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_PIPE_SMALL,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_DOME_SAINTPAULS,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_PIPE_LONGTHIN,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_PIPE_LARGE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_PIPE_RESONANT,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_OUTDOORS_BACKYARD,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_OUTDOORS_ROLLINGPLAINS,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_OUTDOORS_DEEPCANYON,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_OUTDOORS_CREEK,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_OUTDOORS_VALLEY,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_MOOD_HEAVEN,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_MOOD_HELL,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_MOOD_MEMORY,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_DRIVING_COMMENTATOR,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_DRIVING_PITGARAGE,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_DRIVING_INCAR_RACER,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_DRIVING_INCAR_SPORTS,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_DRIVING_INCAR_LUXURY,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_DRIVING_FULLGRANDSTAND,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_DRIVING_EMPTYGRANDSTAND,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_DRIVING_TUNNEL,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CITY_STREETS,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CITY_SUBWAY,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CITY_MUSEUM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CITY_LIBRARY,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CITY_UNDERPASS,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CITY_ABANDONED,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_DUSTYROOM,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_CHAPEL,</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">REVERB_EFFECT_SMALLWATERROOM</span></div><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"><span style="font-family: "Courier New"; font-size: 10pt;">};<br />
<br />
<span style="color: blue;">#endif</span></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><br />
</div>Alexhttp://www.blogger.com/profile/12911562805026944414noreply@blogger.comtag:blogger.com,1999:blog-5928279319457976410.post-12616793636700156472011-01-03T14:11:00.004+01:002012-06-27T12:42:53.411+02:00OpenAL Audio Framework – Dokumentation<b style="mso-bidi-font-weight: normal;">Lizenz</b><br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Das hier vorliegende OpenAl Audio Framework steht unter der GNU LESSER GENERAL PUBLIC LICENSE (Version 3).</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<a href="http://www.gnu.org/copyleft/lesser.html" target="_blank">http://www.gnu.org/copyleft/lesser.html</a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Initialisierung</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Alle globalen Audio-Einstellungen sind in der Datei <i style="mso-bidi-font-style: normal;">AudioSettings.txt</i> abgespeichert, die im Zuge der Initialisierung des Audio Frameworks ausgelesen wird.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i style="mso-bidi-font-style: normal;">AudioSettings.txt</i>:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: green; font-family: "Courier New"; font-size: 10pt;">#IDOfDevice(default=-1):#</span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;"> 0<br />
<br />
</span><b style="mso-bidi-font-weight: normal;"><span style="color: green; font-family: "Courier New"; font-size: 10pt;">#Auf Windows Visa und Windows 7 Systemen sollte für </span></b><b style="mso-bidi-font-weight: normal;"><span style="color: #a31515; font-family: "Courier New"; font-size: 10pt;">IDOFDevice</span></b><b style="mso-bidi-font-weight: normal;"><span style="color: #993300; font-family: "Courier New"; font-size: 10pt;"> </span></b><b style="mso-bidi-font-weight: normal;"><span style="color: green; font-family: "Courier New"; font-size: 10pt;">der Wert<br />
0 verwendet werden. Sofern sich im Bin Verzeichnis der Anwendung (bzw. im<br />
Verzeichnis mit den ausführbaren Dateien) die Datei </span></b><b style="mso-bidi-font-weight: normal;"><span style="color: #a31515; font-family: "Courier New"; font-size: 10pt;">soft_oal.dll</span></b><b style="mso-bidi-font-weight: normal;"><span style="color: green; font-family: "Courier New"; font-size: 10pt;"> befindet,<br />
(siehe http://kcat.strangesoft.net/openal.html) werden alle Audioeffekte<br />
(ähnlich wie bei XAudio2) komplett in Software berechnet,<br />
wodurch der Wegfall des Generic Hardware Device (XP) vollständig<br />
kompensiert wird#<br />
</span></b><span style="color: blue; font-family: "Courier New"; font-size: 10pt;"><br />
</span><span style="color: green; font-family: "Courier New"; font-size: 10pt;">#Max3DSoundDistanceSq:#</span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;"> 10000.0<br />
</span><span style="color: green; font-family: "Courier New"; font-size: 10pt;">#MaxImmediate3DSoundDistanceSq:#</span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;"> 10000.0<br />
<br />
</span><b style="mso-bidi-font-weight: normal;"><span style="color: green; font-family: "Courier New"; font-size: 10pt;">#Die </span></b><b style="mso-bidi-font-weight: normal;"><span style="color: #993300; font-family: "Courier New"; font-size: 10pt;">DistanceSq</span></b><b style="mso-bidi-font-weight: normal;"><span style="color: green; font-family: "Courier New"; font-size: 10pt;">-Parameter haben keinen direkten Einfluss auf die<br />
Soundeffekte. Jedoch lässt sich mit ihrer Hilfe entscheiden, ob und wie<br />
ein Soundeffekt abgespielt werden soll. Ist die Soundquelle bsp. zu weit<br />
von der Kamera (bzw. dem Zuhörer/Listener) entfernt, kann auf ein Abspielen<br />
verzichtet werden.<br />
<br />
Soll ein Soundeffekt im Modus "Immediate" abgespielt werden,<br />
dann wird ein anderer aktiver Soundeffekt unterbrochen, falls momentan<br />
keine freie Soundquelle zur Verfügung steht!!#<br />
<br />
<br />
#Lautstärkeregelung – anfängliche Einstellungen:#</span></b><span style="color: blue; font-family: "Courier New"; font-size: 10pt;"><br />
</span><span style="color: green; font-family: "Courier New"; font-size: 10pt;">#EffectVolume:#</span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;"> 2.0<br />
</span><span style="color: green; font-family: "Courier New"; font-size: 10pt;">#MusicVolume:#</span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;"> 0.25<br />
</span><span style="color: green; font-family: "Courier New"; font-size: 10pt;">#VoiceVolume:#</span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;"> 1.0<br />
<br />
</span><span style="color: green; font-family: "Courier New"; font-size: 10pt;">#DistanceModel:#</span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;"> 2<br />
<br />
</span><b style="mso-bidi-font-weight: normal;"><span style="color: green; font-family: "Courier New"; font-size: 10pt;">#</span></b></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="color: green; font-family: "Courier New"; font-size: 10pt;">Distance-Modelle beschreiben die Abnahme der Schallintensität mit<br />
zunehmender Entfernung vom Listener:<br />
<br />
AL_INVERSE_DISTANCE=0<br />
AL_INVERSE_DISTANCE_CLAMPED=1<br />
AL_LINEAR_DISTANCE=2<br />
AL_LINEAR_DISTANCE_CLAMPED=3<br />
AL_EXPONENT_DISTANCE=4<br />
AL_EXPONENT_DISTANCE_CLAMPED=5<br />
#</span></b><span style="color: blue; font-family: "Courier New"; font-size: 10pt;"><br />
<br />
</span><b style="mso-bidi-font-weight: normal;"><span style="color: green; font-family: "Courier New"; font-size: 10pt;">#Einfluss der relativen Geschwindigkeit zwischen Soundquelle und<br />
Listener auf das Klangbild eines Soundeffekts (Doppler Effekt):#</span></b><span style="color: blue; font-family: "Courier New"; font-size: 10pt;"><br />
</span><span style="color: green; font-family: "Courier New"; font-size: 10pt;">#DopplerFactor:#</span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;"> 1.0<br />
<br />
</span><span style="color: green; font-family: "Courier New"; font-size: 10pt;">#EnableEFXReverbEffects: (no=0,yes=1):#</span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;"> 1<br />
<br />
</span><b style="mso-bidi-font-weight: normal;"><span style="color: green; font-family: "Courier New"; font-size: 10pt;">#EFX ist vergleichbar mit EAX (Environmental Audio Extensions) und<br />
berücksichtigt die Umgebungseinflüsse auf das Klangbild eines Soundeffekts.<br />
Es ist jedoch besser an die OpenAL-API angepasst und lässt sich<br />
zudem plattformunabhängig einsetzen!#</span></b><b style="mso-bidi-font-weight: normal;"><span style="color: blue; font-family: "Courier New"; font-size: 10pt;"><br />
</span></b><span style="color: blue; font-family: "Courier New"; font-size: 10pt;"><br />
</span><span lang="EN-GB" style="color: green; font-family: "Courier New"; font-size: 10pt;">#IDOfInitialUsedEAXFilter:#</span><span lang="EN-GB" style="color: blue; font-family: "Courier New"; font-size: 10pt;"> 90<br />
<br />
</span><b style="mso-bidi-font-weight: normal;"><span lang="EN-GB" style="color: green; font-family: "Courier New"; font-size: 10pt;">#</span></b></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-GB" style="color: green; font-family: "Courier New"; font-size: 10pt;">Filter:<br />
REVERB_PRESET_GENERIC 0<br />
REVERB_PRESET_PADDEDCELL 1<br />
REVERB_PRESET_ROOM 2<br />
<br />
[...]<br />
#</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-GB">3D-Soundeffekte</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Die für die Ausgabe von 3D-Soundeffekten benötigten Daten müssen im <b style="mso-bidi-font-weight: normal;">wav</b>-Format vorliegen und werden permanent im Speicher gehalten (statische Sounds). Zwar lassen sich <b style="mso-bidi-font-weight: normal;">wav</b>-Dateien auch einzeln laden, jedoch ist dieses Vorgehen für den praktischen Einsatz nur bedingt zu empfehlen. Vielmehr sollten Sie eine Liste mit allen benötigten Soundeffekten erstellen (siehe <i style="mso-bidi-font-style: normal;">SoundEffects.txt</i>) und diese in einem Zug einlesen.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Hinweis:</b></div>
<div class="MsoNormal">
3D-Soundeffekte werden in einem separaten Thread geladen, damit andere Programmfunktionen wegen der relativ langsamen Festplattenzugriffe nicht ausgebremst werden.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i style="mso-bidi-font-style: normal;"><span lang="EN-GB">SoundEffects.txt</span></i><span lang="EN-GB">:</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB" style="color: blue; font-family: "Courier New"; font-size: 10pt;">NumSoundEffects: 2<br />
<br />
0, DistantCollision1.wav<br />
NumSources: 5<br />
MaxDistance: 60.0<br />
Gain: 1.0<br />
RollOff: 1.0<br />
PlayLoop(no=0,yes=1): 0<br />
<br />
1, DistantCollision2.wav<br />
NumSources: 5<br />
MaxDistance: 60.0<br />
Gain: 1.0<br />
RollOff: 1.0<br />
PlayLoop(no=0,yes=1): 0</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Erläuterungen:</b></div>
<div class="MsoNormal">
<br /></div>
<ul style="margin-top: 0cm;" type="disc">
<li class="MsoNormal" style="mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;"><b style="mso-bidi-font-weight: normal;">NumSources</b>: Anzahl der Soundquellen, die den betreffenden Sound parallel abspielen können</li>
<li class="MsoNormal" style="mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;"><b style="mso-bidi-font-weight: normal;">MaxDistance</b>: maximale Distanz, innerhalb derer der Sound noch hörbar ist</li>
<li class="MsoNormal" style="mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;"><b style="mso-bidi-font-weight: normal;">Gain</b>: Intensität des Soundeffekts (Lautstärke)</li>
<li class="MsoNormal" style="mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;"><b style="mso-bidi-font-weight: normal;">RollOff</b>: Intensitätsabnahme des Soundeffekts mit zunehmender Entfernung entsprechend des verwendeten Distanzmodells</li>
<li class="MsoNormal" style="mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;"><b style="mso-bidi-font-weight: normal;">PlayLoop</b>: Legt fest, ob ein Soundeffekt in einer Endlosschleife abgespielt werden soll</li>
</ul>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Musikstücke</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Musikstücke (wahlweise im <b style="mso-bidi-font-weight: normal;">ogg</b>- bzw. <b style="mso-bidi-font-weight: normal;">wav</b>-Format) werden schrittweise in einem separaten Thread eingelesen und abgespielt (Streaming). Die Dateinamen der abzuspielenden Musikstücke lassen sich einzeln oder in Form einer Track-List einlesen:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i style="mso-bidi-font-style: normal;"><span lang="EN-GB">MusicTracks.txt</span></i><span lang="EN-GB">:</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB" style="color: blue; font-family: "Courier New"; font-size: 10pt;">NumMusicTracks: 2<br />
<br />
0, Sample1.ogg<br />
1, Sample2.wav</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Hinweis:</b></div>
<div class="MsoNormal">
Aktuell lassen sich bis zu 4 Musikstücke parallel abspielen.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-GB">Voice Samples (Sprachausgabe)</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Voice Samples (wahlweise im <b style="mso-bidi-font-weight: normal;">ogg</b>- bzw. <b style="mso-bidi-font-weight: normal;">wav</b>-Format) werden schrittweise in einem separaten Thread eingelesen und abgespielt (Streaming). Die Dateinamen der abzuspielenden Samples lassen sich einzeln oder in Form einer Sample-List einlesen:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i style="mso-bidi-font-style: normal;"><span lang="EN-GB">VoiceSamples.txt</span></i><span lang="EN-GB">:</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB" style="color: blue; font-family: "Courier New"; font-size: 10pt;">NumVoiceSamples: 2<br />
<br />
0, Sample1.ogg<br />
1, Sample2.wav</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Hinweis:</b></div>
<div class="MsoNormal">
Aktuell lassen sich bis zu 4 Voice Samples parallel abspielen.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Praktischer Einsatz des Frameworks</b></div>
<div class="MsoNormal">
<br />
<a name='more'></a><br /></div>
<div class="MsoNormal">
Nachfolgend werden einige Anwendungsbeispiele betrachtet, damit sich der praktische Einsatz des Frameworks besser nachvollziehen lässt:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Initialisierung bei Programmstart:</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">Load_SoundSettings_And_Init_Audio(<span style="color: #a31515;">"AudioSettings.txt"</span>);</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-GB">Aufräumarbeiten bei Programmende:</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10pt;">Shutdown_Audio();</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Einzelne 3D-Soundeffekte laden:</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="color: green; font-family: "Courier New"; font-size: 10pt;">// Soundeffekte einzeln laden:<br />
</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">Set_MaxNumberOfSoundEffects(10);<br />
<br />
Add_New_SoundEffect(0, <span style="color: #a31515;">"../SoundAndMusic/DistantCollision1.wav"</span>,<br />
5, 60.0f, 1.0f, 1.0f, 0);<br />
Add_New_SoundEffect(1, <span style="color: #a31515;">"../SoundAndMusic/DistantCollision2.wav"</span>,<br />
5, 60.0f, 1.0f, 1.0f, 0);</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-GB">Einzelne </span>3D-Soundeffekte entladen:</b><span lang="EN-GB"></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10pt;">Unload_SoundEffect(0);<br />
Unload_SoundEffect(1);</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Eine Liste mit 3D-Soundeffekten laden:</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">Load_SoundEffectList(<span style="color: #a31515;">"../SoundAndMusic/SoundEffects.txt"</span>,<br />
<span style="color: #a31515;">"../SoundAndMusic/"</span>);</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-GB">Einen 3D-Soundeffekt abspielen:</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="color: blue; font-family: "Courier New"; font-size: 10pt;">if</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">(absDistance < g_Max3DSoundDistance)<br />
{<br />
<span style="color: blue;">if</span>(absDistance < g_MaxImmediate3DSoundDistance)<br />
{<br />
SoundEffectID = lrnd(0, 2);<br />
SourceID = Play_SoundEffect_Immediately(&g_matView, SoundEffectID,<br />
&Asteroid[Asteroid_ID2].CameraSpacePosition,<br />
&g_NullVector, <span style="color: blue;">true </span><span style="color: green;">/*Reverb*/</span>);<br />
}<br />
<span style="color: blue;">else<br />
</span>{<br />
SoundEffectID = lrnd(0, 2);<br />
SourceID = Play_SoundEffect(&g_matView, SoundEffectID,<br />
&Asteroid[Asteroid_ID2].CameraSpacePosition,<br />
&g_NullVector, <span style="color: blue;">true </span><span style="color: green;">/*Reverb*/</span>);<br />
}<br />
}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Einen 3D-Soundeffekt von einer ganz bestimmten Soundquelle abspielen:</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">Play_SoundEffect_Immediately(2 <span style="color: green;">/*SoundEffectID*/</span>, 0 <span style="color: green;">/*SourceID*/</span>,<br />
<span style="color: blue;">true </span><span style="color: green;">/*Reverb*/</span>);</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">Play_SoundEffect_Immediately(&g_matView, 2 <span style="color: green;">/*SoundEffectID*/</span>,<br />
0 <span style="color: green;">/*SourceID*/</span>,<br />
&SourcePosition,<br />
&SourceVelocity, <span style="color: blue;">true </span><span style="color: green;">/*Reverb*/</span>);</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">Play_SoundEffect_Immediately(2 <span style="color: green;">/*SoundEffectID*/</span>,<br />
0 <span style="color: green;">/*SourceID*/</span>,<br />
&SourcePosition,<br />
&SourceVelocity, <span style="color: blue;">true </span><span style="color: green;">/*Reverb*/</span>);</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Position und Geschwindigkeit eines 3D-Soundeffekts (bzw. der zugehörigen Soundquelle) aktualisieren:</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">Update_SoundEffect_Position(&g_matView, 2 </span><span lang="EN-GB" style="color: green; font-family: "Courier New"; font-size: 10pt;">/*SoundEffectID*/</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">, 0 </span><span lang="EN-GB" style="color: green; font-family: "Courier New"; font-size: 10pt;">/*SourceID*/</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">,<br />
&SourceCameraSpacePosition);<br />
<br />
Update_SoundEffect_Velocity(&g_matView, 2 </span><span lang="EN-GB" style="color: green; font-family: "Courier New"; font-size: 10pt;">/*SoundEffectID*/</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">, 0 </span><span lang="EN-GB" style="color: green; font-family: "Courier New"; font-size: 10pt;">/*SourceID*/</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 9.5pt;">,<br />
&SourceVelocity);</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Tonhöhe eines 3D-Soundeffekts modulieren:</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">Set_SoundEffect_Pitch(1.2f, <span style="color: green;">/* > 1.0 := höher; < 1.0 := tiefer*/<br />
</span> 2 <span style="color: green;">/*SoundEffectID*/</span>, 0 <span style="color: green;">/*SourceID*/</span>);</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Abspielen eines 3D-Soundeffekts beenden:</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">Stop_SoundEffect_Immediately(2 <span style="color: green;">/*SoundEffectID */</span>, 0 <span style="color: green;">/*SourceID*/</span>);</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Eine Liste von Musikstücken laden und mit dem Abspielen eines zufälligen Musikstücks beginnen:</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10pt;">MusicTracks = <span style="color: blue;">new</span> CMusicTracks;<br />
</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">MusicTracks->Load_TrackList(<span style="color: #a31515;">"../SoundAndMusic/MusicTracks.txt"</span>,<br />
<span style="color: #a31515;">"../SoundAndMusic/"</span>);<br />
<br />
MusicTracks->Start_RandomMusicTrack();</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-GB">Zwei Musikstücke parallel abspielen:</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: green; font-family: "Courier New"; font-size: 10pt;">// nur sinnvoll, wenn sich beide Tracks mischen lassen!</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">MusicTracks->Start_MusicTrack(0, 0 <span style="color: green;">/*StreamID*/</span>);</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">MusicTracks->Start_MusicTrack(1, 1 <span style="color: green;">/*StreamID*/</span>);</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Hintergrundmusik aktualisieren (neuen Titel abspielen, wenn aktueller Titel beendet ist):</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10pt;">MusicTracks->Update();</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Eine Liste von Sprach-Samples für die Sprachausgabe laden:</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">VoiceSamples = <span style="color: blue;">new</span> CVoiceSamples;<br />
VoiceSamples->Load_SampleList(<span style="color: #a31515;">"../SoundAndMusic/VoiceSamples.txt"</span>,<br />
<span style="color: #a31515;">"../SoundAndMusic/"</span>);</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Mit dem Abspielen eines Sprach-Samples beginnen:</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="color: green; font-family: "Courier New"; font-size: 10pt;">// Position des Sprechers aktualisieren:<br />
</span><span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">Update_VoiceStream_Position(&g_matView,<span style="color: green;"> </span>&CameraSpacePosition,<br />
0, <span style="color: green;">/*StreamID*/</span>);<br />
<br />
VoiceSamples->Start_Sample(0);</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-GB">Zwei Sprach-Samples parallel abspielen:</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span lang="EN-GB" style="font-family: "Courier New"; font-size: 10pt;">VoiceSamples->Start_Sample(0, 0 <span style="color: green;">/*StreamID*/</span>);<br />
VoiceSamples->Start_Sample(1, 1 <span style="color: green;">/*StreamID*/</span>);</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<img src="http://vg01.met.vgwort.de/na/306a07246cb94544b580915e05791391" width="1" height="1" alt="">Alexhttp://www.blogger.com/profile/12911562805026944414noreply@blogger.com