diff options
Diffstat (limited to 'include/xas')
| -rw-r--r-- | include/xas/object.h | 48 | 
1 files changed, 38 insertions, 10 deletions
| diff --git a/include/xas/object.h b/include/xas/object.h index 4d5b754..64d645b 100644 --- a/include/xas/object.h +++ b/include/xas/object.h @@ -3,12 +3,18 @@  #include <xas/audio.h> +typedef struct _xas_object_coord { +    float x, y, z; +} xas_object_coord; +  typedef struct _xas_object xas_object;  typedef int (*xas_object_start_callback)(xas_object *object, size_t index);  typedef int (*xas_object_stop_callback)(xas_object *object, size_t index); +typedef int (*xas_object_set_type_callback)(xas_object *object, int type); +  typedef int (*xas_object_set_gain_callback)(xas_object *object, float gain);  typedef int (*xas_object_set_freq_callback)(xas_object *object, size_t freq); @@ -19,27 +25,43 @@ typedef int (*xas_object_set_entry_callback)(xas_object *object,  typedef int (*xas_object_set_flags_callback)(xas_object *object, int flags); +typedef int (*xas_object_set_point_callback)(xas_object *object, +                                               xas_object_coord point); + +typedef int (*xas_object_set_heading_callback)(xas_object *object, +                                                 xas_object_coord heading); + +typedef int (*xas_object_set_speed_callback)(xas_object *object, float speed); +  typedef xas_audio_stream *(*xas_object_stream_new_callback)(xas_object *object);  typedef void (*xas_object_destroy_callback)(xas_object *object); +typedef struct _xas_object_call_table { +    xas_object_start_callback       start; +    xas_object_stop_callback        stop; +    xas_object_set_type_callback    set_type; +    xas_object_set_gain_callback    set_gain; +    xas_object_set_entry_callback   set_entry; +    xas_object_set_freq_callback    set_freq; +    xas_object_set_flags_callback   set_flags; +    xas_object_set_point_callback   set_point; +    xas_object_set_heading_callback set_heading; +    xas_object_set_speed_callback   set_speed; +    xas_object_stream_new_callback  stream_new; +    xas_object_destroy_callback     destroy; +} xas_object_call_table; +  struct _xas_object { -    xas_object_start_callback      start; -    xas_object_stop_callback       stop; -    xas_object_set_gain_callback   set_gain; -    xas_object_set_entry_callback  set_entry; -    xas_object_set_freq_callback   set_freq; -    xas_object_set_flags_callback  set_flags; -    xas_object_stream_new_callback stream_new; -    xas_object_destroy_callback    destroy; +    xas_object_call_table *table;  }; -void xas_object_init(xas_object *object); -  int xas_object_start(xas_object *object, size_t index);  int xas_object_stop(xas_object *object, size_t index); +int xas_object_set_type(xas_object *object, int type); +  int xas_object_set_gain(xas_object *object, float gain);  int xas_object_set_entry(xas_object *object, size_t index, size_t entry); @@ -48,6 +70,12 @@ int xas_object_set_freq(xas_object *object, size_t freq);  int xas_object_set_flags(xas_object *object, int flags); +int xas_object_set_point(xas_object *object, xas_object_coord point); + +int xas_object_set_heading(xas_object *object, xas_object_coord heading); + +int xas_object_set_speed(xas_object *object, float speed); +  xas_audio_stream *xas_object_stream_new(xas_object *object);  void xas_object_destroy(xas_object *object); | 
 
    