diff options
-rw-r--r-- | include/xas/object.h | 5 | ||||
-rw-r--r-- | src/object.c | 10 |
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; |