Loading automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/current/android/hardware/automotive/audiocontrol/IAudioControl.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ package android.hardware.automotive.audiocontrol; interface IAudioControl { oneway void onAudioFocusChange(in String usage, in int zoneId, in android.hardware.automotive.audiocontrol.AudioFocusChange focusChange); oneway void onDevicesToDuckChange(in android.hardware.automotive.audiocontrol.DuckingInfo[] duckingInfos); oneway void onDevicesToMuteChange(in android.hardware.automotive.audiocontrol.MutingInfo[] mutingInfos); oneway void registerFocusListener(in android.hardware.automotive.audiocontrol.IFocusListener listener); oneway void setBalanceTowardRight(in float value); oneway void setFadeTowardFront(in float value); Loading automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/current/android/hardware/automotive/audiocontrol/MutingInfo.aidl 0 → 100644 +24 −0 Original line number Diff line number Diff line /////////////////////////////////////////////////////////////////////////////// // THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // /////////////////////////////////////////////////////////////////////////////// // This file is a snapshot of an AIDL interface (or parcelable). Do not try to // edit this file. It looks like you are doing that because you have modified // an AIDL interface in a backward-incompatible way, e.g., deleting a function // from an interface or a field from a parcelable and it broke the build. That // breakage is intended. // // You must not make a backward incompatible changes to the AIDL files 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.automotive.audiocontrol; @VintfStability parcelable MutingInfo { int zoneId; String[] deviceAddressesToMute; String[] deviceAddressesToUnmute; } automotive/audiocontrol/aidl/android/hardware/automotive/audiocontrol/IAudioControl.aidl +13 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.hardware.automotive.audiocontrol; import android.hardware.automotive.audiocontrol.AudioFocusChange; import android.hardware.automotive.audiocontrol.DuckingInfo; import android.hardware.automotive.audiocontrol.MutingInfo; import android.hardware.automotive.audiocontrol.IFocusListener; /** Loading Loading @@ -53,6 +54,18 @@ interface IAudioControl { */ oneway void onDevicesToDuckChange(in DuckingInfo[] duckingInfos); /** * Notifies HAL of changes in output devices that the HAL should apply muting to. * * This will be called in response to changes in audio mute state for each volume group * and will include a {@link MutingInfo} object per audio zone that experienced a mute state * event. * * @param mutingInfos an array of {@link MutingInfo} objects for the audio zones where audio * mute state has changed. */ oneway void onDevicesToMuteChange(in MutingInfo[] mutingInfos); /** * Registers focus listener to be used by HAL for requesting and abandoning audio focus. * Loading automotive/audiocontrol/aidl/android/hardware/automotive/audiocontrol/MutingInfo.aidl 0 → 100644 +46 −0 Original line number Diff line number Diff line /* * Copyright (C) 2020 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.automotive.audiocontrol; /** * The current muting information for a single audio zone. * * <p>This includes devices to mute, as well as mute based on the contents of a previous * {@link MutingInfo}. */ @VintfStability parcelable MutingInfo { /** * ID of the associated audio zone */ int zoneId; /** * List of addresses for audio output devices that should be muted. * * <p>The provided address strings are defined in audio_policy_configuration.xml. */ String[] deviceAddressesToMute; /** * List of addresses for audio output devices that were previously be muted and should now be * unmuted. * * <p>The provided address strings are defined in audio_policy_configuration.xml. */ String[] deviceAddressesToUnmute; } No newline at end of file automotive/audiocontrol/aidl/default/AudioControl.cpp +20 −3 Original line number Diff line number Diff line Loading @@ -109,21 +109,38 @@ ndk::ScopedAStatus AudioControl::onDevicesToDuckChange( for (const DuckingInfo& duckingInfo : in_duckingInfos) { LOG(INFO) << "zone: " << duckingInfo.zoneId; LOG(INFO) << "Devices to duck:"; for (auto& addressToDuck : duckingInfo.deviceAddressesToDuck) { for (const auto& addressToDuck : duckingInfo.deviceAddressesToDuck) { LOG(INFO) << addressToDuck; } LOG(INFO) << "Devices to unduck:"; for (auto& addressToUnduck : duckingInfo.deviceAddressesToUnduck) { for (const auto& addressToUnduck : duckingInfo.deviceAddressesToUnduck) { LOG(INFO) << addressToUnduck; } LOG(INFO) << "Usages holding focus:"; for (auto& usage : duckingInfo.usagesHoldingFocus) { for (const auto& usage : duckingInfo.usagesHoldingFocus) { LOG(INFO) << usage; } } return ndk::ScopedAStatus::ok(); } ndk::ScopedAStatus AudioControl::onDevicesToMuteChange( const std::vector<MutingInfo>& in_mutingInfos) { LOG(INFO) << "AudioControl::onDevicesToMuteChange"; for (const MutingInfo& mutingInfo : in_mutingInfos) { LOG(INFO) << "zone: " << mutingInfo.zoneId; LOG(INFO) << "Devices to mute:"; for (const auto& addressToMute : mutingInfo.deviceAddressesToMute) { LOG(INFO) << addressToMute; } LOG(INFO) << "Devices to unmute:"; for (const auto& addressToUnmute : mutingInfo.deviceAddressesToUnmute) { LOG(INFO) << addressToUnmute; } } return ndk::ScopedAStatus::ok(); } binder_status_t AudioControl::dump(int fd, const char** args, uint32_t numArgs) { if (numArgs == 0) { return dumpsys(fd); Loading Loading
automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/current/android/hardware/automotive/audiocontrol/IAudioControl.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ package android.hardware.automotive.audiocontrol; interface IAudioControl { oneway void onAudioFocusChange(in String usage, in int zoneId, in android.hardware.automotive.audiocontrol.AudioFocusChange focusChange); oneway void onDevicesToDuckChange(in android.hardware.automotive.audiocontrol.DuckingInfo[] duckingInfos); oneway void onDevicesToMuteChange(in android.hardware.automotive.audiocontrol.MutingInfo[] mutingInfos); oneway void registerFocusListener(in android.hardware.automotive.audiocontrol.IFocusListener listener); oneway void setBalanceTowardRight(in float value); oneway void setFadeTowardFront(in float value); Loading
automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/current/android/hardware/automotive/audiocontrol/MutingInfo.aidl 0 → 100644 +24 −0 Original line number Diff line number Diff line /////////////////////////////////////////////////////////////////////////////// // THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // /////////////////////////////////////////////////////////////////////////////// // This file is a snapshot of an AIDL interface (or parcelable). Do not try to // edit this file. It looks like you are doing that because you have modified // an AIDL interface in a backward-incompatible way, e.g., deleting a function // from an interface or a field from a parcelable and it broke the build. That // breakage is intended. // // You must not make a backward incompatible changes to the AIDL files 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.automotive.audiocontrol; @VintfStability parcelable MutingInfo { int zoneId; String[] deviceAddressesToMute; String[] deviceAddressesToUnmute; }
automotive/audiocontrol/aidl/android/hardware/automotive/audiocontrol/IAudioControl.aidl +13 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.hardware.automotive.audiocontrol; import android.hardware.automotive.audiocontrol.AudioFocusChange; import android.hardware.automotive.audiocontrol.DuckingInfo; import android.hardware.automotive.audiocontrol.MutingInfo; import android.hardware.automotive.audiocontrol.IFocusListener; /** Loading Loading @@ -53,6 +54,18 @@ interface IAudioControl { */ oneway void onDevicesToDuckChange(in DuckingInfo[] duckingInfos); /** * Notifies HAL of changes in output devices that the HAL should apply muting to. * * This will be called in response to changes in audio mute state for each volume group * and will include a {@link MutingInfo} object per audio zone that experienced a mute state * event. * * @param mutingInfos an array of {@link MutingInfo} objects for the audio zones where audio * mute state has changed. */ oneway void onDevicesToMuteChange(in MutingInfo[] mutingInfos); /** * Registers focus listener to be used by HAL for requesting and abandoning audio focus. * Loading
automotive/audiocontrol/aidl/android/hardware/automotive/audiocontrol/MutingInfo.aidl 0 → 100644 +46 −0 Original line number Diff line number Diff line /* * Copyright (C) 2020 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.automotive.audiocontrol; /** * The current muting information for a single audio zone. * * <p>This includes devices to mute, as well as mute based on the contents of a previous * {@link MutingInfo}. */ @VintfStability parcelable MutingInfo { /** * ID of the associated audio zone */ int zoneId; /** * List of addresses for audio output devices that should be muted. * * <p>The provided address strings are defined in audio_policy_configuration.xml. */ String[] deviceAddressesToMute; /** * List of addresses for audio output devices that were previously be muted and should now be * unmuted. * * <p>The provided address strings are defined in audio_policy_configuration.xml. */ String[] deviceAddressesToUnmute; } No newline at end of file
automotive/audiocontrol/aidl/default/AudioControl.cpp +20 −3 Original line number Diff line number Diff line Loading @@ -109,21 +109,38 @@ ndk::ScopedAStatus AudioControl::onDevicesToDuckChange( for (const DuckingInfo& duckingInfo : in_duckingInfos) { LOG(INFO) << "zone: " << duckingInfo.zoneId; LOG(INFO) << "Devices to duck:"; for (auto& addressToDuck : duckingInfo.deviceAddressesToDuck) { for (const auto& addressToDuck : duckingInfo.deviceAddressesToDuck) { LOG(INFO) << addressToDuck; } LOG(INFO) << "Devices to unduck:"; for (auto& addressToUnduck : duckingInfo.deviceAddressesToUnduck) { for (const auto& addressToUnduck : duckingInfo.deviceAddressesToUnduck) { LOG(INFO) << addressToUnduck; } LOG(INFO) << "Usages holding focus:"; for (auto& usage : duckingInfo.usagesHoldingFocus) { for (const auto& usage : duckingInfo.usagesHoldingFocus) { LOG(INFO) << usage; } } return ndk::ScopedAStatus::ok(); } ndk::ScopedAStatus AudioControl::onDevicesToMuteChange( const std::vector<MutingInfo>& in_mutingInfos) { LOG(INFO) << "AudioControl::onDevicesToMuteChange"; for (const MutingInfo& mutingInfo : in_mutingInfos) { LOG(INFO) << "zone: " << mutingInfo.zoneId; LOG(INFO) << "Devices to mute:"; for (const auto& addressToMute : mutingInfo.deviceAddressesToMute) { LOG(INFO) << addressToMute; } LOG(INFO) << "Devices to unmute:"; for (const auto& addressToUnmute : mutingInfo.deviceAddressesToUnmute) { LOG(INFO) << addressToUnmute; } } return ndk::ScopedAStatus::ok(); } binder_status_t AudioControl::dump(int fd, const char** args, uint32_t numArgs) { if (numArgs == 0) { return dumpsys(fd); Loading