router: fix for bluetooth disappearing causing assert in combine
[profile/ivi/pulseaudio-module-murphy-ivi.git] / murphy / audiomgr.h
1 #ifndef fooaudiomgrfoo
2 #define fooaudiomgrfoo
3
4 #include <dbus/dbus.h>
5
6 #include "userdata.h"
7
8
9 /* error codes */
10 #define E_OK              0
11 #define E_UNKNOWN         1
12 #define E_OUT_OF_RANGE    2
13 #define E_NOT_USED        3
14 #define E_DATABSE_ERROR   4
15 #define E_ALREADY_EXISTS  5
16 #define E_NO_CHANGE       6
17 #define E_NOT_POSSIBLE    7
18 #define E_NON_EXISTENT    8
19 #define E_ABORTED         9
20 #define E_WRONG_FORMAT    10
21
22
23
24 struct am_domainreg_data {
25     dbus_uint16_t  domain_id;
26     const char    *name;      /**< domain name in audio manager  */
27     const char    *bus_name;  /**< audio manager's internal bus name
28                                    (not to confuse this with D-Bus name)  */
29     const char    *node_name; /**< node name on audio manager's internal bus*/
30     dbus_bool_t    early;
31     dbus_bool_t    complete;
32     dbus_uint16_t  state;
33 };
34
35 struct am_nodereg_data {
36     const char    *key;        /* for node lookup's */
37     dbus_uint16_t  id;
38     const char    *name;
39     dbus_uint16_t  domain;
40     dbus_uint16_t  class;
41     dbus_uint16_t  state;      /* 1=on, 2=off */
42     dbus_int16_t   volume;
43     dbus_bool_t    visible;
44     struct {
45         dbus_int16_t  status; /* 1=available, 2=unavailable */
46         dbus_int16_t  reason; /* 1=newmedia, 2=same media, 3=nomedia */
47     } avail;
48     dbus_uint16_t  mute;
49     dbus_uint16_t  mainvol;
50     dbus_uint16_t  interrupt;  /* 1=off, 2=interrupted */
51 };
52
53 struct am_nodeunreg_data {
54     dbus_uint16_t  id;
55     const char    *name;
56 };
57
58
59 struct am_connect_data {
60     dbus_uint16_t  handle;
61     dbus_uint16_t  connection;
62     dbus_uint16_t  source;
63     dbus_uint16_t  sink;
64     dbus_int16_t   format;
65 };
66
67 struct am_ack_data {
68     dbus_uint32_t  handle;
69     dbus_uint16_t  param1;
70     dbus_uint16_t  param2;
71     dbus_uint16_t  error;
72 };
73
74
75 pa_audiomgr *pa_audiomgr_init(struct userdata *);
76 void pa_audiomgr_done(struct userdata *);
77
78 void pa_audiomgr_register_domain(struct userdata *);
79 void pa_audiomgr_domain_registered(struct userdata *,  uint16_t, uint16_t,
80                                    am_domainreg_data *);
81
82 void pa_audiomgr_unregister_domain(struct userdata *, pa_bool_t);
83
84
85 void pa_audiomgr_register_node(struct userdata *, mir_node *);
86 void pa_audiomgr_node_registered(struct userdata *, uint16_t, uint16_t,
87                                  am_nodereg_data *);
88
89 void pa_audiomgr_unregister_node(struct userdata *, mir_node *);
90 void pa_audiomgr_node_unregistered(struct userdata *, am_nodeunreg_data *);
91
92 void pa_audiomgr_connect(struct userdata *, am_connect_data *);
93 void pa_audiomgr_disconnect(struct userdata *, am_connect_data *);
94
95
96 #endif
97
98 /*
99  * Local Variables:
100  * c-basic-offset: 4
101  * indent-tabs-mode: nil
102  * End:
103  *
104  */