routing: routing of multiplexed streams + initial synchronisation
[profile/ivi/pulseaudio-module-murphy-ivi.git] / murphy / multiplex.h
1 #ifndef foomultiplexfoo
2 #define foomultiplexfoo
3
4 #include <pulsecore/core.h>
5 #include <pulsecore/sink-input.h>
6
7 #include "list.h"
8
9 typedef struct pa_muxnode pa_muxnode;
10
11 typedef struct pa_multiplex {
12     PA_LLIST_HEAD(pa_muxnode, muxnodes);
13 } pa_multiplex;
14
15
16 struct pa_muxnode {
17     PA_LLIST_FIELDS(pa_muxnode);
18     uint32_t   module_index;
19     uint32_t   sink_index;
20 };
21
22 pa_multiplex *pa_multiplex_init(void);
23
24 void pa_multiplex_done(pa_multiplex *, pa_core *);
25
26 pa_muxnode *pa_multiplex_create(pa_multiplex *, pa_core *, uint32_t,
27                                 pa_channel_map *, const char *, int);
28 void pa_multiplex_destroy(pa_multiplex *, pa_core *, pa_muxnode *);
29
30 pa_muxnode *pa_multiplex_find(pa_multiplex *, uint32_t);
31
32 pa_sink_input *pa_multiplex_default_stream(pa_core *, pa_muxnode *);
33
34 int pa_multiplex_print(pa_muxnode *, char *, int);
35
36
37 #endif /* foomultiplexfoo */
38
39 /*
40  * Local Variables:
41  * c-basic-offset: 4
42  * indent-tabs-mode: nil
43  * End:
44  *
45  */