diff options
| author | XANTRONIX Development | 2022-02-27 17:28:02 -0500 | 
|---|---|---|
| committer | XANTRONIX Development | 2022-02-27 17:28:02 -0500 | 
| commit | 1cc112d8ef190185c6c08989b97e534a1c3b63f4 (patch) | |
| tree | a3656e13ed84f863ee7236fb5de7a0cc5db980ce | |
| parent | b7c5722e33c5fe993fac31738d78ce2ac05f4747 (diff) | |
| download | xas-1cc112d8ef190185c6c08989b97e534a1c3b63f4.tar.gz xas-1cc112d8ef190185c6c08989b97e534a1c3b63f4.tar.bz2 xas-1cc112d8ef190185c6c08989b97e534a1c3b63f4.zip | |
Save context data when adding scene objects
| -rw-r--r-- | examples/spatial.c | 6 | ||||
| -rw-r--r-- | include/xas/spatial.h | 7 | ||||
| -rw-r--r-- | src/spatial.c | 4 | 
3 files changed, 12 insertions, 5 deletions
| diff --git a/examples/spatial.c b/examples/spatial.c index ac467ee..ec606d6 100644 --- a/examples/spatial.c +++ b/examples/spatial.c @@ -135,13 +135,15 @@ int main(int argc, char **argv) {      if (xas_spatial_scene_add_object(scene,                                         (xas_spatial_coord){ 5.2, 0.0, 0.0 }, -                                       synth) == NULL) { +                                       synth, +                                       &sine_channels[0]) == NULL) {          goto error_spatial_scene_add_object;      }      if (xas_spatial_scene_add_object(scene,                                         (xas_spatial_coord){ -5.2, 0.0, 0.0 }, -                                       voice) == NULL) { +                                       voice, +                                       vox) == NULL) {          goto error_spatial_scene_add_object;      } diff --git a/include/xas/spatial.h b/include/xas/spatial.h index df956a8..5323558 100644 --- a/include/xas/spatial.h +++ b/include/xas/spatial.h @@ -38,8 +38,10 @@ struct _xas_spatial_object {      ssize_t shift_l,              shift_r; -    xas_spatial_coord point;      xas_audio_stream *source; +    void *ctx; + +    xas_spatial_coord point;      xas_spatial_object *next;  }; @@ -86,7 +88,8 @@ int xas_spatial_scene_set_radius(xas_spatial_scene *scene, float radius);  xas_spatial_object *xas_spatial_scene_add_object(xas_spatial_scene *scene,                                                       xas_spatial_coord point, -                                                     xas_audio_stream *source); +                                                     xas_audio_stream *source, +                                                     void *ctx);  void xas_spatial_scene_position_object(xas_spatial_scene *scene,                                           xas_spatial_object *object, diff --git a/src/spatial.c b/src/spatial.c index 2e1c066..98d54aa 100644 --- a/src/spatial.c +++ b/src/spatial.c @@ -376,7 +376,8 @@ int xas_spatial_scene_set_radius(xas_spatial_scene *scene, float radius) {  xas_spatial_object *xas_spatial_scene_add_object(xas_spatial_scene *scene,                                                       xas_spatial_coord point, -                                                     xas_audio_stream *source) { +                                                     xas_audio_stream *source, +                                                     void *ctx) {      xas_spatial_object *object;      if (source->format.channels != XAS_AUDIO_MONO) { @@ -391,6 +392,7 @@ xas_spatial_object *xas_spatial_scene_add_object(xas_spatial_scene *scene,      object->point   = point;      object->source  = source; +    object->ctx     = ctx;      object->next    = NULL;      object->delta_l = 0;      object->delta_r = 0; | 
 
    