summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXANTRONIX Development2022-03-16 00:22:52 -0400
committerXANTRONIX Development2022-03-16 00:22:52 -0400
commite8eeaba4104c7dd66a10c0bdc39559a5c6634db0 (patch)
tree7bed54d15e0f61f72b2a30c3358f55062a448ebb
parentf3cb4dbdc5c8aab3f514915d32e3496ef2117939 (diff)
downloadxas-e8eeaba4104c7dd66a10c0bdc39559a5c6634db0.tar.gz
xas-e8eeaba4104c7dd66a10c0bdc39559a5c6634db0.tar.bz2
xas-e8eeaba4104c7dd66a10c0bdc39559a5c6634db0.zip
Add xas_object callback to set object flags
-rw-r--r--include/xas/object.h5
-rw-r--r--src/object.c10
2 files changed, 15 insertions, 0 deletions
diff --git a/include/xas/object.h b/include/xas/object.h
index 91287f5..6ca515e 100644
--- a/include/xas/object.h
+++ b/include/xas/object.h
@@ -15,6 +15,8 @@ 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 bank);
+typedef int (*xas_object_set_flags_callback)(xas_object *object, int flags);
+
typedef xas_audio_stream *(*xas_object_stream_new_callback)(xas_object *object);
typedef void (*xas_object_destroy_callback)(xas_object *object);
@@ -25,6 +27,7 @@ struct _xas_object {
xas_object_set_gain_callback set_gain;
xas_object_set_bank_callback set_bank;
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;
};
@@ -41,6 +44,8 @@ int xas_object_set_bank(xas_object *object, size_t bank);
int xas_object_set_freq(xas_object *object, size_t freq);
+int xas_object_set_flags(xas_object *object, int flags);
+
xas_audio_stream *xas_object_stream_new(xas_object *object);
void xas_object_destroy(xas_object *object);
diff --git a/src/object.c b/src/object.c
index 4526bc5..70271c1 100644
--- a/src/object.c
+++ b/src/object.c
@@ -57,6 +57,16 @@ int xas_object_set_freq(xas_object *object, size_t freq) {
return object->set_freq(object, freq);
}
+int xas_object_set_flags(xas_object *object, int flags) {
+ if (object->set_flags == NULL) {
+ errno = ENOSYS;
+
+ return -1;
+ }
+
+ return object->set_flags(object, flags);
+}
+
xas_audio_stream *xas_object_stream_new(xas_object *object) {
if (object->stream_new == NULL) {
errno = ENOSYS;