diff options
author | XANTRONIX Development | 2022-03-16 00:10:55 -0400 |
---|---|---|
committer | XANTRONIX Development | 2022-03-16 00:10:55 -0400 |
commit | cd1f89fade802c48c92680f1ddbadfbd0d04017d (patch) | |
tree | 89b8f620a0e1380a72652ef69dcec6059be11f2d /include | |
parent | 87d8e756713e67f3932a94f7d2e3f0ca596e3131 (diff) | |
download | xas-cd1f89fade802c48c92680f1ddbadfbd0d04017d.tar.gz xas-cd1f89fade802c48c92680f1ddbadfbd0d04017d.tar.bz2 xas-cd1f89fade802c48c92680f1ddbadfbd0d04017d.zip |
Add optional callbacks to xas_object
Changes:
* Implement xas_object_init() to initialise an object call table
to all null values
* Rework dispatch methods to fail gracefully if no pointer value is
provided for a given callback entry
Additional changes:
* Add callbacks for changing bank and frequency
Diffstat (limited to 'include')
-rw-r--r-- | include/xas/object.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/xas/object.h b/include/xas/object.h index a164277..4392892 100644 --- a/include/xas/object.h +++ b/include/xas/object.h @@ -11,6 +11,10 @@ typedef int (*xas_object_stop_callback)(xas_object *object); 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); + +typedef int (*xas_object_set_bank_callback)(xas_object *object, size_t gain); + typedef xas_audio_stream *(*xas_object_stream_new_callback)(xas_object *object); typedef void (*xas_object_destroy_callback)(xas_object *object); @@ -19,16 +23,24 @@ struct _xas_object { xas_object_start_callback start; xas_object_stop_callback stop; xas_object_set_gain_callback set_gain; + xas_object_set_bank_callback set_bank; + xas_object_set_freq_callback set_freq; xas_object_stream_new_callback stream_new; xas_object_destroy_callback destroy; }; +void xas_object_init(xas_object *object); + int xas_object_start(xas_object *object); int xas_object_stop(xas_object *object); int xas_object_set_gain(xas_object *object, float gain); +int xas_object_set_bank(xas_object *object, size_t bank); + +int xas_object_set_freq(xas_object *object, size_t freq); + xas_audio_stream *xas_object_stream_new(xas_object *object); void xas_object_destroy(xas_object *object); |