2 * module-agl-audio -- PulseAudio module for providing audio routing support
3 * (forked from "module-murphy-ivi" - https://github.com/otcshare )
4 * Copyright (c) 2012, Intel Corporation.
5 * Copyright (c) 2016, IoT.bzh
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms and conditions of the GNU Lesser General Public License,
9 * version 2.1, as published by the Free Software Foundation.
11 * This program is distributed in the hope it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE.
14 * See the GNU Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public License
17 * along with this program; if not, write to the
18 * Free Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston,
25 #include <pulsecore/pulsecore-config.h> /* required for "core.h" and "module.h" */
26 #include <pulsecore/core.h>
27 #include <pulsecore/module.h>
29 #define AM_ID_INVALID 65535 /* invalid state in several places */
32 typedef struct pa_null_sink pa_null_sink;
33 typedef struct pa_zoneset pa_zoneset;
34 typedef struct pa_nodeset pa_nodeset;
35 typedef struct pa_audiomgr pa_audiomgr;
36 typedef struct pa_routerif pa_routerif;
37 typedef struct pa_discover pa_discover;
38 typedef struct pa_tracker pa_tracker;
39 typedef struct pa_router pa_router;
41 typedef struct pa_nodeset_resdef pa_nodeset_resdef;
42 typedef struct pa_nodeset_map pa_nodeset_map;
43 typedef struct pa_node_card pa_node_card;
44 typedef struct pa_node_rset pa_node_rset;
46 typedef struct pa_card_hooks pa_card_hooks;
47 typedef struct pa_port_hooks pa_port_hooks;
48 typedef struct pa_sink_hooks pa_sink_hooks;
49 typedef struct pa_source_hooks pa_source_hooks;
50 typedef struct pa_sink_input_hooks pa_sink_input_hooks;
51 typedef struct pa_source_output_hooks pa_source_output_hooks;
53 typedef struct agl_zone agl_zone;
54 typedef struct agl_node agl_node;
55 typedef struct agl_rtgroup agl_rtgroup;
56 typedef struct agl_connection agl_connection;
70 pa_audiomgr *audiomgr;
71 pa_routerif *routerif;
73 pa_discover *discover;
78 /* application classes */
79 typedef enum agl_node_type {
80 agl_node_type_unknown = 0,
82 agl_application_class_begin,
83 agl_radio = agl_application_class_begin,
89 agl_phone, /**< telephony voice */
90 agl_alert, /**< ringtone, alarm */
91 agl_event, /**< notifications */
92 agl_system, /**< always audible system notifications, events */
93 agl_application_class_end,
96 typedef enum agl_direction {
97 agl_direction_unknown = 0,
102 typedef enum agl_implement {
103 agl_implementation_unknown = 0,
108 typedef enum agl_location {
109 agl_location_unknown = 0,
114 typedef enum agl_privacy {
115 agl_privacy_unknown = 0,