audio: Move Microphone[Dynamic]Info structs from core

These parcelables are also used by the framework.

Bug: 263964254
Test: atest VtsHalAudioCoreTargetTest
Change-Id: Ib30b69c325040e474fb58a8e7e515912fccab4c7
This commit is contained in:
Mikhail Naganov
2023-02-09 17:52:50 -08:00
parent b7f2a3c682
commit babb544319
22 changed files with 45 additions and 350 deletions

View File

@@ -120,8 +120,6 @@ aidl_interface {
"android/hardware/audio/core/IStreamOut.aidl",
"android/hardware/audio/core/IStreamOutEventCallback.aidl",
"android/hardware/audio/core/ITelephony.aidl",
"android/hardware/audio/core/MicrophoneDynamicInfo.aidl",
"android/hardware/audio/core/MicrophoneInfo.aidl",
"android/hardware/audio/core/MmapBufferDescriptor.aidl",
"android/hardware/audio/core/ModuleDebug.aidl",
"android/hardware/audio/core/StreamDescriptor.aidl",

View File

@@ -58,7 +58,7 @@ interface IModule {
void setMasterVolume(float volume);
boolean getMicMute();
void setMicMute(boolean mute);
android.hardware.audio.core.MicrophoneInfo[] getMicrophones();
android.media.audio.common.MicrophoneInfo[] getMicrophones();
void updateAudioMode(android.media.audio.common.AudioMode mode);
void updateScreenRotation(android.hardware.audio.core.IModule.ScreenRotation rotation);
void updateScreenState(boolean isTurnedOn);

View File

@@ -35,7 +35,7 @@ package android.hardware.audio.core;
@VintfStability
interface IStreamIn {
android.hardware.audio.core.IStreamCommon getStreamCommon();
android.hardware.audio.core.MicrophoneDynamicInfo[] getActiveMicrophones();
android.media.audio.common.MicrophoneDynamicInfo[] getActiveMicrophones();
android.hardware.audio.core.IStreamIn.MicrophoneDirection getMicrophoneDirection();
void setMicrophoneDirection(android.hardware.audio.core.IStreamIn.MicrophoneDirection direction);
float getMicrophoneFieldDimension();
@@ -43,7 +43,7 @@ interface IStreamIn {
void updateMetadata(in android.hardware.audio.common.SinkMetadata sinkMetadata);
float[] getHwGain();
void setHwGain(in float[] channelGains);
const int MIC_FIELD_DIMENSION_WIDE_ANGLE = (-1);
const int MIC_FIELD_DIMENSION_WIDE_ANGLE = (-1) /* -1 */;
const int MIC_FIELD_DIMENSION_NO_ZOOM = 0;
const int MIC_FIELD_DIMENSION_MAX_ZOOM = 1;
const int HW_GAIN_MIN = 0;

View File

@@ -46,7 +46,7 @@ interface ITelephony {
const int VOICE_VOLUME_MAX = 1;
@Backing(type="int") @VintfStability
enum TtyMode {
UNSPECIFIED = (-1),
UNSPECIFIED = (-1) /* -1 */,
OFF = 0,
FULL = 1,
HCO = 2,

View File

@@ -1,45 +0,0 @@
/*
* Copyright (C) 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
///////////////////////////////////////////////////////////////////////////////
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
// the interface (from the latest frozen version), the build system will
// prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.
package android.hardware.audio.core;
@JavaDerive(equals=true, toString=true) @VintfStability
parcelable MicrophoneDynamicInfo {
@utf8InCpp String id;
android.hardware.audio.core.MicrophoneDynamicInfo.ChannelMapping[] channelMapping;
@Backing(type="int") @VintfStability
enum ChannelMapping {
UNUSED = 0,
DIRECT = 1,
PROCESSED = 2,
}
}

View File

@@ -1,82 +0,0 @@
/*
* Copyright (C) 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
///////////////////////////////////////////////////////////////////////////////
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
// the interface (from the latest frozen version), the build system will
// prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.
package android.hardware.audio.core;
@JavaDerive(equals=true, toString=true) @VintfStability
parcelable MicrophoneInfo {
@utf8InCpp String id;
android.media.audio.common.AudioDevice device;
android.hardware.audio.core.MicrophoneInfo.Location location = android.hardware.audio.core.MicrophoneInfo.Location.UNKNOWN;
int group = GROUP_UNKNOWN;
int indexInTheGroup = INDEX_IN_THE_GROUP_UNKNOWN;
@nullable android.hardware.audio.core.MicrophoneInfo.Sensitivity sensitivity;
android.hardware.audio.core.MicrophoneInfo.Directionality directionality = android.hardware.audio.core.MicrophoneInfo.Directionality.UNKNOWN;
android.hardware.audio.core.MicrophoneInfo.FrequencyResponsePoint[] frequencyResponse;
@nullable android.hardware.audio.core.MicrophoneInfo.Coordinate position;
@nullable android.hardware.audio.core.MicrophoneInfo.Coordinate orientation;
const int GROUP_UNKNOWN = (-1);
const int INDEX_IN_THE_GROUP_UNKNOWN = (-1);
@Backing(type="int") @VintfStability
enum Location {
UNKNOWN = 0,
MAINBODY = 1,
MAINBODY_MOVABLE = 2,
PERIPHERAL = 3,
}
@VintfStability
parcelable Sensitivity {
float leveldBFS;
float maxSpldB;
float minSpldB;
}
@Backing(type="int") @VintfStability
enum Directionality {
UNKNOWN = 0,
OMNI = 1,
BI_DIRECTIONAL = 2,
CARDIOID = 3,
HYPER_CARDIOID = 4,
SUPER_CARDIOID = 5,
}
@VintfStability
parcelable FrequencyResponsePoint {
float frequencyHz;
float leveldB;
}
@VintfStability
parcelable Coordinate {
float x;
float y;
float z;
}
}

View File

@@ -39,12 +39,12 @@ parcelable StreamDescriptor {
int frameSizeBytes;
long bufferSizeFrames;
android.hardware.audio.core.StreamDescriptor.AudioBuffer audio;
const int LATENCY_UNKNOWN = (-1);
const int LATENCY_UNKNOWN = (-1) /* -1 */;
@FixedSize @VintfStability
parcelable Position {
long frames = UNKNOWN;
long timeNs = UNKNOWN;
const long UNKNOWN = (-1);
long frames = UNKNOWN /* -1 */;
long timeNs = UNKNOWN /* -1 */;
const long UNKNOWN = (-1) /* -1 */;
}
@Backing(type="int") @VintfStability
enum State {

View File

@@ -26,7 +26,6 @@ import android.hardware.audio.core.IStreamIn;
import android.hardware.audio.core.IStreamOut;
import android.hardware.audio.core.IStreamOutEventCallback;
import android.hardware.audio.core.ITelephony;
import android.hardware.audio.core.MicrophoneInfo;
import android.hardware.audio.core.ModuleDebug;
import android.hardware.audio.core.StreamDescriptor;
import android.hardware.audio.core.VendorParameter;
@@ -39,6 +38,7 @@ import android.media.audio.common.AudioOffloadInfo;
import android.media.audio.common.AudioPort;
import android.media.audio.common.AudioPortConfig;
import android.media.audio.common.Float;
import android.media.audio.common.MicrophoneInfo;
/**
* Each instance of IModule corresponds to a separate audio module. The system

View File

@@ -18,7 +18,7 @@ package android.hardware.audio.core;
import android.hardware.audio.common.SinkMetadata;
import android.hardware.audio.core.IStreamCommon;
import android.hardware.audio.core.MicrophoneDynamicInfo;
import android.media.audio.common.MicrophoneDynamicInfo;
/**
* This interface provides means for receiving audio data from input devices.

View File

@@ -1,48 +0,0 @@
/*
* Copyright (C) 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hardware.audio.core;
/**
* Structure providing dynamic information on a microphone. This information
* changes between recording sessions.
*/
@JavaDerive(equals=true, toString=true)
@VintfStability
parcelable MicrophoneDynamicInfo {
/**
* Unique alphanumeric id for the microphone. It must match the id of one of
* the 'MicrophoneInfo' entries returned by 'IModule.getMicrophones'.
*/
@utf8InCpp String id;
@VintfStability
@Backing(type="int")
enum ChannelMapping {
/** Channel not used. */
UNUSED = 0,
/** Channel is used and the signal is not processed. */
DIRECT = 1,
/** Channel is used and the signal has some processing. */
PROCESSED = 2,
}
/**
* The vector is indexes by zero-based channels of the microphone, thus the
* element '0' corresponds to the first channel, '1' is the second, etc. The
* vector must contain at least 1 element.
*/
ChannelMapping[] channelMapping;
}

View File

@@ -1,146 +0,0 @@
/*
* Copyright (C) 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hardware.audio.core;
import android.media.audio.common.AudioDevice;
/**
* Structure providing static information on a microphone. This information
* never changes during the lifetime of the IModule which owns the microphone.
* The information presented in this structure indicates the location and
* orientation of the microphone on the device as well as useful information
* like frequency response and sensitivity.
*/
@JavaDerive(equals=true, toString=true)
@VintfStability
parcelable MicrophoneInfo {
/**
* Unique alphanumeric id for the microphone. It must remain the same across
* device reboots. The client must never attempt to parse the value of this
* field.
*/
@utf8InCpp String id;
/**
* Describes the location of the microphone in terms of managed audio devices.
*/
AudioDevice device;
@VintfStability
@Backing(type="int")
enum Location {
/** Microphone location is unknown. */
UNKNOWN = 0,
/** The microphone is located on the main body of the device. */
MAINBODY = 1,
/** The microphone is located on a movable main body of the device. */
MAINBODY_MOVABLE = 2,
/** The microphone is located on a peripheral. */
PERIPHERAL = 3,
}
/** Location of the microphone in regard to the body of the device */
Location location = Location.UNKNOWN;
/**
* This value is used when the group of the microphone is unknown.
*/
const int GROUP_UNKNOWN = -1;
/**
* An identifier to group related microphones together, for example,
* microphones of a microphone array should all belong to the same group.
* Note that microphones assigned to 'GROUP_UNKNOWN' do not form a group.
*/
int group = GROUP_UNKNOWN;
/**
* This value is used when the index in the group of the microphone is
* unknown.
*/
const int INDEX_IN_THE_GROUP_UNKNOWN = -1;
/**
* Index of this microphone within the group. The pair (group, index) must
* be unique within the same HAL module, except the pair
* (GROUP_UNKNOWN, INDEX_IN_THE_GROUP_UNKNOWN).
*/
int indexInTheGroup = INDEX_IN_THE_GROUP_UNKNOWN;
@VintfStability
parcelable Sensitivity {
/** Level in dBFS produced by a 1000 Hz tone at 94 dB SPL. */
float leveldBFS;
/** Level in dB of the max SPL supported at 1000 Hz */
float maxSpldB;
/** Level in dB of the min SPL supported at 1000 Hz */
float minSpldB;
}
/**
* If provided, must describe acceptable sound pressure levels (SPL)
* for a 1 kHz sine wave, and the resulting level in dBFS.
*/
@nullable Sensitivity sensitivity;
@VintfStability
@Backing(type="int")
enum Directionality {
UNKNOWN = 0,
OMNI = 1,
BI_DIRECTIONAL = 2,
CARDIOID = 3,
HYPER_CARDIOID = 4,
SUPER_CARDIOID = 5,
}
/**
* The standard polar pattern of the microphone.
*/
Directionality directionality = Directionality.UNKNOWN;
/**
* A (frequency, level) pair. Used to represent frequency response.
*/
@VintfStability
parcelable FrequencyResponsePoint {
float frequencyHz;
float leveldB;
}
/**
* Vector with ordered frequency responses (from low to high frequencies)
* with the frequency response of the microphone. Levels are in dB,
* relative to level at 1000 Hz.
*/
FrequencyResponsePoint[] frequencyResponse;
/**
* A 3D point used to represent position or orientation of a microphone.
*/
@VintfStability
parcelable Coordinate {
float x;
float y;
float z;
}
/**
* If provided, must specify distances of the microphone's capsule, in
* meters, from the bottom-left-back corner of the bounding box of device in
* its natural orientation (PORTRAIT for phones, LANDSCAPE for tablets, TVs,
* etc).
*/
@nullable Coordinate position;
/**
* If provided, describes the normalized point which defines the main
* orientation of the microphone's capsule.
* Magnitude = sqrt(x^2 + y^2 + z^2) = 1.
*/
@nullable Coordinate orientation;
}

View File

@@ -40,6 +40,7 @@ using aidl::android::media::audio::common::AudioPortExt;
using aidl::android::media::audio::common::AudioPortMixExt;
using aidl::android::media::audio::common::AudioProfile;
using aidl::android::media::audio::common::Int;
using aidl::android::media::audio::common::MicrophoneInfo;
using aidl::android::media::audio::common::PcmType;
using android::hardware::audio::common::makeBitPositionFlagMask;

View File

@@ -55,6 +55,7 @@ using aidl::android::media::audio::common::AudioPortExt;
using aidl::android::media::audio::common::AudioProfile;
using aidl::android::media::audio::common::Boolean;
using aidl::android::media::audio::common::Int;
using aidl::android::media::audio::common::MicrophoneInfo;
using aidl::android::media::audio::common::PcmType;
using android::hardware::audio::common::getFrameSizeInBytes;
using android::hardware::audio::common::isBitPositionFlagSet;

View File

@@ -31,6 +31,8 @@ using aidl::android::media::audio::common::AudioDualMonoMode;
using aidl::android::media::audio::common::AudioLatencyMode;
using aidl::android::media::audio::common::AudioOffloadInfo;
using aidl::android::media::audio::common::AudioPlaybackRate;
using aidl::android::media::audio::common::MicrophoneDynamicInfo;
using aidl::android::media::audio::common::MicrophoneInfo;
using android::hardware::audio::common::getChannelCount;
using android::hardware::audio::common::getFrameSizeInBytes;

View File

@@ -24,6 +24,7 @@ using aidl::android::hardware::audio::common::SinkMetadata;
using aidl::android::hardware::audio::common::SourceMetadata;
using aidl::android::media::audio::common::AudioDevice;
using aidl::android::media::audio::common::AudioOffloadInfo;
using aidl::android::media::audio::common::MicrophoneInfo;
namespace aidl::android::hardware::audio::core {

View File

@@ -22,14 +22,14 @@
#include <aidl/android/hardware/audio/core/AudioPatch.h>
#include <aidl/android/hardware/audio/core/AudioRoute.h>
#include <aidl/android/hardware/audio/core/MicrophoneInfo.h>
#include <aidl/android/media/audio/common/AudioPort.h>
#include <aidl/android/media/audio/common/AudioPortConfig.h>
#include <aidl/android/media/audio/common/MicrophoneInfo.h>
namespace aidl::android::hardware::audio::core::internal {
struct Configuration {
std::vector<MicrophoneInfo> microphones;
std::vector<::aidl::android::media::audio::common::MicrophoneInfo> microphones;
std::vector<::aidl::android::media::audio::common::AudioPort> ports;
std::vector<::aidl::android::media::audio::common::AudioPortConfig> portConfigs;
std::vector<::aidl::android::media::audio::common::AudioPortConfig> initialConfigs;

View File

@@ -94,7 +94,9 @@ class Module : public BnModule {
ndk::ScopedAStatus setMasterVolume(float in_volume) override;
ndk::ScopedAStatus getMicMute(bool* _aidl_return) override;
ndk::ScopedAStatus setMicMute(bool in_mute) override;
ndk::ScopedAStatus getMicrophones(std::vector<MicrophoneInfo>* _aidl_return) override;
ndk::ScopedAStatus getMicrophones(
std::vector<::aidl::android::media::audio::common::MicrophoneInfo>* _aidl_return)
override;
ndk::ScopedAStatus updateAudioMode(
::aidl::android::media::audio::common::AudioMode in_mode) override;
ndk::ScopedAStatus updateScreenRotation(

View File

@@ -32,10 +32,10 @@
#include <aidl/android/hardware/audio/core/BnStreamOut.h>
#include <aidl/android/hardware/audio/core/IStreamCallback.h>
#include <aidl/android/hardware/audio/core/IStreamOutEventCallback.h>
#include <aidl/android/hardware/audio/core/MicrophoneInfo.h>
#include <aidl/android/hardware/audio/core/StreamDescriptor.h>
#include <aidl/android/media/audio/common/AudioDevice.h>
#include <aidl/android/media/audio/common/AudioOffloadInfo.h>
#include <aidl/android/media/audio/common/MicrophoneInfo.h>
#include <fmq/AidlMessageQueue.h>
#include <system/thread_defs.h>
#include <utils/Errors.h>
@@ -413,7 +413,8 @@ class StreamIn : public StreamCommonImpl<::aidl::android::hardware::audio::commo
getStreamCommon(_aidl_return);
}
ndk::ScopedAStatus getActiveMicrophones(
std::vector<MicrophoneDynamicInfo>* _aidl_return) override;
std::vector<::aidl::android::media::audio::common::MicrophoneDynamicInfo>* _aidl_return)
override;
ndk::ScopedAStatus getMicrophoneDirection(MicrophoneDirection* _aidl_return) override;
ndk::ScopedAStatus setMicrophoneDirection(MicrophoneDirection in_direction) override;
ndk::ScopedAStatus getMicrophoneFieldDimension(float* _aidl_return) override;
@@ -434,7 +435,7 @@ class StreamIn : public StreamCommonImpl<::aidl::android::hardware::audio::commo
StreamIn(const ::aidl::android::hardware::audio::common::SinkMetadata& sinkMetadata,
StreamContext&& context, const DriverInterface::CreateInstance& createDriver,
const StreamWorkerInterface::CreateInstance& createWorker,
const std::vector<MicrophoneInfo>& microphones);
const std::vector<::aidl::android::media::audio::common::MicrophoneInfo>& microphones);
void createStreamCommon(const std::shared_ptr<StreamIn>& myPtr) {
StreamCommonImpl<
::aidl::android::hardware::audio::common::SinkMetadata>::createStreamCommon(myPtr);
@@ -445,7 +446,8 @@ class StreamIn : public StreamCommonImpl<::aidl::android::hardware::audio::commo
public:
using CreateInstance = std::function<ndk::ScopedAStatus(
const ::aidl::android::hardware::audio::common::SinkMetadata& sinkMetadata,
StreamContext&& context, const std::vector<MicrophoneInfo>& microphones,
StreamContext&& context,
const std::vector<::aidl::android::media::audio::common::MicrophoneInfo>& microphones,
std::shared_ptr<StreamIn>* result)>;
};

View File

@@ -43,13 +43,16 @@ class StreamInStub final : public StreamIn {
public:
static ndk::ScopedAStatus createInstance(
const ::aidl::android::hardware::audio::common::SinkMetadata& sinkMetadata,
StreamContext&& context, const std::vector<MicrophoneInfo>& microphones,
StreamContext&& context,
const std::vector<::aidl::android::media::audio::common::MicrophoneInfo>& microphones,
std::shared_ptr<StreamIn>* result);
private:
friend class ndk::SharedRefBase;
StreamInStub(const ::aidl::android::hardware::audio::common::SinkMetadata& sinkMetadata,
StreamContext&& context, const std::vector<MicrophoneInfo>& microphones);
StreamInStub(
const ::aidl::android::hardware::audio::common::SinkMetadata& sinkMetadata,
StreamContext&& context,
const std::vector<::aidl::android::media::audio::common::MicrophoneInfo>& microphones);
};
class StreamOutStub final : public StreamOut {

View File

@@ -60,18 +60,22 @@ class DriverUsb : public DriverInterface {
class StreamInUsb final : public StreamIn {
ndk::ScopedAStatus getActiveMicrophones(
std::vector<MicrophoneDynamicInfo>* _aidl_return) override;
std::vector<::aidl::android::media::audio::common::MicrophoneDynamicInfo>* _aidl_return)
override;
public:
static ndk::ScopedAStatus createInstance(
const ::aidl::android::hardware::audio::common::SinkMetadata& sinkMetadata,
StreamContext&& context, const std::vector<MicrophoneInfo>& microphones,
StreamContext&& context,
const std::vector<::aidl::android::media::audio::common::MicrophoneInfo>& microphones,
std::shared_ptr<StreamIn>* result);
private:
friend class ndk::SharedRefBase;
StreamInUsb(const ::aidl::android::hardware::audio::common::SinkMetadata& sinkMetadata,
StreamContext&& context, const std::vector<MicrophoneInfo>& microphones);
StreamInUsb(
const ::aidl::android::hardware::audio::common::SinkMetadata& sinkMetadata,
StreamContext&& context,
const std::vector<::aidl::android::media::audio::common::MicrophoneInfo>& microphones);
};
class StreamOutUsb final : public StreamOut {

View File

@@ -30,6 +30,8 @@ using aidl::android::hardware::audio::common::SourceMetadata;
using aidl::android::media::audio::common::AudioDevice;
using aidl::android::media::audio::common::AudioDeviceAddress;
using aidl::android::media::audio::common::AudioOffloadInfo;
using aidl::android::media::audio::common::MicrophoneDynamicInfo;
using aidl::android::media::audio::common::MicrophoneInfo;
namespace aidl::android::hardware::audio::core {
@@ -239,4 +241,4 @@ StreamOutUsb::StreamOutUsb(const SourceMetadata& sourceMetadata, StreamContext&&
},
offloadInfo) {}
} // namespace aidl::android::hardware::audio::core
} // namespace aidl::android::hardware::audio::core

View File

@@ -64,8 +64,6 @@ using aidl::android::hardware::audio::core::IStreamCommon;
using aidl::android::hardware::audio::core::IStreamIn;
using aidl::android::hardware::audio::core::IStreamOut;
using aidl::android::hardware::audio::core::ITelephony;
using aidl::android::hardware::audio::core::MicrophoneDynamicInfo;
using aidl::android::hardware::audio::core::MicrophoneInfo;
using aidl::android::hardware::audio::core::ModuleDebug;
using aidl::android::hardware::audio::core::StreamDescriptor;
using aidl::android::hardware::audio::core::VendorParameter;
@@ -93,6 +91,8 @@ using aidl::android::media::audio::common::AudioUsage;
using aidl::android::media::audio::common::Boolean;
using aidl::android::media::audio::common::Float;
using aidl::android::media::audio::common::Int;
using aidl::android::media::audio::common::MicrophoneDynamicInfo;
using aidl::android::media::audio::common::MicrophoneInfo;
using aidl::android::media::audio::common::Void;
using android::hardware::audio::common::getChannelCount;
using android::hardware::audio::common::isBitPositionFlagSet;