summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXANTRONIX Development2022-02-28 17:16:01 -0500
committerXANTRONIX Development2022-02-28 17:16:01 -0500
commit8293f5811f4fe5d3d955dc78833eab6ab2779b4e (patch)
tree6cf9a4d81a25afce2a566ae10c16f75602f36b8a
parent78a788bff6779a79357b346901f477060ad5d96f (diff)
downloadxas-8293f5811f4fe5d3d955dc78833eab6ab2779b4e.tar.gz
xas-8293f5811f4fe5d3d955dc78833eab6ab2779b4e.tar.bz2
xas-8293f5811f4fe5d3d955dc78833eab6ab2779b4e.zip
Implement xas_object_stream_new()
Implement xas_object_stream_new() proxy to allow generic creation of an audio stream from any given audible object
-rw-r--r--include/xas/object.h13
-rw-r--r--src/object.c4
2 files changed, 14 insertions, 3 deletions
diff --git a/include/xas/object.h b/include/xas/object.h
index 19a479a..9e291c1 100644
--- a/include/xas/object.h
+++ b/include/xas/object.h
@@ -1,6 +1,8 @@
#ifndef _XAS_OBJECT_H
#define _XAS_OBJECT_H
+#include <xas/audio.h>
+
typedef struct _xas_object xas_object;
typedef int (*xas_object_start_callback)(xas_object *object);
@@ -9,10 +11,13 @@ typedef int (*xas_object_stop_callback)(xas_object *object);
typedef int (*xas_object_set_gain_callback)(xas_object *object, float gain);
+typedef xas_audio_stream *(*xas_object_stream_new_callback)(xas_object *object);
+
struct _xas_object {
- xas_object_start_callback start;
- xas_object_stop_callback stop;
- xas_object_set_gain_callback set_gain;
+ xas_object_start_callback start;
+ xas_object_stop_callback stop;
+ xas_object_set_gain_callback set_gain;
+ xas_object_stream_new_callback stream_new;
};
int xas_object_start(xas_object *object);
@@ -21,4 +26,6 @@ int xas_object_stop(xas_object *object);
int xas_object_set_gain(xas_object *object, float gain);
+xas_audio_stream *xas_object_stream_new(xas_object *object);
+
#endif /* _XAS_OBJECT_H */
diff --git a/src/object.c b/src/object.c
index f97deca..26bb1b3 100644
--- a/src/object.c
+++ b/src/object.c
@@ -11,3 +11,7 @@ int xas_object_stop(xas_object *object) {
int xas_object_set_gain(xas_object *object, float gain) {
return object->set_gain(object, gain);
}
+
+xas_audio_stream *xas_object_stream_new(xas_object *object) {
+ return object->stream_new(object);
+}