}
{ $description "Constructs an " { $link audio-engine } " instance capable of playing " { $snippet "voice-count" } " simultaneous clips. The OpenAL device named " { $snippet "device-name" } " will be used, or the default device if " { $snippet "device-name" } " is " { $link f } ". An error will be thrown if the engine cannot be initialized. The engine is returned in the stopped state; to start audio processing, use " { $link start-audio } " or " { $link start-audio* } "." } ;
-HELP: <audio-orientation>
+HELP: <audio-orientation-state>
{ $values
{ "forward" "a sequence of 3 floats" } { "up" "a sequence of 3 floats" }
- { "audio-orientation" audio-orientation }
+ { "audio-orientation" audio-orientation-state }
}
-{ $description "Constructs an " { $link audio-orientation } " tuple." } ;
+{ $description "Constructs an " { $link audio-orientation-state } " tuple." } ;
HELP: <standard-audio-engine>
{ $values
{ distance float initial: 1.0 }
{ rolloff float initial: 1.0 } ;
-TUPLE: audio-orientation
+TUPLE: audio-orientation-state
{ forward initial: { 0.0 0.0 -1.0 } }
{ up initial: { 0.0 1.0 0.0 } } ;
-C: <audio-orientation> audio-orientation
+C: <audio-orientation-state> audio-orientation-state
: orientation>float-array ( orientation -- float-array )
[ forward>> first3 ]
{ position initial: { 0.0 0.0 0.0 } }
{ gain float initial: 1.0 }
{ velocity initial: { 0.0 0.0 0.0 } }
- { orientation initial: T{ audio-orientation } } ;
+ { orientation initial: T{ audio-orientation-state } } ;
GENERIC: audio-position ( source/listener -- position )
GENERIC: audio-gain ( source/listener -- gain )
M: object audio-relative? drop f ; inline
M: object audio-distance drop 1.0 ; inline
M: object audio-rolloff drop 1.0 ; inline
-M: object audio-orientation drop T{ audio-orientation } ; inline
+M: object audio-orientation drop T{ audio-orientation-state } ; inline
M: audio-source audio-position position>> ; inline
M: audio-source audio-gain gain>> ; inline
{ 1.0 0.0 0.0 } n*v eye-rotate ;
M: wasd-world audio-position location>> ; inline
-M: wasd-world audio-orientation forward-vector { 0.0 1.0 0.0 } <audio-orientation> ; inline
+M: wasd-world audio-orientation
+ forward-vector { 0.0 1.0 0.0 } <audio-orientation-state> ; inline
: walk-forward ( world -- )
dup forward-vector [ v+ ] curry change-location drop ;