summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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;