• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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