1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<title>Castle Game Engine: CastleSoundEngine: Class TRepoSoundEngine</title>
<meta name="generator" content="PasDoc 0.13.0">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="StyleSheet" type="text/css" href="pasdoc.css">
</head>
<body>
<table class="container"><tr><td class="navigation">
<h2>Castle Game Engine</h2><p><a href="introduction.html" class="navigation">Introduction</a></p><p><a href="AllUnits.html" class="navigation">Units</a></p><p><a href="ClassHierarchy.html" class="navigation">Class Hierarchy</a></p><p><a href="AllClasses.html" class="navigation">Classes, Interfaces, Objects and Records</a></p><p><a href="AllTypes.html" class="navigation">Types</a></p><p><a href="AllVariables.html" class="navigation">Variables</a></p><p><a href="AllConstants.html" class="navigation">Constants</a></p><p><a href="AllFunctions.html" class="navigation">Functions and Procedures</a></p><p><a href="AllIdentifiers.html" class="navigation">Identifiers</a></p></td><td class="content">
<a name="TRepoSoundEngine"></a><h1 class="cio">Class TRepoSoundEngine</h1>
<table class="sections wide_list">
<tr>
<td><a class="section" href="#PasDoc-Description">Description</a></td><td><a class="section" href="#PasDoc-Hierarchy">Hierarchy</a></td><td>Fields</td><td><a class="section" href="#PasDoc-Methods">Methods</a></td><td><a class="section" href="#PasDoc-Properties">Properties</a></td></tr></table>
<a name="PasDoc-Description"></a><h2 class="unit">Unit</h2>
<p class="unitlink">
<a href="CastleSoundEngine.html">CastleSoundEngine</a></p>
<h2 class="declaration">Declaration</h2>
<p class="declaration">
<code>type TRepoSoundEngine = class(<a class="normal" href="CastleSoundEngine.TSoundEngine.html">TSoundEngine</a>)</code></p>
<h2 class="description">Description</h2>
<p>
Sound engine that keeps a repository of sounds, defined in a nice XML file. This allows to have simple <a class="normal" href="CastleSoundEngine.TRepoSoundEngine.html#Sound">Sound</a> and <a class="normal" href="CastleSoundEngine.TRepoSoundEngine.html#Sound3D">Sound3D</a> methods, that take a sound identifier (managing sound buffers will just happen automatically under the hood).
<p>It extends <a class="normal" href="CastleSoundEngine.TSoundEngine.html">TSoundEngine</a>, so you can always still load new buffers and play them by <a class="normal" href="CastleSoundEngine.TSoundEngine.html#LoadBuffer">TSoundEngine.LoadBuffer</a>, <a class="normal" href="CastleSoundEngine.TSoundEngine.html#PlaySound">TSoundEngine.PlaySound</a> and all other methods. This only adds easy preloaded sounds, but you're not limited to them.
<p>To initialize your sounds repository, you have to set the <a class="normal" href="CastleSoundEngine.TRepoSoundEngine.html#RepositoryURL">RepositoryURL</a> property.</p>
<a name="PasDoc-Hierarchy"></a><h2 class="hierarchy">Hierarchy</h2>
<ul class="hierarchy"><li class="ancestor">TObject</li>
<li class="ancestor"><a class="normal" href="CastleSoundAllocator.TSoundAllocator.html">TSoundAllocator</a></li>
<li class="ancestor"><a class="normal" href="CastleSoundEngine.TSoundEngine.html">TSoundEngine</a></li>
<li class="thisitem">TRepoSoundEngine</li></ul><h2 class="overview">Overview</h2>
<a name="PasDoc-Methods"></a><h3 class="summary">Methods</h3>
<table class="summary wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><code>procedure <b><a href="CastleSoundEngine.TRepoSoundEngine.html#LoadFromConfig">LoadFromConfig</a></b>(const Config: <a href="CastleXMLConfig.TCastleConfig.html">TCastleConfig</a>); override;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a href="legend.html"><img src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><code>procedure <b><a href="CastleSoundEngine.TRepoSoundEngine.html#SaveToConfig">SaveToConfig</a></b>(const Config: <a href="CastleXMLConfig.TCastleConfig.html">TCastleConfig</a>); override;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>constructor <b><a href="CastleSoundEngine.TRepoSoundEngine.html#Create">Create</a></b>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>destructor <b><a href="CastleSoundEngine.TRepoSoundEngine.html#Destroy">Destroy</a></b>; override;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a href="CastleSoundEngine.TRepoSoundEngine.html#ALContextOpen">ALContextOpen</a></b>; override;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a href="CastleSoundEngine.TRepoSoundEngine.html#ALContextClose">ALContextClose</a></b>; override;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a href="CastleSoundEngine.TRepoSoundEngine.html#ReloadSounds">ReloadSounds</a></b>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a href="CastleSoundEngine.TRepoSoundEngine.html#SoundFromName">SoundFromName</a></b>(const SoundName: string; const RaiseError: boolean = true): <a href="CastleSoundEngine.html#TSoundType">TSoundType</a>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a href="CastleSoundEngine.TRepoSoundEngine.html#Sound">Sound</a></b>(SoundType: <a href="CastleSoundEngine.html#TSoundType">TSoundType</a>; const Looping: boolean = false): <a href="CastleSoundEngine.html#TSound">TSound</a>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a href="CastleSoundEngine.TRepoSoundEngine.html#Sound3D">Sound3D</a></b>(SoundType: <a href="CastleSoundEngine.html#TSoundType">TSoundType</a>; const Position: <a href="CastleVectors.html#TVector3Single">TVector3Single</a>; const Looping: boolean = false): <a href="CastleSoundEngine.html#TSound">TSound</a>; overload;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a href="CastleSoundEngine.TRepoSoundEngine.html#AddSoundImportanceName">AddSoundImportanceName</a></b>(const Name: string; Importance: Integer);</code></td>
</tr>
</table>
<a name="PasDoc-Properties"></a><h3 class="summary">Properties</h3>
<table class="summary wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a href="CastleSoundEngine.TRepoSoundEngine.html#RepositoryURL">RepositoryURL</a></b>: string read FRepositoryURL write SetRepositoryURL;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a href="CastleSoundEngine.TRepoSoundEngine.html#SoundsFileName">SoundsFileName</a></b>: string read FRepositoryURL write SetRepositoryURL; deprecated;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a href="CastleSoundEngine.TRepoSoundEngine.html#Sounds">Sounds</a></b>: <a href="CastleSoundEngine.html#TSoundInfoList">TSoundInfoList</a> read FSounds;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a href="CastleSoundEngine.TRepoSoundEngine.html#SoundImportanceNames">SoundImportanceNames</a></b>: TStringList read FSoundImportanceNames;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a href="CastleSoundEngine.TRepoSoundEngine.html#MusicPlayer">MusicPlayer</a></b>: <a href="CastleSoundEngine.TMusicPlayer.html">TMusicPlayer</a> read FMusicPlayer;</code></td>
</tr>
</table>
<h2 class="description">Description</h2>
<h3 class="detail">Methods</h3>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><a name="LoadFromConfig"></a><code>procedure <b>LoadFromConfig</b>(const Config: <a href="CastleXMLConfig.TCastleConfig.html">TCastleConfig</a>); override;</code></td>
</tr>
<tr><td colspan="2">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><a name="SaveToConfig"></a><code>procedure <b>SaveToConfig</b>(const Config: <a href="CastleXMLConfig.TCastleConfig.html">TCastleConfig</a>); override;</code></td>
</tr>
<tr><td colspan="2">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Create"></a><code>constructor <b>Create</b>;</code></td>
</tr>
<tr><td colspan="2">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Destroy"></a><code>destructor <b>Destroy</b>; override;</code></td>
</tr>
<tr><td colspan="2">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="ALContextOpen"></a><code>procedure <b>ALContextOpen</b>; override;</code></td>
</tr>
<tr><td colspan="2">
<p>
In addition to initializing OpenAL context, this also loads sound files.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="ALContextClose"></a><code>procedure <b>ALContextClose</b>; override;</code></td>
</tr>
<tr><td colspan="2">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="ReloadSounds"></a><code>procedure <b>ReloadSounds</b>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Reload the <a class="normal" href="CastleSoundEngine.TRepoSoundEngine.html#RepositoryURL">RepositoryURL</a> and all referenced buffers. Useful as a tool for 3D data designers, to reload the sounds XML file without restarting the game/sound engine etc.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="SoundFromName"></a><code>function <b>SoundFromName</b>(const SoundName: string; const RaiseError: boolean = true): <a href="CastleSoundEngine.html#TSoundType">TSoundType</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Return sound with given name. Available names are given in SoundNames, defined in XML file pointed by <a class="normal" href="CastleSoundEngine.TRepoSoundEngine.html#RepositoryURL">RepositoryURL</a>. Always for SoundName = '' it will return <a class="normal" href="CastleSoundEngine.html#stNone">stNone</a>.
<p></p>
<h6 class="description_section">Exceptions raised</h6>
<dl class="exceptions_raised">
<dt><code>Exception</code></dt>
<dd>On invalid SoundName when RaiseError = <code>True</code>.</dd>
</dl>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Sound"></a><code>function <b>Sound</b>(SoundType: <a href="CastleSoundEngine.html#TSoundType">TSoundType</a>; const Looping: boolean = false): <a href="CastleSoundEngine.html#TSound">TSound</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Play given sound. This should be used to play sounds that are not spatial, i.e. have no place in 3D space.
<p>Returns used <a class="normal" href="CastleSoundEngine.html#TSound">TSound</a> (or nil if none was available). You don't have to do anything with this returned <a class="normal" href="CastleSoundEngine.html#TSound">TSound</a>.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Sound3D"></a><code>function <b>Sound3D</b>(SoundType: <a href="CastleSoundEngine.html#TSoundType">TSoundType</a>; const Position: <a href="CastleVectors.html#TVector3Single">TVector3Single</a>; const Looping: boolean = false): <a href="CastleSoundEngine.html#TSound">TSound</a>; overload;</code></td>
</tr>
<tr><td colspan="2">
<p>
Play given sound at appropriate position in 3D space.
<p>Returns used <a class="normal" href="CastleSoundEngine.html#TSound">TSound</a> (or nil if none was available). You don't have to do anything with this returned <a class="normal" href="CastleSoundEngine.html#TSound">TSound</a>.
<p></p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="AddSoundImportanceName"></a><code>procedure <b>AddSoundImportanceName</b>(const Name: string; Importance: Integer);</code></td>
</tr>
<tr><td colspan="2">
</td></tr>
</table>
<h3 class="detail">Properties</h3>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="RepositoryURL"></a><code>property <b>RepositoryURL</b>: string read FRepositoryURL write SetRepositoryURL;</code></td>
</tr>
<tr><td colspan="2">
<p>
The XML file that contains description of your sounds. This should be an URL (in simple cases, just a filename) pointing to an XML file describing your sounds. See <a href="http://castle-engine.sourceforge.net/creating_data_sound.php">http://castle-engine.sourceforge.net/creating_data_sound.php</a> and engine examples for details (<code>examples/audio/sample_sounds.xml</code> contains an example file with lots of comments).
<p>When you set <code>RepositoryURL</code> property, we read sound information from given XML file. You usually set <code>RepositoryURL</code> at the very beginning, before OpenAL context is initialized (although it's also Ok to do this after). Right after setting <code>RepositoryURL</code> you usually call <a class="normal" href="CastleSoundEngine.TRepoSoundEngine.html#SoundFromName">SoundFromName</a> a couple of times to convert some names into <a class="normal" href="CastleSoundEngine.html#TSoundType">TSoundType</a> values, to later use these <a class="normal" href="CastleSoundEngine.html#TSoundType">TSoundType</a> values with <a class="normal" href="CastleSoundEngine.TRepoSoundEngine.html#Sound">Sound</a> and <a class="normal" href="CastleSoundEngine.TRepoSoundEngine.html#Sound3D">Sound3D</a> methods.
<p>When OpenAL is initialized, sound buffers will actually be loaded.
<p>If this is empty (the default), then no sounds are loaded, and <a class="normal" href="CastleSoundEngine.TRepoSoundEngine.html">TRepoSoundEngine</a> doesn't really give you much above standard <a class="normal" href="CastleSoundEngine.TSoundEngine.html">TSoundEngine</a>.
<p>If you want to actually use <a class="normal" href="CastleSoundEngine.TRepoSoundEngine.html">TRepoSoundEngine</a> features (like the <a class="normal" href="CastleSoundEngine.TRepoSoundEngine.html#Sound">Sound</a> and <a class="normal" href="CastleSoundEngine.TRepoSoundEngine.html#Sound3D">Sound3D</a> methods) you have to set this property. For example like this:
<p></p>
<pre class="longcode">
SoundEngine.RepositoryURL := ApplicationData(<span class="pascal_string">'sounds.xml'</span>);
stMySound1 := SoundEngine.SoundFromName(<span class="pascal_string">'my_sound_1'</span>);
stMySound2 := SoundEngine.SoundFromName(<span class="pascal_string">'my_sound_2'</span>);
<span class="pascal_comment">// ... and later in your game you can do stuff like this:</span>
SoundEngine.Sound(stMySound1);
SoundEngine.Sound3D(stMySound1, Vector3Single(<span class="pascal_numeric">0</span>, <span class="pascal_numeric">0</span>, <span class="pascal_numeric">10</span>));
</pre>
<p>
<p>See <a class="normal" href="CastleFilesUtils.html">CastleFilesUtils</a> unit for docs of <a class="normal" href="CastleFilesUtils.html#ApplicationData">ApplicationData</a> function.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="SoundsFileName"></a><code>property <b>SoundsFileName</b>: string read FRepositoryURL write SetRepositoryURL; deprecated;</code></td>
</tr>
<tr><td colspan="2">
<p class="hint_directive">Warning: this symbol is deprecated.</p><p>
Deprecated name for <a class="normal" href="CastleSoundEngine.TRepoSoundEngine.html#RepositoryURL">RepositoryURL</a>. </p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Sounds"></a><code>property <b>Sounds</b>: <a href="CastleSoundEngine.html#TSoundInfoList">TSoundInfoList</a> read FSounds;</code></td>
</tr>
<tr><td colspan="2">
<p>
A list of sounds used by your program. Each sound has a unique name, used to identify sound in the XML file and for <a class="normal" href="CastleSoundEngine.TRepoSoundEngine.html#SoundFromName">SoundFromName</a> function.
<p>At the beginning, this list always contains exactly one sound: empty <a class="normal" href="CastleSoundEngine.html#stNone">stNone</a>. This is a special "sound type" that has index 0 (should be always expressed as <a class="normal" href="CastleSoundEngine.html#TSoundType">TSoundType</a> value <a class="normal" href="CastleSoundEngine.html#stNone">stNone</a>) and name ''. <a class="normal" href="CastleSoundEngine.html#stNone">stNone</a> is a special sound as it actually means "no sound" in many cases.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="SoundImportanceNames"></a><code>property <b>SoundImportanceNames</b>: TStringList read FSoundImportanceNames;</code></td>
</tr>
<tr><td colspan="2">
<p>
Sound importance names and values. Each item is a name (as a string) and a value (that is stored in Objects property of the item as a pointer; add new importances by <a class="normal" href="CastleSoundEngine.TRepoSoundEngine.html#AddSoundImportanceName">AddSoundImportanceName</a> for comfort).
<p>These can be used within sounds.xml file. Before using <a class="normal" href="CastleSoundEngine.TRepoSoundEngine.html#ALContextOpen">ALContextOpen</a>, you can fill this list with values.
<p>Initially, it contains a couple of useful values (ordered here from most to least important):
<p></p>
<ul class="paragraph_spacing">
<li><p>'max' - <a class="normal" href="CastleSoundEngine.html#MaxSoundImportance">MaxSoundImportance</a></p></li>
<li><p>'level_event' - <a class="normal" href="CastleSoundEngine.html#LevelEventSoundImportance">LevelEventSoundImportance</a></p></li>
<li><p>'player' - <a class="normal" href="CastleSoundEngine.html#PlayerSoundImportance">PlayerSoundImportance</a></p></li>
<li><p>'default_creature' - <a class="normal" href="CastleSoundEngine.html#DefaultCreatureSoundImportance">DefaultCreatureSoundImportance</a></p></li>
<li><p>'minor_non_spatial' - <a class="normal" href="CastleSoundEngine.html#MinorNonSpatialSoundImportance">MinorNonSpatialSoundImportance</a></p></li>
</ul>
<p></p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="MusicPlayer"></a><code>property <b>MusicPlayer</b>: <a href="CastleSoundEngine.TMusicPlayer.html">TMusicPlayer</a> read FMusicPlayer;</code></td>
</tr>
<tr><td colspan="2">
</td></tr>
</table>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(["trackPageView"]);
_paq.push(["enableLinkTracking"]);
(function() {
var u=(("https:" == document.location.protocol) ? "https" : "http") + "://michalis.ii.uni.wroc.pl/piwik-castle-engine/";
_paq.push(["setTrackerUrl", u+"piwik.php"]);
_paq.push(["setSiteId", "1"]);
var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Piwik Code -->
<noscript>
<!-- Piwik Image Tracker -->
<img src="http://michalis.ii.uni.wroc.pl/piwik-castle-engine/piwik.php?idsite=1&rec=1" style="border:0" alt="" />
<!-- End Piwik -->
</noscript>
<hr noshade size="1"><span class="appinfo"><em>Generated by <a href="http://pasdoc.sourceforge.net/">PasDoc 0.13.0</a> on 2015-06-15 04:43:12</em>
</span>
</td></tr></table></body></html>
|