summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorXANTRONIX Development2022-03-16 00:10:55 -0400
committerXANTRONIX Development2022-03-16 00:10:55 -0400
commitcd1f89fade802c48c92680f1ddbadfbd0d04017d (patch)
tree89b8f620a0e1380a72652ef69dcec6059be11f2d /include
parent87d8e756713e67f3932a94f7d2e3f0ca596e3131 (diff)
downloadxas-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.h12
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);