1913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov/* 2913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov * Copyright (C) 2016 The Android Open Source Project 3913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov * 4913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov * Licensed under the Apache License, Version 2.0 (the "License"); 5913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov * you may not use this file except in compliance with the License. 6913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov * You may obtain a copy of the License at 7913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov * 8913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov * http://www.apache.org/licenses/LICENSE-2.0 9913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov * 10913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov * Unless required by applicable law or agreed to in writing, software 11913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov * distributed under the License is distributed on an "AS IS" BASIS, 12913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov * See the License for the specific language governing permissions and 14913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov * limitations under the License. 15913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov */ 16913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 17913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov#include <media/TypeConverter.h> 18913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 19913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovnamespace android { 20913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 21913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov#define MAKE_STRING_FROM_ENUM(string) { #string, string } 22913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov#define TERMINATOR { .literal = nullptr } 23913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 24913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate <> 25913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovconst OutputDeviceConverter::Table OutputDeviceConverter::mTable[] = { 26913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_NONE), 27913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_EARPIECE), 28913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_SPEAKER), 29913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_SPEAKER_SAFE), 30913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_WIRED_HEADSET), 31913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_WIRED_HEADPHONE), 32913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_BLUETOOTH_SCO), 33913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET), 34913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT), 35913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_ALL_SCO), 36913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_BLUETOOTH_A2DP), 37913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES), 38913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER), 39913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_ALL_A2DP), 40913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_AUX_DIGITAL), 41913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_HDMI), 42913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET), 43913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET), 44913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_USB_ACCESSORY), 45913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_USB_DEVICE), 46913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_ALL_USB), 47913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_REMOTE_SUBMIX), 48913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_TELEPHONY_TX), 49913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_LINE), 50913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_HDMI_ARC), 51913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_SPDIF), 52913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_FM), 53913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_AUX_LINE), 54913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_IP), 55913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_BUS), 56c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_PROXY), 574928924a74d38bad1f40d92ab6fc68f831211e76Mikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_USB_HEADSET), 58913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_DEFAULT), 590aa15c6e4d02d3aa96d5ddfc6c862fe4da1da594Mikhail Naganov // STUB must be after DEFAULT, so the latter is picked up by toString first. 600aa15c6e4d02d3aa96d5ddfc6c862fe4da1da594Mikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_OUT_STUB), 61913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov TERMINATOR 62913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov}; 63913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 64913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate <> 65913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovconst InputDeviceConverter::Table InputDeviceConverter::mTable[] = { 66913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_NONE), 67913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_COMMUNICATION), 68913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_AMBIENT), 69913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_BUILTIN_MIC), 70913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET), 71913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_ALL_SCO), 72913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_WIRED_HEADSET), 73913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_AUX_DIGITAL), 74913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_HDMI), 75913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_TELEPHONY_RX), 76913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_VOICE_CALL), 77913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_BACK_MIC), 78913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_REMOTE_SUBMIX), 79913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_ANLG_DOCK_HEADSET), 80913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_DGTL_DOCK_HEADSET), 81913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_USB_ACCESSORY), 82913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_USB_DEVICE), 83913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_ALL_USB), 84913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_FM_TUNER), 85913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_TV_TUNER), 86913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_LINE), 87913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_SPDIF), 88913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_BLUETOOTH_A2DP), 89913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_LOOPBACK), 90913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_IP), 91913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_BUS), 92c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_PROXY), 934928924a74d38bad1f40d92ab6fc68f831211e76Mikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_USB_HEADSET), 94913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_DEFAULT), 950aa15c6e4d02d3aa96d5ddfc6c862fe4da1da594Mikhail Naganov // STUB must be after DEFAULT, so the latter is picked up by toString first. 960aa15c6e4d02d3aa96d5ddfc6c862fe4da1da594Mikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_DEVICE_IN_STUB), 97913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov TERMINATOR 98913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov}; 99913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 100913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 101913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate <> 102913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovconst OutputFlagConverter::Table OutputFlagConverter::mTable[] = { 103913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_OUTPUT_FLAG_NONE), 104913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_OUTPUT_FLAG_DIRECT), 105913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_OUTPUT_FLAG_PRIMARY), 106913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_OUTPUT_FLAG_FAST), 107913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_OUTPUT_FLAG_DEEP_BUFFER), 108913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD), 109913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_OUTPUT_FLAG_NON_BLOCKING), 110913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_OUTPUT_FLAG_HW_AV_SYNC), 111913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_OUTPUT_FLAG_TTS), 112913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_OUTPUT_FLAG_RAW), 113913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_OUTPUT_FLAG_SYNC), 114913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_OUTPUT_FLAG_IEC958_NONAUDIO), 115c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_OUTPUT_FLAG_DIRECT_PCM), 1166acd1d432f526ae9a055ddaece28bf93b474a776Eric Laurent MAKE_STRING_FROM_ENUM(AUDIO_OUTPUT_FLAG_MMAP_NOIRQ), 1174928924a74d38bad1f40d92ab6fc68f831211e76Mikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_OUTPUT_FLAG_VOIP_RX), 118913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov TERMINATOR 119913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov}; 120913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 121913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 122913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate <> 123913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovconst InputFlagConverter::Table InputFlagConverter::mTable[] = { 124913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_INPUT_FLAG_NONE), 125913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_INPUT_FLAG_FAST), 126913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_INPUT_FLAG_HW_HOTWORD), 127913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_INPUT_FLAG_RAW), 128913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_INPUT_FLAG_SYNC), 1296acd1d432f526ae9a055ddaece28bf93b474a776Eric Laurent MAKE_STRING_FROM_ENUM(AUDIO_INPUT_FLAG_MMAP_NOIRQ), 1304928924a74d38bad1f40d92ab6fc68f831211e76Mikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_INPUT_FLAG_VOIP_TX), 131913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov TERMINATOR 132913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov}; 133913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 134913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 135913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate <> 136913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovconst FormatConverter::Table FormatConverter::mTable[] = { 137913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_PCM_16_BIT), 138913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_PCM_8_BIT), 139913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_PCM_32_BIT), 140913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_PCM_8_24_BIT), 141913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_PCM_FLOAT), 142913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_PCM_24_BIT_PACKED), 143913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_MP3), 144913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AMR_NB), 145913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AMR_WB), 146913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC), 147913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_MAIN), 148913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_LC), 149913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_SSR), 150913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_LTP), 151913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_HE_V1), 152913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_SCALABLE), 153913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ERLC), 154913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_LD), 155913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_HE_V2), 156913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ELD), 157c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_MAIN), 158c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_LC), 159c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_SSR), 160c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_LTP), 161c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_HE_V1), 162c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_SCALABLE), 163c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_ERLC), 164c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_LD), 165c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_HE_V2), 166c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_ELD), 167913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_VORBIS), 168913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_HE_AAC_V1), 169913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_HE_AAC_V2), 170913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_OPUS), 171913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AC3), 172913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_E_AC3), 173913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_DTS), 174913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_DTS_HD), 175913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_IEC61937), 176913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_DOLBY_TRUEHD), 177c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_EVRC), 178c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_EVRCB), 179c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_EVRCWB), 180c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_EVRCNW), 181c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADIF), 182c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_WMA), 183c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_WMA_PRO), 184c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AMR_WB_PLUS), 185c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_MP2), 186c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_QCELP), 187c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_DSD), 188c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_FLAC), 189c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_ALAC), 190c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_APE), 191c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS), 192c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_SBC), 193c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_APTX), 194c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_APTX_HD), 19596cf0a59adc029b877154ee56906edb8855fd0c8Mikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AC4), 196c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_LDAC), 197913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov TERMINATOR 198913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov}; 199913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 200913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 201913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate <> 202913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovconst OutputChannelConverter::Table OutputChannelConverter::mTable[] = { 203913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_CHANNEL_OUT_MONO), 204913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_CHANNEL_OUT_STEREO), 205c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_CHANNEL_OUT_2POINT1), 206913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_CHANNEL_OUT_QUAD), 207c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_CHANNEL_OUT_SURROUND), 208c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_CHANNEL_OUT_PENTA), 209913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_CHANNEL_OUT_5POINT1), 210c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_CHANNEL_OUT_6POINT1), 211913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_CHANNEL_OUT_7POINT1), 212913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov TERMINATOR 213913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov}; 214913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 215913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 216913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate <> 217913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovconst InputChannelConverter::Table InputChannelConverter::mTable[] = { 218913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_CHANNEL_IN_MONO), 219913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_CHANNEL_IN_STEREO), 220913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_CHANNEL_IN_FRONT_BACK), 22196cf0a59adc029b877154ee56906edb8855fd0c8Mikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_CHANNEL_IN_6), 222c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_CHANNEL_IN_VOICE_UPLINK_MONO), 223c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_CHANNEL_IN_VOICE_DNLINK_MONO), 224c89c8910d901704e03c30b1fdbeb38fd82d4bbdcMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_CHANNEL_IN_VOICE_CALL_MONO), 225913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov TERMINATOR 226913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov}; 227913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 228913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate <> 229913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovconst ChannelIndexConverter::Table ChannelIndexConverter::mTable[] = { 230913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov {"AUDIO_CHANNEL_INDEX_MASK_1", static_cast<audio_channel_mask_t>(AUDIO_CHANNEL_INDEX_MASK_1)}, 231913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov {"AUDIO_CHANNEL_INDEX_MASK_2", static_cast<audio_channel_mask_t>(AUDIO_CHANNEL_INDEX_MASK_2)}, 232913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov {"AUDIO_CHANNEL_INDEX_MASK_3", static_cast<audio_channel_mask_t>(AUDIO_CHANNEL_INDEX_MASK_3)}, 233913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov {"AUDIO_CHANNEL_INDEX_MASK_4", static_cast<audio_channel_mask_t>(AUDIO_CHANNEL_INDEX_MASK_4)}, 234913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov {"AUDIO_CHANNEL_INDEX_MASK_5", static_cast<audio_channel_mask_t>(AUDIO_CHANNEL_INDEX_MASK_5)}, 235913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov {"AUDIO_CHANNEL_INDEX_MASK_6", static_cast<audio_channel_mask_t>(AUDIO_CHANNEL_INDEX_MASK_6)}, 236913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov {"AUDIO_CHANNEL_INDEX_MASK_7", static_cast<audio_channel_mask_t>(AUDIO_CHANNEL_INDEX_MASK_7)}, 237913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov {"AUDIO_CHANNEL_INDEX_MASK_8", static_cast<audio_channel_mask_t>(AUDIO_CHANNEL_INDEX_MASK_8)}, 238913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov TERMINATOR 239913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov}; 240913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 241913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 242913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate <> 243913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovconst GainModeConverter::Table GainModeConverter::mTable[] = { 244913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_GAIN_MODE_JOINT), 245913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_GAIN_MODE_CHANNELS), 246913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_GAIN_MODE_RAMP), 247913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov TERMINATOR 248913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov}; 249913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 250913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 251913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate <> 252913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovconst StreamTypeConverter::Table StreamTypeConverter::mTable[] = { 253913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_STREAM_VOICE_CALL), 254913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_STREAM_SYSTEM), 255913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_STREAM_RING), 256913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_STREAM_MUSIC), 257913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_STREAM_ALARM), 258913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_STREAM_NOTIFICATION), 259913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_STREAM_BLUETOOTH_SCO ), 260913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_STREAM_ENFORCED_AUDIBLE), 261913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_STREAM_DTMF), 262913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_STREAM_TTS), 263913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_STREAM_ACCESSIBILITY), 264913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_STREAM_REROUTING), 265913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_STREAM_PATCH), 266913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov TERMINATOR 267913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov}; 268913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 269913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate<> 270913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovconst AudioModeConverter::Table AudioModeConverter::mTable[] = { 271913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_MODE_INVALID), 272913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_MODE_CURRENT), 273913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_MODE_NORMAL), 274913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_MODE_RINGTONE), 275913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_MODE_IN_CALL), 276913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_MODE_IN_COMMUNICATION), 277913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov TERMINATOR 278913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov}; 279913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 28044344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganovtemplate <> 28144344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganovconst UsageTypeConverter::Table UsageTypeConverter::mTable[] = { 28244344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_USAGE_UNKNOWN), 28344344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_USAGE_MEDIA), 28444344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_USAGE_VOICE_COMMUNICATION), 28544344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING), 28644344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_USAGE_ALARM), 28744344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_USAGE_NOTIFICATION), 28844344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_USAGE_NOTIFICATION_TELEPHONY_RINGTONE), 28944344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_USAGE_NOTIFICATION_COMMUNICATION_REQUEST), 29044344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_USAGE_NOTIFICATION_COMMUNICATION_INSTANT), 29144344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_USAGE_NOTIFICATION_COMMUNICATION_DELAYED), 29244344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_USAGE_NOTIFICATION_EVENT), 29344344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_USAGE_ASSISTANCE_ACCESSIBILITY), 29444344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE), 29544344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_USAGE_ASSISTANCE_SONIFICATION), 29644344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_USAGE_GAME), 29744344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_USAGE_VIRTUAL_SOURCE), 29844344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_USAGE_CNT), 29944344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_USAGE_MAX), 30044344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov TERMINATOR 30144344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov}; 30244344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov 30344344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganovtemplate <> 30444344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganovconst SourceTypeConverter::Table SourceTypeConverter::mTable[] = { 30544344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_SOURCE_DEFAULT), 30644344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_SOURCE_MIC), 30744344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_SOURCE_VOICE_UPLINK), 30844344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_SOURCE_VOICE_DOWNLINK), 30944344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_SOURCE_VOICE_CALL), 31044344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_SOURCE_CAMCORDER), 31144344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_SOURCE_VOICE_RECOGNITION), 31244344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_SOURCE_VOICE_COMMUNICATION), 31344344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_SOURCE_REMOTE_SUBMIX), 31444344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_SOURCE_UNPROCESSED), 31544344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_SOURCE_CNT), 31644344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_SOURCE_MAX), 31744344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_SOURCE_FM_TUNER), 31844344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov MAKE_STRING_FROM_ENUM(AUDIO_SOURCE_HOTWORD), 31944344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov TERMINATOR 32044344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov}; 32144344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganov 322913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate class TypeConverter<OutputDeviceTraits>; 323913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate class TypeConverter<InputDeviceTraits>; 324913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate class TypeConverter<OutputFlagTraits>; 325913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate class TypeConverter<InputFlagTraits>; 326913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate class TypeConverter<FormatTraits>; 327913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate class TypeConverter<OutputChannelTraits>; 328913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate class TypeConverter<InputChannelTraits>; 329913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate class TypeConverter<ChannelIndexTraits>; 330913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate class TypeConverter<GainModeTraits>; 331913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate class TypeConverter<StreamTraits>; 332913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovtemplate class TypeConverter<AudioModeTraits>; 33344344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganovtemplate class TypeConverter<UsageTraits>; 33444344b05261cb9ad46a43e635f637b89aecc7afeMikhail Naganovtemplate class TypeConverter<SourceTraits>; 335913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 336913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovbool deviceFromString(const std::string& literalDevice, audio_devices_t& device) { 337913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov return InputDeviceConverter::fromString(literalDevice, device) || 338913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov OutputDeviceConverter::fromString(literalDevice, device); 339913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov} 340913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 341913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovbool deviceToString(audio_devices_t device, std::string& literalDevice) { 342913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov if (device & AUDIO_DEVICE_BIT_IN) { 343913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov return InputDeviceConverter::toString(device, literalDevice); 344913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov } else { 345913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov return OutputDeviceConverter::toString(device, literalDevice); 346913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov } 347913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov} 348913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 349913d06c099bd689375483a839e11057ccf284d1cMikhail NaganovSampleRateTraits::Collection samplingRatesFromString( 350913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov const std::string &samplingRates, const char *del) 351913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov{ 352913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov SampleRateTraits::Collection samplingRateCollection; 353913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov collectionFromString<SampleRateTraits>(samplingRates, samplingRateCollection, del); 354913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov return samplingRateCollection; 355913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov} 356913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 357913d06c099bd689375483a839e11057ccf284d1cMikhail NaganovFormatTraits::Collection formatsFromString( 358913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov const std::string &formats, const char *del) 359913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov{ 360913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov FormatTraits::Collection formatCollection; 361913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov FormatConverter::collectionFromString(formats, formatCollection, del); 362913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov return formatCollection; 363913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov} 364913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 365913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovaudio_format_t formatFromString(const std::string &literalFormat, audio_format_t defaultFormat) 366913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov{ 367913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov audio_format_t format; 368913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov if (literalFormat.empty()) { 369913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov return defaultFormat; 370913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov } 371913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov FormatConverter::fromString(literalFormat, format); 372913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov return format; 373913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov} 374913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 375913d06c099bd689375483a839e11057ccf284d1cMikhail Naganovaudio_channel_mask_t channelMaskFromString(const std::string &literalChannels) 376913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov{ 377913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov audio_channel_mask_t channels; 378913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov if (!OutputChannelConverter::fromString(literalChannels, channels) || 379913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov !InputChannelConverter::fromString(literalChannels, channels)) { 380913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov return AUDIO_CHANNEL_INVALID; 381913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov } 382913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov return channels; 383913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov} 384913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 385913d06c099bd689375483a839e11057ccf284d1cMikhail NaganovChannelTraits::Collection channelMasksFromString( 386913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov const std::string &channels, const char *del) 387913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov{ 388913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov ChannelTraits::Collection channelMaskCollection; 389913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov OutputChannelConverter::collectionFromString(channels, channelMaskCollection, del); 390913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov InputChannelConverter::collectionFromString(channels, channelMaskCollection, del); 391913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov ChannelIndexConverter::collectionFromString(channels, channelMaskCollection, del); 392913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov return channelMaskCollection; 393913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov} 394913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 395913d06c099bd689375483a839e11057ccf284d1cMikhail NaganovInputChannelTraits::Collection inputChannelMasksFromString( 396913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov const std::string &inChannels, const char *del) 397913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov{ 398913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov InputChannelTraits::Collection inputChannelMaskCollection; 399913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov InputChannelConverter::collectionFromString(inChannels, inputChannelMaskCollection, del); 400913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov ChannelIndexConverter::collectionFromString(inChannels, inputChannelMaskCollection, del); 401913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov return inputChannelMaskCollection; 402913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov} 403913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 404913d06c099bd689375483a839e11057ccf284d1cMikhail NaganovOutputChannelTraits::Collection outputChannelMasksFromString( 405913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov const std::string &outChannels, const char *del) 406913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov{ 407913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov OutputChannelTraits::Collection outputChannelMaskCollection; 408913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov OutputChannelConverter::collectionFromString(outChannels, outputChannelMaskCollection, del); 409913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov ChannelIndexConverter::collectionFromString(outChannels, outputChannelMaskCollection, del); 410913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov return outputChannelMaskCollection; 411913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov} 412913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov 413913d06c099bd689375483a839e11057ccf284d1cMikhail Naganov}; // namespace android 414