]> code.delx.au - pulseaudio/blobdiff - src/sinkinput.h
implement parec-simple and matching simple recording API
[pulseaudio] / src / sinkinput.h
index 5e71d2108700512235aaaf23a8828b39ac7a1134..b28b51ef93437da1fe4a60e0d348558ea6eec846 100644 (file)
@@ -6,27 +6,38 @@
 #include "sink.h"
 #include "sample.h"
 #include "memblockq.h"
+#include "resampler.h"
 
-struct sink_input {
+struct pa_sink_input {
     uint32_t index;
 
     char *name;
-    struct sink *sink;
-    struct sample_spec spec;
+    struct pa_sink *sink;
+    struct pa_sample_spec sample_spec;
+    uint32_t volume;
     
-    int (*peek) (struct sink_input *i, struct memchunk *chunk, uint8_t *volume);
-    void (*drop) (struct sink_input *i, size_t length);
-    void (*kill) (struct sink_input *i);
+    int (*peek) (struct pa_sink_input *i, struct pa_memchunk *chunk);
+    void (*drop) (struct pa_sink_input *i, size_t length);
+    void (*kill) (struct pa_sink_input *i);
+    uint32_t (*get_latency) (struct pa_sink_input *i);
 
     void *userdata;
+
+    struct pa_memchunk resampled_chunk;
+    struct pa_resampler *resampler;
 };
 
-struct sink_input* sink_input_new(struct sink *s, struct sample_spec *spec, const char *name);
-void sink_input_free(struct sink_input* i);
+struct pa_sink_input* pa_sink_input_new(struct pa_sink *s, const char *name, const struct pa_sample_spec *spec);
+void pa_sink_input_free(struct pa_sink_input* i);
 
 /* Code that didn't create the input stream should call this function to
  * request destruction of it */
-void sink_input_kill(struct sink_input *i);
+void pa_sink_input_kill(struct pa_sink_input *i);
+
+uint32_t pa_sink_input_get_latency(struct pa_sink_input *i);
+char *pa_sink_input_list_to_string(struct pa_core *c);
 
+int pa_sink_input_peek(struct pa_sink_input *i, struct pa_memchunk *chunk);
+void pa_sink_input_drop(struct pa_sink_input *i, size_t length);
 
 #endif