summaryrefslogtreecommitdiffstats
path: root/src/module-pipe-sink.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/module-pipe-sink.c')
-rw-r--r--src/module-pipe-sink.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/module-pipe-sink.c b/src/module-pipe-sink.c
index c0a903e9..9dcf5d23 100644
--- a/src/module-pipe-sink.c
+++ b/src/module-pipe-sink.c
@@ -18,7 +18,8 @@ struct userdata {
struct sink *sink;
struct iochannel *io;
struct core *core;
- struct mainloop_source *mainloop_source;
+ void *mainloop_source;
+ struct pa_mainloop_api *mainloop;
struct memchunk memchunk;
};
@@ -27,7 +28,7 @@ static void do_write(struct userdata *u) {
ssize_t r;
assert(u);
- mainloop_source_enable(u->mainloop_source, 0);
+ u->mainloop->enable_fixed(u->mainloop, u->mainloop_source, 0);
if (!iochannel_is_writable(u->io))
return;
@@ -57,10 +58,10 @@ static void notify_cb(struct sink*s) {
assert(s && u);
if (iochannel_is_writable(u->io))
- mainloop_source_enable(u->mainloop_source, 1);
+ u->mainloop->enable_fixed(u->mainloop, u->mainloop_source, 1);
}
-static void prepare_callback(struct mainloop_source *src, void *userdata) {
+static void fixed_callback(struct pa_mainloop_api *m, void *id, void *userdata) {
struct userdata *u = userdata;
assert(u);
do_write(u);
@@ -77,7 +78,7 @@ int module_init(struct core *c, struct module*m) {
struct stat st;
char *p;
int fd = -1;
- static const struct sample_spec ss = {
+ static const struct pa_sample_spec ss = {
.format = SAMPLE_S16NE,
.rate = 44100,
.channels = 2,
@@ -120,10 +121,11 @@ int module_init(struct core *c, struct module*m) {
u->memchunk.memblock = NULL;
u->memchunk.length = 0;
- u->mainloop_source = mainloop_source_new_fixed(c->mainloop, prepare_callback, u);
+ u->mainloop = c->mainloop;
+ u->mainloop_source = u->mainloop->source_fixed(u->mainloop, fixed_callback, u);
assert(u->mainloop_source);
- mainloop_source_enable(u->mainloop_source, 0);
-
+ u->mainloop->enable_fixed(u->mainloop, u->mainloop_source, 0);
+
m->userdata = u;
return 0;
@@ -147,7 +149,7 @@ void module_done(struct core *c, struct module*m) {
sink_free(u->sink);
iochannel_free(u->io);
- mainloop_source_free(u->mainloop_source);
+ u->mainloop->cancel_fixed(u->mainloop, u->mainloop_source);
assert(u->filename);
unlink(u->filename);