1 /* 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 */ 27 enum { 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 49 enum { 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 | 68 AUDIO_CHANNEL_OUT_TOP_SIDE_LEFT | 69 AUDIO_CHANNEL_OUT_TOP_SIDE_RIGHT, 70 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 178