diff options
Diffstat (limited to 'src/sink.h')
-rw-r--r-- | src/sink.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/sink.h b/src/sink.h new file mode 100644 index 00000000..a6f98005 --- /dev/null +++ b/src/sink.h @@ -0,0 +1,38 @@ +#ifndef foosinkhfoo +#define foosinkhfoo + +struct sink; + +#include <inttypes.h> + +#include "core.h" +#include "sample.h" +#include "idxset.h" +#include "source.h" + +struct sink { + char *name; + uint32_t index; + + struct core *core; + struct sample_spec sample_spec; + struct idxset *input_streams; + + struct source *monitor_source; + + uint8_t volume; + + void (*notify_callback)(struct sink*sink, void *userdata); + void *userdata; +}; + +struct sink* sink_new(struct core *core, const char *name, const struct sample_spec *spec); +void sink_free(struct sink* s); + +int sink_render(struct sink*s, size_t length, struct memchunk *result); +int sink_render_into(struct sink*s, struct memblock *target, struct memchunk *result); + +void sink_notify(struct sink*s); +void sink_set_notify_callback(struct sink *s, void (*notify_callback)(struct sink*sink, void *userdata), void *userdata); + +#endif |