diff options
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/spatial.c | 34 | 
1 files changed, 32 insertions, 2 deletions
| diff --git a/examples/spatial.c b/examples/spatial.c index 049fee5..93bb641 100644 --- a/examples/spatial.c +++ b/examples/spatial.c @@ -8,6 +8,7 @@  #include <xas/spatial.h>  #include <xas/synth.h> +#include <xas/vox.h>  #include <xas/audio.h>  #include <xas/riff.h> @@ -65,9 +66,12 @@ int main(int argc, char **argv) {      xas_spatial_scene *scene;      xas_audio_stream *synth, +                       *voice,                         *output,                         *wave; +    xas_vox *vox; +      synth_sine sine_channels[2] = {          { SYNTH_STATUS_ON, 0.0f, 2600 },          { SYNTH_STATUS_ON, 0.0f,  420 }, @@ -79,8 +83,8 @@ int main(int argc, char **argv) {          .sample_rate = 44100      }; -    size_t buffer_size = 44100, -           duration_s  =     5, +    size_t buffer_size = 735, +           duration_s  = 300,             i;      xas_spatial_coord speakers[2] = { @@ -106,6 +110,16 @@ int main(int argc, char **argv) {          goto error_synth_new;      } +    if ((vox = xas_vox_new("/usr/bin/text2wave", +                             format, +                             buffer_size)) == NULL) { +        goto error_vox_new; +    } + +    if ((voice = xas_vox_stream_new(vox)) == NULL) { +        goto error_vox_stream_new; +    } +      if ((scene = xas_spatial_scene_new(format,                                           speakers[0],                                           speakers[1])) == NULL) { @@ -123,6 +137,16 @@ int main(int argc, char **argv) {          goto error_spatial_scene_add_object;      } +    if (xas_spatial_scene_add_object(scene, +                                       (xas_spatial_coord){ -5.2, 0.0, 0.0 }, +                                       voice) == NULL) { +        goto error_spatial_scene_add_object; +    } + +    xas_vox_say(vox, "I want to eat your soul.  You don't understand.  I really want to eat your soul.\n"); + +    xas_vox_generate(vox); +      for (i=0; i<duration_s; i++) {          void *buf;          ssize_t readlen; @@ -156,6 +180,12 @@ error_spatial_scene_new_stream:      xas_spatial_scene_destroy(scene);  error_spatial_scene_new: +    xas_audio_stream_destroy(voice); + +error_vox_stream_new: +    xas_vox_destroy(vox); + +error_vox_new:      xas_audio_stream_destroy(synth);  error_synth_new: | 
 
    