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 #pragma once 18 19 #include <system/audio.h> 20 21 namespace android { 22 /** 23 * @brief AudioProductStrategies hard coded array of strategies to fill new engine API contract. 24 */ 25 const engineConfig::ProductStrategies gOrderedStrategies = { 26 {"STRATEGY_PHONE", 27 { 28 {"phone", AUDIO_STREAM_VOICE_CALL, "AUDIO_STREAM_VOICE_CALL", 29 {{AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_VOICE_COMMUNICATION, AUDIO_SOURCE_DEFAULT, 30 AUDIO_FLAG_NONE, ""}}, 31 }, 32 {"sco", AUDIO_STREAM_BLUETOOTH_SCO, "AUDIO_STREAM_BLUETOOTH_SCO", 33 {{AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_UNKNOWN, AUDIO_SOURCE_DEFAULT, AUDIO_FLAG_SCO, 34 ""}}, 35 } 36 }, 37 }, 38 {"STRATEGY_SONIFICATION", 39 { 40 {"ring", AUDIO_STREAM_RING, "AUDIO_STREAM_RING", 41 {{AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_NOTIFICATION_TELEPHONY_RINGTONE, 42 AUDIO_SOURCE_DEFAULT, AUDIO_FLAG_NONE, ""}} 43 }, 44 {"alarm", AUDIO_STREAM_ALARM, "AUDIO_STREAM_ALARM", 45 {{AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_ALARM, AUDIO_SOURCE_DEFAULT, 46 AUDIO_FLAG_NONE, ""}}, 47 } 48 }, 49 }, 50 {"STRATEGY_ENFORCED_AUDIBLE", 51 { 52 {"", AUDIO_STREAM_ENFORCED_AUDIBLE, "AUDIO_STREAM_ENFORCED_AUDIBLE", 53 {{AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_UNKNOWN, AUDIO_SOURCE_DEFAULT, 54 AUDIO_FLAG_AUDIBILITY_ENFORCED, ""}} 55 } 56 }, 57 }, 58 {"STRATEGY_ACCESSIBILITY", 59 { 60 {"", AUDIO_STREAM_ACCESSIBILITY, "AUDIO_STREAM_ACCESSIBILITY", 61 {{AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_ASSISTANCE_ACCESSIBILITY, 62 AUDIO_SOURCE_DEFAULT, AUDIO_FLAG_NONE, ""}} 63 } 64 }, 65 }, 66 {"STRATEGY_SONIFICATION_RESPECTFUL", 67 { 68 {"", AUDIO_STREAM_NOTIFICATION, "AUDIO_STREAM_NOTIFICATION", 69 { 70 {AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_NOTIFICATION, AUDIO_SOURCE_DEFAULT, 71 AUDIO_FLAG_NONE, ""}, 72 {AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_NOTIFICATION_EVENT, 73 AUDIO_SOURCE_DEFAULT, AUDIO_FLAG_NONE, ""} 74 } 75 } 76 }, 77 }, 78 {"STRATEGY_MEDIA", 79 { 80 {"assistant", AUDIO_STREAM_ASSISTANT, "AUDIO_STREAM_ASSISTANT", 81 {{AUDIO_CONTENT_TYPE_SPEECH, AUDIO_USAGE_ASSISTANT, 82 AUDIO_SOURCE_DEFAULT, AUDIO_FLAG_NONE, ""}} 83 }, 84 {"music", AUDIO_STREAM_MUSIC, "AUDIO_STREAM_MUSIC", 85 { 86 {AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_MEDIA, AUDIO_SOURCE_DEFAULT, 87 AUDIO_FLAG_NONE, ""}, 88 {AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_GAME, AUDIO_SOURCE_DEFAULT, 89 AUDIO_FLAG_NONE, ""}, 90 {AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_ASSISTANT, AUDIO_SOURCE_DEFAULT, 91 AUDIO_FLAG_NONE, ""}, 92 {AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE, 93 AUDIO_SOURCE_DEFAULT, AUDIO_FLAG_NONE, ""}, 94 {AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_UNKNOWN, AUDIO_SOURCE_DEFAULT, 95 AUDIO_FLAG_NONE, ""} 96 }, 97 }, 98 {"system", AUDIO_STREAM_SYSTEM, "AUDIO_STREAM_SYSTEM", 99 {{AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_ASSISTANCE_SONIFICATION, 100 AUDIO_SOURCE_DEFAULT, AUDIO_FLAG_NONE, ""}} 101 } 102 }, 103 }, 104 {"STRATEGY_DTMF", 105 { 106 {"", AUDIO_STREAM_DTMF, "AUDIO_STREAM_DTMF", 107 { 108 {AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING, 109 AUDIO_SOURCE_DEFAULT, AUDIO_FLAG_NONE, ""} 110 } 111 } 112 }, 113 }, 114 {"STRATEGY_CALL_ASSISTANT", 115 { 116 {"", AUDIO_STREAM_CALL_ASSISTANT, "AUDIO_STREAM_CALL_ASSISTANT", 117 {{AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_CALL_ASSISTANT, AUDIO_SOURCE_DEFAULT, 118 AUDIO_FLAG_NONE, ""}} 119 } 120 }, 121 }, 122 {"STRATEGY_TRANSMITTED_THROUGH_SPEAKER", 123 { 124 {"", AUDIO_STREAM_TTS, "AUDIO_STREAM_TTS", 125 { 126 {AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_UNKNOWN, AUDIO_SOURCE_DEFAULT, 127 AUDIO_FLAG_BEACON, ""}, 128 {AUDIO_CONTENT_TYPE_ULTRASOUND, AUDIO_USAGE_UNKNOWN, AUDIO_SOURCE_DEFAULT, 129 AUDIO_FLAG_NONE, ""} 130 } 131 } 132 }, 133 } 134 }; 135 136 /** 137 * For Internal use of respectively audio policy and audioflinger 138 * For compatibility reason why apm volume config file, volume group name is the stream type. 139 */ 140 const engineConfig::ProductStrategies gOrderedSystemStrategies = { 141 {"rerouting", 142 { 143 {"", AUDIO_STREAM_REROUTING, "AUDIO_STREAM_REROUTING", 144 {{AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_VIRTUAL_SOURCE, AUDIO_SOURCE_DEFAULT, 145 AUDIO_FLAG_NONE, ""}} 146 } 147 }, 148 }, 149 {"patch", 150 { 151 {"", AUDIO_STREAM_PATCH, "AUDIO_STREAM_PATCH", 152 {{AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_UNKNOWN, AUDIO_SOURCE_DEFAULT, 153 AUDIO_FLAG_NONE, ""}} 154 } 155 }, 156 } 157 }; 158 const engineConfig::VolumeGroups gSystemVolumeGroups = { 159 {"AUDIO_STREAM_REROUTING", 0, 1, 160 { 161 {"DEVICE_CATEGORY_SPEAKER", {{0,0}, {100, 0}}}, 162 {"DEVICE_CATEGORY_HEADSET", {{0,0}, {100, 0}}}, 163 {"DEVICE_CATEGORY_EARPIECE", {{0,0}, {100, 0}}}, 164 {"DEVICE_CATEGORY_EXT_MEDIA", {{0,0}, {100, 0}}}, 165 {"DEVICE_CATEGORY_HEARING_AID", {{0,0}, {100, 0}}}, 166 167 } 168 }, 169 {"AUDIO_STREAM_PATCH", 0, 1, 170 { 171 {"DEVICE_CATEGORY_SPEAKER", {{0,0}, {100, 0}}}, 172 {"DEVICE_CATEGORY_HEADSET", {{0,0}, {100, 0}}}, 173 {"DEVICE_CATEGORY_EARPIECE", {{0,0}, {100, 0}}}, 174 {"DEVICE_CATEGORY_EXT_MEDIA", {{0,0}, {100, 0}}}, 175 {"DEVICE_CATEGORY_HEARING_AID", {{0,0}, {100, 0}}}, 176 177 } 178 } 179 }; 180 181 const engineConfig::Config gDefaultEngineConfig = { 182 1.0, 183 gOrderedStrategies, 184 {}, 185 {}, 186 {} 187 }; 188 } // namespace android 189