basic cli interface
[profile/ivi/pulseaudio.git] / src / module-cli.c
1 #include <stdio.h>
2 #include <assert.h>
3 #include <unistd.h>
4
5 #include "main.h"
6 #include "module.h"
7 #include "iochannel.h"
8 #include "cli.h"
9
10 int module_init(struct core *c, struct module*m) {
11     struct iochannel *io;
12     assert(c && m);
13
14     if (stdin_inuse || stdout_inuse) {
15         fprintf(stderr, "STDIN/STDUSE already used\n");
16         return -1;
17     }
18
19     stdin_inuse = stdout_inuse = 1;
20     io = iochannel_new(c->mainloop, STDIN_FILENO, STDOUT_FILENO);
21     assert(io);
22
23     m->userdata = cli_new(c, io);
24     assert(m->userdata);
25     return 0;
26 }
27
28 void module_done(struct core *c, struct module*m) {
29     assert(c && m);
30
31     cli_free(m->userdata);
32     assert(stdin_inuse && stdout_inuse);
33     stdin_inuse = stdout_inuse = 0;
34 }