blob: 016a08578ca3e9f2a4766f493df3e8f95cce63d8 [file] [log] [blame]
Kevin Rocardf971c082018-02-23 10:01:56 -08001/*
2 * Copyright (C) 2018 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef ANDROID_AUDIO_BASE_UTILS_H
18#define ANDROID_AUDIO_BASE_UTILS_H
19
20#include "audio-base.h"
21
22/** Define helper values to iterate over enum, extend them or checking value validity.
23 * Those values are compatible with the O corresponding enum values.
24 * They are not macro like similar values in audio.h to avoid conflicting
25 * with the libhardware_legacy audio.h.
26 */
27enum {
28 /** Number of audio stream available to vendors. */
29 AUDIO_STREAM_PUBLIC_CNT = AUDIO_STREAM_ACCESSIBILITY + 1,
30
31#ifndef AUDIO_NO_SYSTEM_DECLARATIONS
32 /** Total number of stream handled by the policy*/
33 AUDIO_STREAM_FOR_POLICY_CNT= AUDIO_STREAM_REROUTING + 1,
34#endif
35
36 /** Total number of stream. */
37 AUDIO_STREAM_CNT = AUDIO_STREAM_PATCH + 1,
38
39 AUDIO_SOURCE_MAX = AUDIO_SOURCE_UNPROCESSED,
40 AUDIO_SOURCE_CNT = AUDIO_SOURCE_MAX + 1,
41
42 AUDIO_MODE_MAX = AUDIO_MODE_IN_COMMUNICATION,
43 AUDIO_MODE_CNT = AUDIO_MODE_MAX + 1,
44
45 /** For retrocompatibility AUDIO_MODE_* and AUDIO_STREAM_* must be signed. */
46 AUDIO_DETAIL_NEGATIVE_VALUE = -1,
47};
48
49enum {
50 AUDIO_CHANNEL_OUT_ALL = AUDIO_CHANNEL_OUT_FRONT_LEFT |
51 AUDIO_CHANNEL_OUT_FRONT_RIGHT |
52 AUDIO_CHANNEL_OUT_FRONT_CENTER |
53 AUDIO_CHANNEL_OUT_LOW_FREQUENCY |
54 AUDIO_CHANNEL_OUT_BACK_LEFT |
55 AUDIO_CHANNEL_OUT_BACK_RIGHT |
56 AUDIO_CHANNEL_OUT_FRONT_LEFT_OF_CENTER |
57 AUDIO_CHANNEL_OUT_FRONT_RIGHT_OF_CENTER |
58 AUDIO_CHANNEL_OUT_BACK_CENTER |
59 AUDIO_CHANNEL_OUT_SIDE_LEFT |
60 AUDIO_CHANNEL_OUT_SIDE_RIGHT |
61 AUDIO_CHANNEL_OUT_TOP_CENTER |
62 AUDIO_CHANNEL_OUT_TOP_FRONT_LEFT |
63 AUDIO_CHANNEL_OUT_TOP_FRONT_CENTER |
64 AUDIO_CHANNEL_OUT_TOP_FRONT_RIGHT |
65 AUDIO_CHANNEL_OUT_TOP_BACK_LEFT |
66 AUDIO_CHANNEL_OUT_TOP_BACK_CENTER |
67 AUDIO_CHANNEL_OUT_TOP_BACK_RIGHT |
Mikhail Naganov87d43392018-03-16 14:39:21 -070068 AUDIO_CHANNEL_OUT_TOP_SIDE_LEFT |
69 AUDIO_CHANNEL_OUT_TOP_SIDE_RIGHT,
Kevin Rocardf971c082018-02-23 10:01:56 -080070
71 AUDIO_CHANNEL_IN_ALL = AUDIO_CHANNEL_IN_LEFT |
72 AUDIO_CHANNEL_IN_RIGHT |
73 AUDIO_CHANNEL_IN_FRONT |
74 AUDIO_CHANNEL_IN_BACK|
75 AUDIO_CHANNEL_IN_LEFT_PROCESSED |
76 AUDIO_CHANNEL_IN_RIGHT_PROCESSED |
77 AUDIO_CHANNEL_IN_FRONT_PROCESSED |
78 AUDIO_CHANNEL_IN_BACK_PROCESSED|
79 AUDIO_CHANNEL_IN_PRESSURE |
80 AUDIO_CHANNEL_IN_X_AXIS |
81 AUDIO_CHANNEL_IN_Y_AXIS |
82 AUDIO_CHANNEL_IN_Z_AXIS |
83 AUDIO_CHANNEL_IN_VOICE_UPLINK |
84 AUDIO_CHANNEL_IN_VOICE_DNLINK |
85 AUDIO_CHANNEL_IN_BACK_LEFT |
86 AUDIO_CHANNEL_IN_BACK_RIGHT |
87 AUDIO_CHANNEL_IN_CENTER |
88 AUDIO_CHANNEL_IN_LOW_FREQUENCY |
89 AUDIO_CHANNEL_IN_TOP_LEFT |
90 AUDIO_CHANNEL_IN_TOP_RIGHT,
91
92 AUDIO_DEVICE_OUT_ALL = AUDIO_DEVICE_OUT_EARPIECE |
93 AUDIO_DEVICE_OUT_SPEAKER |
94 AUDIO_DEVICE_OUT_WIRED_HEADSET |
95 AUDIO_DEVICE_OUT_WIRED_HEADPHONE |
96 AUDIO_DEVICE_OUT_BLUETOOTH_SCO |
97 AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET |
98 AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT |
99 AUDIO_DEVICE_OUT_BLUETOOTH_A2DP |
100 AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES |
101 AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER |
102 AUDIO_DEVICE_OUT_HDMI |
103 AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET |
104 AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET |
105 AUDIO_DEVICE_OUT_USB_ACCESSORY |
106 AUDIO_DEVICE_OUT_USB_DEVICE |
107 AUDIO_DEVICE_OUT_REMOTE_SUBMIX |
108 AUDIO_DEVICE_OUT_TELEPHONY_TX |
109 AUDIO_DEVICE_OUT_LINE |
110 AUDIO_DEVICE_OUT_HDMI_ARC |
111 AUDIO_DEVICE_OUT_SPDIF |
112 AUDIO_DEVICE_OUT_FM |
113 AUDIO_DEVICE_OUT_AUX_LINE |
114 AUDIO_DEVICE_OUT_SPEAKER_SAFE |
115 AUDIO_DEVICE_OUT_IP |
116 AUDIO_DEVICE_OUT_BUS |
117 AUDIO_DEVICE_OUT_PROXY |
118 AUDIO_DEVICE_OUT_USB_HEADSET |
119 AUDIO_DEVICE_OUT_HEARING_AID |
120 AUDIO_DEVICE_OUT_ECHO_CANCELLER |
121 AUDIO_DEVICE_OUT_DEFAULT,
122
123 AUDIO_DEVICE_OUT_ALL_A2DP = AUDIO_DEVICE_OUT_BLUETOOTH_A2DP |
124 AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES |
125 AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER,
126
127 AUDIO_DEVICE_OUT_ALL_SCO = AUDIO_DEVICE_OUT_BLUETOOTH_SCO |
128 AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET |
129 AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT,
130
131 AUDIO_DEVICE_OUT_ALL_USB = AUDIO_DEVICE_OUT_USB_ACCESSORY |
132 AUDIO_DEVICE_OUT_USB_DEVICE |
133 AUDIO_DEVICE_OUT_USB_HEADSET,
134
135 AUDIO_DEVICE_IN_ALL = AUDIO_DEVICE_IN_COMMUNICATION |
136 AUDIO_DEVICE_IN_AMBIENT |
137 AUDIO_DEVICE_IN_BUILTIN_MIC |
138 AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET |
139 AUDIO_DEVICE_IN_WIRED_HEADSET |
140 AUDIO_DEVICE_IN_HDMI |
141 AUDIO_DEVICE_IN_TELEPHONY_RX |
142 AUDIO_DEVICE_IN_BACK_MIC |
143 AUDIO_DEVICE_IN_REMOTE_SUBMIX |
144 AUDIO_DEVICE_IN_ANLG_DOCK_HEADSET |
145 AUDIO_DEVICE_IN_DGTL_DOCK_HEADSET |
146 AUDIO_DEVICE_IN_USB_ACCESSORY |
147 AUDIO_DEVICE_IN_USB_DEVICE |
148 AUDIO_DEVICE_IN_FM_TUNER |
149 AUDIO_DEVICE_IN_TV_TUNER |
150 AUDIO_DEVICE_IN_LINE |
151 AUDIO_DEVICE_IN_SPDIF |
152 AUDIO_DEVICE_IN_BLUETOOTH_A2DP |
153 AUDIO_DEVICE_IN_LOOPBACK |
154 AUDIO_DEVICE_IN_IP |
155 AUDIO_DEVICE_IN_BUS |
156 AUDIO_DEVICE_IN_PROXY |
157 AUDIO_DEVICE_IN_USB_HEADSET |
158 AUDIO_DEVICE_IN_BLUETOOTH_BLE |
159 AUDIO_DEVICE_IN_DEFAULT,
160
161 AUDIO_DEVICE_IN_ALL_SCO = AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET,
162
163 AUDIO_DEVICE_IN_ALL_USB = AUDIO_DEVICE_IN_USB_ACCESSORY |
164 AUDIO_DEVICE_IN_USB_DEVICE |
165 AUDIO_DEVICE_IN_USB_HEADSET,
166
167 AUDIO_USAGE_MAX = AUDIO_USAGE_ASSISTANT,
168 AUDIO_USAGE_CNT = AUDIO_USAGE_ASSISTANT + 1,
169
170 AUDIO_PORT_CONFIG_ALL = AUDIO_PORT_CONFIG_SAMPLE_RATE |
171 AUDIO_PORT_CONFIG_CHANNEL_MASK |
172 AUDIO_PORT_CONFIG_FORMAT |
173 AUDIO_PORT_CONFIG_GAIN,
174}; // enum
175
176
177#endif // ANDROID_AUDIO_BASE_UTILS_H