summaryrefslogtreecommitdiffstats
path: root/test/uscxml/test-spatial-audio.scxml
diff options
context:
space:
mode:
Diffstat (limited to 'test/uscxml/test-spatial-audio.scxml')
-rw-r--r--test/uscxml/test-spatial-audio.scxml75
1 files changed, 75 insertions, 0 deletions
diff --git a/test/uscxml/test-spatial-audio.scxml b/test/uscxml/test-spatial-audio.scxml
new file mode 100644
index 0000000..66d06f4
--- /dev/null
+++ b/test/uscxml/test-spatial-audio.scxml
@@ -0,0 +1,75 @@
+<scxml datamodel="ecmascript" name="spatial.audio.test">
+ <datamodel>
+ <!-- Alternative to the JSON notation
+ <data id="spatialAudio" expr="{}" />
+ <data id="spatialAudio.id2" expr="{}" />
+ <data id="spatialAudio.id2.degree" expr="90" />
+ -->
+ <data id="spatialAudio">
+ {
+ 'id2': {
+ 'degree': 90
+ }
+ }
+ </data>
+ </datamodel>
+ <state id="click.continuously">
+ <initial>
+ <transition target="ready" />
+ </initial>
+ <invoke type="openal" id="spatial-audio.id1">
+ <!--
+ Explicitly set the start position of an audio source.
+ Keep in mind that the coordinate system is the same as in OpenGL:
+ y
+ |
+ |___x
+ /
+ z
+ -->
+ <param name="x" expr="-1.0" /> <!-- leftmost -->
+ <param name="y" expr="0" />
+ <param name="z" expr="0" />
+ </invoke>
+ <invoke type="openal" id="spatial-audio.id2">
+ <!--
+ Set position on a circle.
+ Unit for circle is "deg" in clockwise order with 0 being directly in front,
+ or "rad" in counter-clockwise with zero being the rightmost position.
+ "right", "height" and "front" are aliases for x, y and z respectively.
+ -->
+ <param name="circle" expr="spatialAudio.id2.degree + 'deg'" /> <!-- rightmost -->
+ <param name="height" expr="0.0" />
+ </invoke>
+ <state id="ready">
+ <onentry>
+ <!-- trigger transition in 1 second -->
+ <send event="spatial-audio.play" delay="1s">
+ <param name="src" expr="'audio/click.wav'" />
+ </send>
+ <log expr="'Ready'" />
+ </onentry>
+ <transition target="click" event="spatial-audio.play" />
+ <transition target="final" event="quit" />
+ </state>
+ <state id="click">
+ <onentry>
+ <send target="#_spatial-audio.id1" event="play">
+ <param name="src" expr="'audio/click.wav'" />
+ </send>
+ <!--
+ move position of audio 2 in a circle
+ -->
+ <send target="#_spatial-audio.id2" event="play" delay="200ms">
+ <param name="src" expr="'audio/click.wav'" />
+ <param name="circle" expr="spatialAudio.id2.degree + 'deg'" />
+ </send>
+ <log expr="'Clicking'" />
+ <script>spatialAudio.id2.degree += 90;</script>
+ </onentry>
+ <transition target="ready" />
+ </state>
+ </state>
+
+ <final id="final" />
+</scxml> \ No newline at end of file