Home | History | Annotate | Download | only in system
      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