From e8eeaba4104c7dd66a10c0bdc39559a5c6634db0 Mon Sep 17 00:00:00 2001 From: XANTRONIX Development Date: Wed, 16 Mar 2022 00:22:52 -0400 Subject: Add xas_object callback to set object flags --- include/xas/object.h | 5 +++++ src/object.c | 10 ++++++++++ 2 files changed, 15 insertions(+) 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; -- cgit v1.2.3