Loading media/libaudioclient/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -336,6 +336,7 @@ aidl_interface { srcs: [ "aidl/android/media/AudioAttributesEx.aidl", "aidl/android/media/AudioMix.aidl", "aidl/android/media/AudioMixUpdate.aidl", "aidl/android/media/AudioMixerAttributesInternal.aidl", "aidl/android/media/AudioMixerBehavior.aidl", "aidl/android/media/AudioMixCallbackFlag.aidl", Loading media/libaudioclient/AudioSystem.cpp +22 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include <utils/Log.h> #include <android/media/IAudioPolicyService.h> #include <android/media/AudioMixUpdate.h> #include <android/media/BnCaptureStateListener.h> #include <binder/IServiceManager.h> #include <binder/ProcessState.h> Loading Loading @@ -1842,6 +1843,27 @@ status_t AudioSystem::registerPolicyMixes(const Vector<AudioMix>& mixes, bool re return statusTFromBinderStatus(aps->registerPolicyMixes(mixesAidl, registration)); } status_t AudioSystem::updatePolicyMixes( const std::vector<std::pair<AudioMix, std::vector<AudioMixMatchCriterion>>>& mixesWithUpdates) { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return PERMISSION_DENIED; std::vector<media::AudioMixUpdate> updatesAidl; updatesAidl.reserve(mixesWithUpdates.size()); for (const auto& update : mixesWithUpdates) { media::AudioMixUpdate updateAidl; updateAidl.audioMix = VALUE_OR_RETURN_STATUS(legacy2aidl_AudioMix(update.first)); RETURN_STATUS_IF_ERROR(convertRange(update.second.begin(), update.second.end(), std::back_inserter(updateAidl.newCriteria), legacy2aidl_AudioMixMatchCriterion)); updatesAidl.emplace_back(updateAidl); } return statusTFromBinderStatus(aps->updatePolicyMixes(updatesAidl)); } status_t AudioSystem::setUidDeviceAffinities(uid_t uid, const AudioDeviceTypeAddrVector& devices) { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return PERMISSION_DENIED; Loading media/libaudioclient/aidl/android/media/AudioMixUpdate.aidl 0 → 100644 +31 −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. */ package android.media; import android.media.AudioMix; import android.media.AudioMixMatchCriterion; /** * {@hide} */ parcelable AudioMixUpdate { // Audio mix to update. AudioMix audioMix; // Updated audio mixing rule. AudioMixMatchCriterion[] newCriteria; } media/libaudioclient/aidl/android/media/IAudioPolicyService.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.content.AttributionSourceState; import android.media.AudioDirectMode; import android.media.AudioMix; import android.media.AudioMixUpdate; import android.media.AudioMixerAttributesInternal; import android.media.AudioOffloadMode; import android.media.AudioPatchFw; Loading Loading @@ -262,6 +263,8 @@ interface IAudioPolicyService { void registerPolicyMixes(in AudioMix[] mixes, boolean registration); void updatePolicyMixes(in AudioMixUpdate[] updates); void setUidDeviceAffinities(int /* uid_t */ uid, in AudioDevice[] devices); void removeUidDeviceAffinities(int /* uid_t */ uid); Loading media/libaudioclient/include/media/AudioSystem.h +4 −0 Original line number Diff line number Diff line Loading @@ -462,6 +462,10 @@ public: static status_t registerPolicyMixes(const Vector<AudioMix>& mixes, bool registration); static status_t updatePolicyMixes( const std::vector< std::pair<AudioMix, std::vector<AudioMixMatchCriterion>>>& mixesWithUpdates); static status_t setUidDeviceAffinities(uid_t uid, const AudioDeviceTypeAddrVector& devices); static status_t removeUidDeviceAffinities(uid_t uid); Loading Loading
media/libaudioclient/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -336,6 +336,7 @@ aidl_interface { srcs: [ "aidl/android/media/AudioAttributesEx.aidl", "aidl/android/media/AudioMix.aidl", "aidl/android/media/AudioMixUpdate.aidl", "aidl/android/media/AudioMixerAttributesInternal.aidl", "aidl/android/media/AudioMixerBehavior.aidl", "aidl/android/media/AudioMixCallbackFlag.aidl", Loading
media/libaudioclient/AudioSystem.cpp +22 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include <utils/Log.h> #include <android/media/IAudioPolicyService.h> #include <android/media/AudioMixUpdate.h> #include <android/media/BnCaptureStateListener.h> #include <binder/IServiceManager.h> #include <binder/ProcessState.h> Loading Loading @@ -1842,6 +1843,27 @@ status_t AudioSystem::registerPolicyMixes(const Vector<AudioMix>& mixes, bool re return statusTFromBinderStatus(aps->registerPolicyMixes(mixesAidl, registration)); } status_t AudioSystem::updatePolicyMixes( const std::vector<std::pair<AudioMix, std::vector<AudioMixMatchCriterion>>>& mixesWithUpdates) { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return PERMISSION_DENIED; std::vector<media::AudioMixUpdate> updatesAidl; updatesAidl.reserve(mixesWithUpdates.size()); for (const auto& update : mixesWithUpdates) { media::AudioMixUpdate updateAidl; updateAidl.audioMix = VALUE_OR_RETURN_STATUS(legacy2aidl_AudioMix(update.first)); RETURN_STATUS_IF_ERROR(convertRange(update.second.begin(), update.second.end(), std::back_inserter(updateAidl.newCriteria), legacy2aidl_AudioMixMatchCriterion)); updatesAidl.emplace_back(updateAidl); } return statusTFromBinderStatus(aps->updatePolicyMixes(updatesAidl)); } status_t AudioSystem::setUidDeviceAffinities(uid_t uid, const AudioDeviceTypeAddrVector& devices) { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return PERMISSION_DENIED; Loading
media/libaudioclient/aidl/android/media/AudioMixUpdate.aidl 0 → 100644 +31 −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. */ package android.media; import android.media.AudioMix; import android.media.AudioMixMatchCriterion; /** * {@hide} */ parcelable AudioMixUpdate { // Audio mix to update. AudioMix audioMix; // Updated audio mixing rule. AudioMixMatchCriterion[] newCriteria; }
media/libaudioclient/aidl/android/media/IAudioPolicyService.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.content.AttributionSourceState; import android.media.AudioDirectMode; import android.media.AudioMix; import android.media.AudioMixUpdate; import android.media.AudioMixerAttributesInternal; import android.media.AudioOffloadMode; import android.media.AudioPatchFw; Loading Loading @@ -262,6 +263,8 @@ interface IAudioPolicyService { void registerPolicyMixes(in AudioMix[] mixes, boolean registration); void updatePolicyMixes(in AudioMixUpdate[] updates); void setUidDeviceAffinities(int /* uid_t */ uid, in AudioDevice[] devices); void removeUidDeviceAffinities(int /* uid_t */ uid); Loading
media/libaudioclient/include/media/AudioSystem.h +4 −0 Original line number Diff line number Diff line Loading @@ -462,6 +462,10 @@ public: static status_t registerPolicyMixes(const Vector<AudioMix>& mixes, bool registration); static status_t updatePolicyMixes( const std::vector< std::pair<AudioMix, std::vector<AudioMixMatchCriterion>>>& mixesWithUpdates); static status_t setUidDeviceAffinities(uid_t uid, const AudioDeviceTypeAddrVector& devices); static status_t removeUidDeviceAffinities(uid_t uid); Loading