• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2020 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 <limits>
20 #include <type_traits>
21 
22 #include <system/audio.h>
23 
24 #include <android/media/AudioAttributesInternal.h>
25 #include <android/media/AudioClient.h>
26 #include <android/media/AudioDirectMode.h>
27 #include <android/media/AudioDualMonoMode.h>
28 #include <android/media/AudioFlag.h>
29 #include <android/media/AudioIoConfigEvent.h>
30 #include <android/media/AudioIoDescriptor.h>
31 #include <android/media/AudioPlaybackRate.h>
32 #include <android/media/AudioPort.h>
33 #include <android/media/AudioPortConfig.h>
34 #include <android/media/AudioPortDeviceExtSys.h>
35 #include <android/media/AudioTimestampInternal.h>
36 #include <android/media/AudioUniqueIdUse.h>
37 #include <android/media/EffectDescriptor.h>
38 #include <android/media/LatencyMode.h>
39 #include <android/media/TrackSecondaryOutputInfo.h>
40 #include <android/media/audio/common/AudioChannelLayout.h>
41 #include <android/media/audio/common/AudioConfig.h>
42 #include <android/media/audio/common/AudioConfigBase.h>
43 #include <android/media/audio/common/AudioContentType.h>
44 #include <android/media/audio/common/AudioDeviceDescription.h>
45 #include <android/media/audio/common/AudioEncapsulationMetadataType.h>
46 #include <android/media/audio/common/AudioEncapsulationMode.h>
47 #include <android/media/audio/common/AudioEncapsulationType.h>
48 #include <android/media/audio/common/AudioFormatDescription.h>
49 #include <android/media/audio/common/AudioGain.h>
50 #include <android/media/audio/common/AudioGainConfig.h>
51 #include <android/media/audio/common/AudioGainMode.h>
52 #include <android/media/audio/common/AudioInputFlags.h>
53 #include <android/media/audio/common/AudioMode.h>
54 #include <android/media/audio/common/AudioOffloadInfo.h>
55 #include <android/media/audio/common/AudioOutputFlags.h>
56 #include <android/media/audio/common/AudioPortExt.h>
57 #include <android/media/audio/common/AudioPortMixExt.h>
58 #include <android/media/audio/common/AudioProfile.h>
59 #include <android/media/audio/common/AudioSource.h>
60 #include <android/media/audio/common/AudioStandard.h>
61 #include <android/media/audio/common/AudioUsage.h>
62 #include <android/media/audio/common/AudioUuid.h>
63 #include <android/media/audio/common/ExtraAudioDescriptor.h>
64 
65 #include <android/media/SharedFileRegion.h>
66 #include <binder/IMemory.h>
67 #include <media/AidlConversionUtil.h>
68 #include <media/AudioClient.h>
69 #include <media/AudioCommonTypes.h>
70 #include <media/AudioIoDescriptor.h>
71 #include <media/AudioTimestamp.h>
72 #include <system/audio_effect.h>
73 
74 namespace android {
75 
76 // maxSize is the size of the C-string buffer (including the 0-terminator), NOT the max length of
77 // the string.
78 status_t aidl2legacy_string(std::string_view aidl, char* dest, size_t maxSize);
79 ConversionResult<std::string> legacy2aidl_string(const char* legacy, size_t maxSize);
80 
81 ConversionResult<audio_module_handle_t> aidl2legacy_int32_t_audio_module_handle_t(int32_t aidl);
82 ConversionResult<int32_t> legacy2aidl_audio_module_handle_t_int32_t(audio_module_handle_t legacy);
83 
84 ConversionResult<audio_io_handle_t> aidl2legacy_int32_t_audio_io_handle_t(int32_t aidl);
85 ConversionResult<int32_t> legacy2aidl_audio_io_handle_t_int32_t(audio_io_handle_t legacy);
86 
87 ConversionResult<audio_port_handle_t> aidl2legacy_int32_t_audio_port_handle_t(int32_t aidl);
88 ConversionResult<int32_t> legacy2aidl_audio_port_handle_t_int32_t(audio_port_handle_t legacy);
89 
90 ConversionResult<audio_patch_handle_t> aidl2legacy_int32_t_audio_patch_handle_t(int32_t aidl);
91 ConversionResult<int32_t> legacy2aidl_audio_patch_handle_t_int32_t(audio_patch_handle_t legacy);
92 
93 ConversionResult<audio_unique_id_t> aidl2legacy_int32_t_audio_unique_id_t(int32_t aidl);
94 ConversionResult<int32_t> legacy2aidl_audio_unique_id_t_int32_t(audio_unique_id_t legacy);
95 
96 ConversionResult<audio_hw_sync_t> aidl2legacy_int32_t_audio_hw_sync_t(int32_t aidl);
97 ConversionResult<int32_t> legacy2aidl_audio_hw_sync_t_int32_t(audio_hw_sync_t legacy);
98 
99 ConversionResult<unsigned int> aidl2legacy_int32_t_config_mask(int32_t aidl);
100 ConversionResult<int32_t> legacy2aidl_config_mask_int32_t(unsigned int legacy);
101 
102 ConversionResult<pid_t> aidl2legacy_int32_t_pid_t(int32_t aidl);
103 ConversionResult<int32_t> legacy2aidl_pid_t_int32_t(pid_t legacy);
104 
105 ConversionResult<uid_t> aidl2legacy_int32_t_uid_t(int32_t aidl);
106 ConversionResult<int32_t> legacy2aidl_uid_t_int32_t(uid_t legacy);
107 
108 ConversionResult<String8> aidl2legacy_string_view_String8(std::string_view aidl);
109 ConversionResult<std::string> legacy2aidl_String8_string(const String8& legacy);
110 
111 ConversionResult<String16> aidl2legacy_string_view_String16(std::string_view aidl);
112 ConversionResult<std::string> legacy2aidl_String16_string(const String16& legacy);
113 
114 ConversionResult<std::optional<String16>>
115 aidl2legacy_optional_string_view_optional_String16(std::optional<std::string_view> aidl);
116 ConversionResult<std::optional<std::string_view>>
117 legacy2aidl_optional_String16_optional_string(std::optional<String16> legacy);
118 
119 ConversionResult<audio_io_config_event_t> aidl2legacy_AudioIoConfigEvent_audio_io_config_event_t(
120         media::AudioIoConfigEvent aidl);
121 ConversionResult<media::AudioIoConfigEvent> legacy2aidl_audio_io_config_event_t_AudioIoConfigEvent(
122         audio_io_config_event_t legacy);
123 
124 ConversionResult<audio_port_role_t> aidl2legacy_AudioPortRole_audio_port_role_t(
125         media::AudioPortRole aidl);
126 ConversionResult<media::AudioPortRole> legacy2aidl_audio_port_role_t_AudioPortRole(
127         audio_port_role_t legacy);
128 
129 ConversionResult<audio_port_type_t> aidl2legacy_AudioPortType_audio_port_type_t(
130         media::AudioPortType aidl);
131 ConversionResult<media::AudioPortType> legacy2aidl_audio_port_type_t_AudioPortType(
132         audio_port_type_t legacy);
133 
134 ConversionResult<audio_channel_mask_t> aidl2legacy_AudioChannelLayout_audio_channel_mask_t(
135         const media::audio::common::AudioChannelLayout& aidl, bool isInput);
136 ConversionResult<media::audio::common::AudioChannelLayout>
137 legacy2aidl_audio_channel_mask_t_AudioChannelLayout(audio_channel_mask_t legacy, bool isInput);
138 
139 ConversionResult<audio_devices_t> aidl2legacy_AudioDeviceDescription_audio_devices_t(
140         const media::audio::common::AudioDeviceDescription& aidl);
141 ConversionResult<media::audio::common::AudioDeviceDescription>
142 legacy2aidl_audio_devices_t_AudioDeviceDescription(audio_devices_t legacy);
143 
144 status_t aidl2legacy_AudioDevice_audio_device(
145         const media::audio::common::AudioDevice& aidl,
146         audio_devices_t* legacyType, char* legacyAddress);
147 status_t aidl2legacy_AudioDevice_audio_device(
148         const media::audio::common::AudioDevice& aidl,
149         audio_devices_t* legacyType, String8* legacyAddress);
150 status_t aidl2legacy_AudioDevice_audio_device(
151         const media::audio::common::AudioDevice& aidl,
152         audio_devices_t* legacyType, std::string* legacyAddress);
153 ConversionResult<media::audio::common::AudioDevice>
154 legacy2aidl_audio_device_AudioDevice(
155         audio_devices_t legacyType, const char* legacyAddress);
156 ConversionResult<media::audio::common::AudioDevice>
157 legacy2aidl_audio_device_AudioDevice(
158         audio_devices_t legacyType, const String8& legacyAddress);
159 
160 ConversionResult<audio_format_t> aidl2legacy_AudioFormatDescription_audio_format_t(
161         const media::audio::common::AudioFormatDescription& aidl);
162 ConversionResult<media::audio::common::AudioFormatDescription>
163 legacy2aidl_audio_format_t_AudioFormatDescription(audio_format_t legacy);
164 
165 ConversionResult<audio_gain_mode_t>
166 aidl2legacy_AudioGainMode_audio_gain_mode_t(media::audio::common::AudioGainMode aidl);
167 ConversionResult<media::audio::common::AudioGainMode>
168 legacy2aidl_audio_gain_mode_t_AudioGainMode(audio_gain_mode_t legacy);
169 
170 ConversionResult<audio_gain_mode_t> aidl2legacy_int32_t_audio_gain_mode_t_mask(int32_t aidl);
171 ConversionResult<int32_t> legacy2aidl_audio_gain_mode_t_int32_t_mask(audio_gain_mode_t legacy);
172 
173 ConversionResult<audio_gain_config> aidl2legacy_AudioGainConfig_audio_gain_config(
174         const media::audio::common::AudioGainConfig& aidl, bool isInput);
175 ConversionResult<media::audio::common::AudioGainConfig>
176 legacy2aidl_audio_gain_config_AudioGainConfig(const audio_gain_config& legacy, bool isInput);
177 
178 ConversionResult<audio_input_flags_t>
179 aidl2legacy_AudioInputFlags_audio_input_flags_t(media::audio::common::AudioInputFlags aidl);
180 ConversionResult<media::audio::common::AudioInputFlags>
181 legacy2aidl_audio_input_flags_t_AudioInputFlags(audio_input_flags_t legacy);
182 
183 ConversionResult<audio_output_flags_t>
184 aidl2legacy_AudioOutputFlags_audio_output_flags_t(media::audio::common::AudioOutputFlags aidl);
185 ConversionResult<media::audio::common::AudioOutputFlags>
186 legacy2aidl_audio_output_flags_t_AudioOutputFlags(audio_output_flags_t legacy);
187 
188 ConversionResult<audio_input_flags_t> aidl2legacy_int32_t_audio_input_flags_t_mask(
189         int32_t aidl);
190 ConversionResult<int32_t> legacy2aidl_audio_input_flags_t_int32_t_mask(
191         audio_input_flags_t legacy);
192 
193 ConversionResult<audio_output_flags_t> aidl2legacy_int32_t_audio_output_flags_t_mask(
194         int32_t aidl);
195 ConversionResult<int32_t> legacy2aidl_audio_output_flags_t_int32_t_mask(
196         audio_output_flags_t legacy);
197 
198 ConversionResult<audio_io_flags> aidl2legacy_AudioIoFlags_audio_io_flags(
199         const media::audio::common::AudioIoFlags& aidl, bool isInput);
200 ConversionResult<media::audio::common::AudioIoFlags> legacy2aidl_audio_io_flags_AudioIoFlags(
201         const audio_io_flags& legacy, bool isInput);
202 
203 ConversionResult<audio_port_config_device_ext>
204 aidl2legacy_AudioPortDeviceExt_audio_port_config_device_ext(
205         const media::audio::common::AudioPortDeviceExt& aidl,
206         const media::AudioPortDeviceExtSys& aidlDeviceExt);
207 status_t legacy2aidl_audio_port_config_device_ext_AudioPortDeviceExt(
208         const audio_port_config_device_ext& legacy,
209         media::audio::common::AudioPortDeviceExt* aidl,
210         media::AudioPortDeviceExtSys* aidlDeviceExt);
211 
212 ConversionResult<audio_stream_type_t> aidl2legacy_AudioStreamType_audio_stream_type_t(
213         media::audio::common::AudioStreamType aidl);
214 ConversionResult<media::audio::common::AudioStreamType>
215 legacy2aidl_audio_stream_type_t_AudioStreamType(audio_stream_type_t legacy);
216 
217 ConversionResult<audio_source_t> aidl2legacy_AudioSource_audio_source_t(
218         media::audio::common::AudioSource aidl);
219 ConversionResult<media::audio::common::AudioSource>
220         legacy2aidl_audio_source_t_AudioSource(
221         audio_source_t legacy);
222 
223 ConversionResult<audio_session_t> aidl2legacy_int32_t_audio_session_t(int32_t aidl);
224 ConversionResult<int32_t> legacy2aidl_audio_session_t_int32_t(audio_session_t legacy);
225 
226 ConversionResult<audio_port_config_mix_ext> aidl2legacy_AudioPortMixExt(
227         const media::audio::common::AudioPortMixExt& aidl, media::AudioPortRole role,
228         const media::AudioPortMixExtSys& aidlMixExt);
229 status_t legacy2aidl_AudioPortMixExt(
230         const audio_port_config_mix_ext& legacy, audio_port_role_t role,
231         media::audio::common::AudioPortMixExt* aidl, media::AudioPortMixExtSys* aidlMixExt);
232 
233 ConversionResult<audio_port_config_session_ext>
234 aidl2legacy_int32_t_audio_port_config_session_ext(int32_t aidl);
235 ConversionResult<int32_t> legacy2aidl_audio_port_config_session_ext_AudioPortConfigSessionExt(
236         const audio_port_config_session_ext& legacy);
237 
238 ConversionResult<audio_port_config> aidl2legacy_AudioPortConfig_audio_port_config(
239         const media::AudioPortConfig& aidl);
240 ConversionResult<media::AudioPortConfig> legacy2aidl_audio_port_config_AudioPortConfig(
241         const audio_port_config& legacy);
242 
243 ConversionResult<struct audio_patch> aidl2legacy_AudioPatch_audio_patch(
244         const media::AudioPatch& aidl);
245 ConversionResult<media::AudioPatch> legacy2aidl_audio_patch_AudioPatch(
246         const struct audio_patch& legacy);
247 
248 ConversionResult<sp<AudioIoDescriptor>> aidl2legacy_AudioIoDescriptor_AudioIoDescriptor(
249         const media::AudioIoDescriptor& aidl);
250 ConversionResult<media::AudioIoDescriptor> legacy2aidl_AudioIoDescriptor_AudioIoDescriptor(
251         const sp<AudioIoDescriptor>& legacy);
252 
253 ConversionResult<AudioClient> aidl2legacy_AudioClient_AudioClient(
254         const media::AudioClient& aidl);
255 ConversionResult<media::AudioClient> legacy2aidl_AudioClient_AudioClient(
256         const AudioClient& legacy);
257 
258 ConversionResult<audio_content_type_t>
259 aidl2legacy_AudioContentType_audio_content_type_t(
260         media::audio::common::AudioContentType aidl);
261 ConversionResult<media::audio::common::AudioContentType>
262 legacy2aidl_audio_content_type_t_AudioContentType(audio_content_type_t legacy);
263 
264 ConversionResult<audio_usage_t>
265 aidl2legacy_AudioUsage_audio_usage_t(media::audio::common::AudioUsage aidl);
266 ConversionResult<media::audio::common::AudioUsage>
267 legacy2aidl_audio_usage_t_AudioUsage(audio_usage_t legacy);
268 
269 ConversionResult<audio_flags_mask_t>
270 aidl2legacy_AudioFlag_audio_flags_mask_t(media::AudioFlag aidl);
271 ConversionResult<media::AudioFlag>
272 legacy2aidl_audio_flags_mask_t_AudioFlag(audio_flags_mask_t legacy);
273 
274 ConversionResult<audio_flags_mask_t>
275 aidl2legacy_int32_t_audio_flags_mask_t_mask(int32_t aidl);
276 ConversionResult<int32_t>
277 legacy2aidl_audio_flags_mask_t_int32_t_mask(audio_flags_mask_t legacy);
278 
279 ConversionResult<audio_attributes_t>
280 aidl2legacy_AudioAttributesInternal_audio_attributes_t(const media::AudioAttributesInternal& aidl);
281 ConversionResult<media::AudioAttributesInternal>
282 legacy2aidl_audio_attributes_t_AudioAttributesInternal(const audio_attributes_t& legacy);
283 
284 ConversionResult<audio_encapsulation_mode_t>
285 aidl2legacy_AudioEncapsulationMode_audio_encapsulation_mode_t(
286         media::audio::common::AudioEncapsulationMode aidl);
287 ConversionResult<media::audio::common::AudioEncapsulationMode>
288 legacy2aidl_audio_encapsulation_mode_t_AudioEncapsulationMode(audio_encapsulation_mode_t legacy);
289 
290 ConversionResult<audio_offload_info_t>
291 aidl2legacy_AudioOffloadInfo_audio_offload_info_t(
292         const media::audio::common::AudioOffloadInfo& aidl);
293 ConversionResult<media::audio::common::AudioOffloadInfo>
294 legacy2aidl_audio_offload_info_t_AudioOffloadInfo(const audio_offload_info_t& legacy);
295 
296 ConversionResult<audio_config_t>
297 aidl2legacy_AudioConfig_audio_config_t(const media::audio::common::AudioConfig& aidl, bool isInput);
298 ConversionResult<media::audio::common::AudioConfig>
299 legacy2aidl_audio_config_t_AudioConfig(const audio_config_t& legacy, bool isInput);
300 
301 ConversionResult<audio_config_base_t>
302 aidl2legacy_AudioConfigBase_audio_config_base_t(
303         const media::audio::common::AudioConfigBase& aidl, bool isInput);
304 ConversionResult<media::audio::common::AudioConfigBase>
305 legacy2aidl_audio_config_base_t_AudioConfigBase(const audio_config_base_t& legacy, bool isInput);
306 
307 ConversionResult<sp<IMemory>>
308 aidl2legacy_SharedFileRegion_IMemory(const media::SharedFileRegion& aidl);
309 ConversionResult<media::SharedFileRegion>
310 legacy2aidl_IMemory_SharedFileRegion(const sp<IMemory>& legacy);
311 
312 ConversionResult<sp<IMemory>>
313 aidl2legacy_NullableSharedFileRegion_IMemory(const std::optional<media::SharedFileRegion>& aidl);
314 ConversionResult<std::optional<media::SharedFileRegion>>
315 legacy2aidl_NullableIMemory_SharedFileRegion(const sp<IMemory>& legacy);
316 
317 ConversionResult<AudioTimestamp>
318 aidl2legacy_AudioTimestampInternal_AudioTimestamp(const media::AudioTimestampInternal& aidl);
319 ConversionResult<media::AudioTimestampInternal>
320 legacy2aidl_AudioTimestamp_AudioTimestampInternal(const AudioTimestamp& legacy);
321 
322 ConversionResult<audio_uuid_t>
323 aidl2legacy_AudioUuid_audio_uuid_t(const media::audio::common::AudioUuid& aidl);
324 ConversionResult<media::audio::common::AudioUuid>
325 legacy2aidl_audio_uuid_t_AudioUuid(const audio_uuid_t& legacy);
326 
327 ConversionResult<effect_descriptor_t>
328 aidl2legacy_EffectDescriptor_effect_descriptor_t(const media::EffectDescriptor& aidl);
329 ConversionResult<media::EffectDescriptor>
330 legacy2aidl_effect_descriptor_t_EffectDescriptor(const effect_descriptor_t& legacy);
331 
332 ConversionResult<audio_encapsulation_metadata_type_t>
333 aidl2legacy_AudioEncapsulationMetadataType_audio_encapsulation_metadata_type_t(
334         media::audio::common::AudioEncapsulationMetadataType aidl);
335 ConversionResult<media::audio::common::AudioEncapsulationMetadataType>
336 legacy2aidl_audio_encapsulation_metadata_type_t_AudioEncapsulationMetadataType(
337         audio_encapsulation_metadata_type_t legacy);
338 
339 ConversionResult<uint32_t>
340 aidl2legacy_AudioEncapsulationMode_mask(int32_t aidl);
341 ConversionResult<int32_t>
342 legacy2aidl_AudioEncapsulationMode_mask(uint32_t legacy);
343 
344 ConversionResult<uint32_t>
345 aidl2legacy_AudioEncapsulationMetadataType_mask(int32_t aidl);
346 ConversionResult<int32_t>
347 legacy2aidl_AudioEncapsulationMetadataType_mask(uint32_t legacy);
348 
349 ConversionResult<audio_port_device_ext>
350 aidl2legacy_AudioPortDeviceExt_audio_port_device_ext(
351         const media::audio::common::AudioPortDeviceExt& aidl,
352         const media::AudioPortDeviceExtSys& aidlDeviceExt);
353 status_t legacy2aidl_audio_port_device_ext_AudioPortDeviceExt(
354         const audio_port_device_ext& legacy,
355         media::audio::common::AudioPortDeviceExt* aidl,
356         media::AudioPortDeviceExtSys* aidlDeviceExt);
357 
358 ConversionResult<audio_port_mix_ext>
359 aidl2legacy_AudioPortMixExt_audio_port_mix_ext(
360         const media::audio::common::AudioPortMixExt& aidl,
361         const media::AudioPortMixExtSys& aidlMixExt);
362 status_t legacy2aidl_audio_port_mix_ext_AudioPortMixExt(
363         const audio_port_mix_ext& legacy,
364         media::audio::common::AudioPortMixExt* aidl,
365         media::AudioPortMixExtSys* aidlMixExt);
366 
367 ConversionResult<audio_port_session_ext>
368 aidl2legacy_int32_t_audio_port_session_ext(int32_t aidl);
369 ConversionResult<int32_t>
370 legacy2aidl_audio_port_session_ext_int32_t(const audio_port_session_ext& legacy);
371 
372 ConversionResult<audio_profile>
373 aidl2legacy_AudioProfile_audio_profile(
374         const media::audio::common::AudioProfile& aidl, bool isInput);
375 ConversionResult<media::audio::common::AudioProfile>
376 legacy2aidl_audio_profile_AudioProfile(const audio_profile& legacy, bool isInput);
377 
378 ConversionResult<audio_gain>
379 aidl2legacy_AudioGain_audio_gain(const media::audio::common::AudioGain& aidl, bool isInput);
380 ConversionResult<media::audio::common::AudioGain>
381 legacy2aidl_audio_gain_AudioGain(const audio_gain& legacy, bool isInput);
382 
383 ConversionResult<audio_port_v7>
384 aidl2legacy_AudioPort_audio_port_v7(const media::AudioPort& aidl);
385 ConversionResult<media::AudioPort>
386 legacy2aidl_audio_port_v7_AudioPort(const audio_port_v7& legacy);
387 
388 ConversionResult<audio_mode_t>
389 aidl2legacy_AudioMode_audio_mode_t(media::audio::common::AudioMode aidl);
390 ConversionResult<media::audio::common::AudioMode>
391 legacy2aidl_audio_mode_t_AudioMode(audio_mode_t legacy);
392 
393 ConversionResult<audio_unique_id_use_t>
394 aidl2legacy_AudioUniqueIdUse_audio_unique_id_use_t(media::AudioUniqueIdUse aidl);
395 ConversionResult<media::AudioUniqueIdUse>
396 legacy2aidl_audio_unique_id_use_t_AudioUniqueIdUse(audio_unique_id_use_t legacy);
397 
398 ConversionResult<volume_group_t>
399 aidl2legacy_int32_t_volume_group_t(int32_t aidl);
400 ConversionResult<int32_t>
401 legacy2aidl_volume_group_t_int32_t(volume_group_t legacy);
402 
403 ConversionResult<audio_dual_mono_mode_t>
404 aidl2legacy_AudioDualMonoMode_audio_dual_mono_mode_t(media::AudioDualMonoMode aidl);
405 ConversionResult<media::AudioDualMonoMode>
406 legacy2aidl_audio_dual_mono_mode_t_AudioDualMonoMode(audio_dual_mono_mode_t legacy);
407 
408 ConversionResult<audio_timestretch_fallback_mode_t>
409 aidl2legacy_int32_t_audio_timestretch_fallback_mode_t(int32_t aidl);
410 ConversionResult<int32_t>
411 legacy2aidl_audio_timestretch_fallback_mode_t_int32_t(audio_timestretch_fallback_mode_t legacy);
412 
413 ConversionResult<audio_timestretch_stretch_mode_t>
414 aidl2legacy_int32_t_audio_timestretch_stretch_mode_t(int32_t aidl);
415 ConversionResult<int32_t>
416 legacy2aidl_audio_timestretch_stretch_mode_t_int32_t(audio_timestretch_stretch_mode_t legacy);
417 
418 ConversionResult<audio_playback_rate_t>
419 aidl2legacy_AudioPlaybackRate_audio_playback_rate_t(const media::AudioPlaybackRate& aidl);
420 ConversionResult<media::AudioPlaybackRate>
421 legacy2aidl_audio_playback_rate_t_AudioPlaybackRate(const audio_playback_rate_t& legacy);
422 
423 ConversionResult<audio_standard_t>
424 aidl2legacy_AudioStandard_audio_standard_t(media::audio::common::AudioStandard aidl);
425 ConversionResult<media::audio::common::AudioStandard>
426 legacy2aidl_audio_standard_t_AudioStandard(audio_standard_t legacy);
427 
428 ConversionResult<audio_extra_audio_descriptor>
429 aidl2legacy_ExtraAudioDescriptor_audio_extra_audio_descriptor(
430         const media::audio::common::ExtraAudioDescriptor& aidl);
431 ConversionResult<media::audio::common::ExtraAudioDescriptor>
432 legacy2aidl_audio_extra_audio_descriptor_ExtraAudioDescriptor(
433         const audio_extra_audio_descriptor& legacy);
434 
435 ConversionResult<audio_encapsulation_type_t>
436 aidl2legacy_AudioEncapsulationType_audio_encapsulation_type_t(
437         const media::audio::common::AudioEncapsulationType& aidl);
438 ConversionResult<media::audio::common::AudioEncapsulationType>
439 legacy2aidl_audio_encapsulation_type_t_AudioEncapsulationType(
440         const audio_encapsulation_type_t & legacy);
441 
442 using TrackSecondaryOutputInfoPair = std::pair<audio_port_handle_t, std::vector<audio_io_handle_t>>;
443 ConversionResult<TrackSecondaryOutputInfoPair>
444 aidl2legacy_TrackSecondaryOutputInfo_TrackSecondaryOutputInfoPair(
445         const media::TrackSecondaryOutputInfo& aidl);
446 ConversionResult<media::TrackSecondaryOutputInfo>
447 legacy2aidl_TrackSecondaryOutputInfoPair_TrackSecondaryOutputInfo(
448         const TrackSecondaryOutputInfoPair& legacy);
449 
450 ConversionResult<audio_direct_mode_t>
451 aidl2legacy_AudioDirectMode_audio_direct_mode_t(media::AudioDirectMode aidl);
452 ConversionResult<media::AudioDirectMode>
453 legacy2aidl_audio_direct_mode_t_AudioDirectMode(audio_direct_mode_t legacy);
454 
455 ConversionResult<audio_direct_mode_t> aidl2legacy_int32_t_audio_direct_mode_t_mask(int32_t aidl);
456 ConversionResult<int32_t> legacy2aidl_audio_direct_mode_t_int32_t_mask(audio_direct_mode_t legacy);
457 
458 ConversionResult<audio_latency_mode_t>
459 aidl2legacy_LatencyMode_audio_latency_mode_t(media::LatencyMode aidl);
460 ConversionResult<media::LatencyMode>
461 legacy2aidl_audio_latency_mode_t_LatencyMode(audio_latency_mode_t legacy);
462 
463 }  // namespace android
464