bce0782315971bbad97261d2872501fdeedca28f
[profile/ivi/pulseaudio.git] / src / main.c
1 #include <stdio.h>
2 #include <signal.h>
3 #include <stddef.h>
4 #include <assert.h>
5 #include <ltdl.h>
6 #include <memblock.h>
7
8 #include "core.h"
9 #include "mainloop.h"
10 #include "module.h"
11
12 static void signal_callback(struct mainloop_source *m, int sig, void *userdata) {
13     mainloop_quit(mainloop_source_get_mainloop(m), -1);
14     fprintf(stderr, "main: got signal.\n");
15 }
16
17 int main(int argc, char *argv[]) {
18     struct mainloop *m;
19     struct core *c;
20     int r;
21
22     r = lt_dlinit();
23     assert(r == 0);
24     
25     m = mainloop_new();
26     assert(m);
27     c = core_new(m);
28     assert(c);
29
30     mainloop_source_new_signal(m, SIGINT, signal_callback, NULL);
31     signal(SIGPIPE, SIG_IGN);
32
33     module_load(c, "module-oss-mmap", "/dev/dsp1");
34     module_load(c, "module-pipe-sink", NULL);
35     module_load(c, "module-simple-protocol-tcp", NULL);
36     
37     fprintf(stderr, "main: mainloop entry.\n");
38     while (mainloop_iterate(m, 1) == 0);
39 /*        fprintf(stderr, "main: %u blocks\n", n_blocks);*/
40     fprintf(stderr, "main: mainloop exit.\n");
41         
42
43     mainloop_run(m);
44     
45     core_free(c);
46     mainloop_free(m);
47
48     lt_dlexit();
49     
50     return 0;
51 }