Loading media/audioaidlconversion/AidlConversionCore.cpp 0 → 100644 +64 −0 Original line number Diff line number Diff line /* * Copyright (C) 2023 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. */ #define LOG_TAG "AidlConversionCore" //#define LOG_NDEBUG 0 #include <utils/Log.h> #include <media/AidlConversionCore.h> #include <media/AidlConversionCppNdk.h> namespace aidl { namespace android { using MicrophoneDirection = hardware::audio::core::IStreamIn::MicrophoneDirection; using ::android::BAD_VALUE; using ::android::OK; using ::android::status_t; using ::android::base::unexpected; ConversionResult<audio_microphone_direction_t> aidl2legacy_MicrophoneDirection_audio_microphone_direction_t(MicrophoneDirection aidl) { switch (aidl) { case MicrophoneDirection::UNSPECIFIED: return MIC_DIRECTION_UNSPECIFIED; case MicrophoneDirection::FRONT: return MIC_DIRECTION_FRONT; case MicrophoneDirection::BACK: return MIC_DIRECTION_BACK; case MicrophoneDirection::EXTERNAL: return MIC_DIRECTION_EXTERNAL; } return unexpected(BAD_VALUE); } ConversionResult<MicrophoneDirection> legacy2aidl_audio_microphone_direction_t_MicrophoneDirection(audio_microphone_direction_t legacy) { switch (legacy) { case MIC_DIRECTION_UNSPECIFIED: return MicrophoneDirection::UNSPECIFIED; case MIC_DIRECTION_FRONT: return MicrophoneDirection::FRONT; case MIC_DIRECTION_BACK: return MicrophoneDirection::BACK; case MIC_DIRECTION_EXTERNAL: return MicrophoneDirection::EXTERNAL; } return unexpected(BAD_VALUE); } } // namespace android } // aidl media/audioaidlconversion/Android.bp +31 −0 Original line number Diff line number Diff line Loading @@ -151,6 +151,37 @@ cc_library { min_sdk_version: "31", //AParcelableHolder has been introduced in 31 } /** * Only including AIDL core HAL conversion. */ cc_library { name: "libaudio_aidl_conversion_core_ndk", srcs: [ "AidlConversionCore.cpp", ], header_libs: [ "libaudio_aidl_conversion_common_util_ndk", ], export_header_lib_headers: [ "libaudio_aidl_conversion_common_util_ndk", ], defaults: [ "audio_aidl_conversion_common_default", "latest_android_hardware_audio_common_ndk_shared", "latest_android_hardware_audio_core_ndk_shared", "latest_android_media_audio_common_types_ndk_shared", ], shared_libs: [ "libaudio_aidl_conversion_common_ndk", "libbinder_ndk", "libbase", ], cflags: [ "-DBACKEND_NDK", ], min_sdk_version: "31", //AParcelableHolder has been introduced in 31 } /** * Only including AIDL effect HAL conversion. */ Loading media/audioaidlconversion/include/media/AidlConversionCore.h 0 → 100644 +36 −0 Original line number Diff line number Diff line /* * Copyright (C) 2023 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. */ #pragma once /** * Can only handle conversion between AIDL (NDK backend) and legacy type. */ #include <aidl/android/hardware/audio/core/IStreamIn.h> #include <media/AidlConversionUtil.h> #include <system/audio.h> namespace aidl { namespace android { ConversionResult<audio_microphone_direction_t> aidl2legacy_MicrophoneDirection_audio_microphone_direction_t( hardware::audio::core::IStreamIn::MicrophoneDirection aidl); ConversionResult<hardware::audio::core::IStreamIn::MicrophoneDirection> legacy2aidl_audio_microphone_direction_t_MicrophoneDirection(audio_microphone_direction_t legacy); } // namespace android } // namespace aidl media/libaudiohal/impl/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -284,6 +284,7 @@ cc_library_shared { "libbinder_ndk", "libaudio_aidl_conversion_common_cpp", "libaudio_aidl_conversion_common_ndk", "libaudio_aidl_conversion_core_ndk", "libaudio_aidl_conversion_effect_ndk", "libaudioaidlcommon", ], Loading media/libaudiohal/impl/StreamHalAidl.cpp +11 −10 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <audio_utils/clock.h> #include <media/AidlConversion.h> #include <media/AidlConversionCore.h> #include <media/AidlConversionCppNdk.h> #include <media/AidlConversionNdk.h> #include <media/AidlConversionUtil.h> Loading Loading @@ -890,11 +891,10 @@ StreamInHalAidl::StreamInHalAidl( std::move(context), getStreamCommon(stream)), mStream(stream), mMicInfoProvider(micInfoProvider) {} status_t StreamInHalAidl::setGain(float gain __unused) { status_t StreamInHalAidl::setGain(float gain) { TIME_CHECK(); if (!mStream) return NO_INIT; ALOGE("%s not implemented yet", __func__); return OK; return statusTFromBinderStatus(mStream->setHwGain({gain})); } status_t StreamInHalAidl::read(void *buffer, size_t bytes, size_t *read) { Loading Loading @@ -967,19 +967,20 @@ status_t StreamInHalAidl::updateSinkMetadata( return statusTFromBinderStatus(mStream->updateMetadata(aidlMetadata)); } status_t StreamInHalAidl::setPreferredMicrophoneDirection( audio_microphone_direction_t direction __unused) { status_t StreamInHalAidl::setPreferredMicrophoneDirection(audio_microphone_direction_t direction) { TIME_CHECK(); if (!mStream) return NO_INIT; ALOGE("%s not implemented yet", __func__); return OK; ::aidl::android::hardware::audio::core::IStreamIn::MicrophoneDirection aidlDirection = VALUE_OR_RETURN_STATUS( ::aidl::android::legacy2aidl_audio_microphone_direction_t_MicrophoneDirection( direction)); return statusTFromBinderStatus(mStream->setMicrophoneDirection(aidlDirection)); } status_t StreamInHalAidl::setPreferredMicrophoneFieldDimension(float zoom __unused) { status_t StreamInHalAidl::setPreferredMicrophoneFieldDimension(float zoom) { TIME_CHECK(); if (!mStream) return NO_INIT; ALOGE("%s not implemented yet", __func__); return OK; return statusTFromBinderStatus(mStream->setMicrophoneFieldDimension(zoom)); } } // namespace android Loading
media/audioaidlconversion/AidlConversionCore.cpp 0 → 100644 +64 −0 Original line number Diff line number Diff line /* * Copyright (C) 2023 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. */ #define LOG_TAG "AidlConversionCore" //#define LOG_NDEBUG 0 #include <utils/Log.h> #include <media/AidlConversionCore.h> #include <media/AidlConversionCppNdk.h> namespace aidl { namespace android { using MicrophoneDirection = hardware::audio::core::IStreamIn::MicrophoneDirection; using ::android::BAD_VALUE; using ::android::OK; using ::android::status_t; using ::android::base::unexpected; ConversionResult<audio_microphone_direction_t> aidl2legacy_MicrophoneDirection_audio_microphone_direction_t(MicrophoneDirection aidl) { switch (aidl) { case MicrophoneDirection::UNSPECIFIED: return MIC_DIRECTION_UNSPECIFIED; case MicrophoneDirection::FRONT: return MIC_DIRECTION_FRONT; case MicrophoneDirection::BACK: return MIC_DIRECTION_BACK; case MicrophoneDirection::EXTERNAL: return MIC_DIRECTION_EXTERNAL; } return unexpected(BAD_VALUE); } ConversionResult<MicrophoneDirection> legacy2aidl_audio_microphone_direction_t_MicrophoneDirection(audio_microphone_direction_t legacy) { switch (legacy) { case MIC_DIRECTION_UNSPECIFIED: return MicrophoneDirection::UNSPECIFIED; case MIC_DIRECTION_FRONT: return MicrophoneDirection::FRONT; case MIC_DIRECTION_BACK: return MicrophoneDirection::BACK; case MIC_DIRECTION_EXTERNAL: return MicrophoneDirection::EXTERNAL; } return unexpected(BAD_VALUE); } } // namespace android } // aidl
media/audioaidlconversion/Android.bp +31 −0 Original line number Diff line number Diff line Loading @@ -151,6 +151,37 @@ cc_library { min_sdk_version: "31", //AParcelableHolder has been introduced in 31 } /** * Only including AIDL core HAL conversion. */ cc_library { name: "libaudio_aidl_conversion_core_ndk", srcs: [ "AidlConversionCore.cpp", ], header_libs: [ "libaudio_aidl_conversion_common_util_ndk", ], export_header_lib_headers: [ "libaudio_aidl_conversion_common_util_ndk", ], defaults: [ "audio_aidl_conversion_common_default", "latest_android_hardware_audio_common_ndk_shared", "latest_android_hardware_audio_core_ndk_shared", "latest_android_media_audio_common_types_ndk_shared", ], shared_libs: [ "libaudio_aidl_conversion_common_ndk", "libbinder_ndk", "libbase", ], cflags: [ "-DBACKEND_NDK", ], min_sdk_version: "31", //AParcelableHolder has been introduced in 31 } /** * Only including AIDL effect HAL conversion. */ Loading
media/audioaidlconversion/include/media/AidlConversionCore.h 0 → 100644 +36 −0 Original line number Diff line number Diff line /* * Copyright (C) 2023 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. */ #pragma once /** * Can only handle conversion between AIDL (NDK backend) and legacy type. */ #include <aidl/android/hardware/audio/core/IStreamIn.h> #include <media/AidlConversionUtil.h> #include <system/audio.h> namespace aidl { namespace android { ConversionResult<audio_microphone_direction_t> aidl2legacy_MicrophoneDirection_audio_microphone_direction_t( hardware::audio::core::IStreamIn::MicrophoneDirection aidl); ConversionResult<hardware::audio::core::IStreamIn::MicrophoneDirection> legacy2aidl_audio_microphone_direction_t_MicrophoneDirection(audio_microphone_direction_t legacy); } // namespace android } // namespace aidl
media/libaudiohal/impl/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -284,6 +284,7 @@ cc_library_shared { "libbinder_ndk", "libaudio_aidl_conversion_common_cpp", "libaudio_aidl_conversion_common_ndk", "libaudio_aidl_conversion_core_ndk", "libaudio_aidl_conversion_effect_ndk", "libaudioaidlcommon", ], Loading
media/libaudiohal/impl/StreamHalAidl.cpp +11 −10 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <audio_utils/clock.h> #include <media/AidlConversion.h> #include <media/AidlConversionCore.h> #include <media/AidlConversionCppNdk.h> #include <media/AidlConversionNdk.h> #include <media/AidlConversionUtil.h> Loading Loading @@ -890,11 +891,10 @@ StreamInHalAidl::StreamInHalAidl( std::move(context), getStreamCommon(stream)), mStream(stream), mMicInfoProvider(micInfoProvider) {} status_t StreamInHalAidl::setGain(float gain __unused) { status_t StreamInHalAidl::setGain(float gain) { TIME_CHECK(); if (!mStream) return NO_INIT; ALOGE("%s not implemented yet", __func__); return OK; return statusTFromBinderStatus(mStream->setHwGain({gain})); } status_t StreamInHalAidl::read(void *buffer, size_t bytes, size_t *read) { Loading Loading @@ -967,19 +967,20 @@ status_t StreamInHalAidl::updateSinkMetadata( return statusTFromBinderStatus(mStream->updateMetadata(aidlMetadata)); } status_t StreamInHalAidl::setPreferredMicrophoneDirection( audio_microphone_direction_t direction __unused) { status_t StreamInHalAidl::setPreferredMicrophoneDirection(audio_microphone_direction_t direction) { TIME_CHECK(); if (!mStream) return NO_INIT; ALOGE("%s not implemented yet", __func__); return OK; ::aidl::android::hardware::audio::core::IStreamIn::MicrophoneDirection aidlDirection = VALUE_OR_RETURN_STATUS( ::aidl::android::legacy2aidl_audio_microphone_direction_t_MicrophoneDirection( direction)); return statusTFromBinderStatus(mStream->setMicrophoneDirection(aidlDirection)); } status_t StreamInHalAidl::setPreferredMicrophoneFieldDimension(float zoom __unused) { status_t StreamInHalAidl::setPreferredMicrophoneFieldDimension(float zoom) { TIME_CHECK(); if (!mStream) return NO_INIT; ALOGE("%s not implemented yet", __func__); return OK; return statusTFromBinderStatus(mStream->setMicrophoneFieldDimension(zoom)); } } // namespace android