Loading media/audio/aconfig/Android.bp +6 −0 Original line number Diff line number Diff line Loading @@ -122,6 +122,12 @@ java_aconfig_library { defaults: ["framework-minus-apex-aconfig-java-defaults"], } cc_aconfig_library { name: "android.media.audiopolicy-aconfig-cc", aconfig_declarations: "android.media.audiopolicy-aconfig", defaults: ["audio-aconfig-cc-defaults"], } filegroup { name: "audio-framework-aconfig", srcs: [ Loading media/audio/aconfig/audiopolicy_framework.aconfig +8 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,14 @@ package: "android.media.audiopolicy" flag { name: "audio_mix_test_api" namespace: "media_audio" description: "Enable new Test APIs that provide access to registered AudioMixes on system server and native side." bug: "309080867" is_fixed_read_only: true } flag { name: "audio_policy_update_mixing_rules_api" namespace: "media_audio" Loading media/libaudioclient/Android.bp +2 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ cc_library { "libaudioclient_aidl_conversion", "libaudioutils", "libbinder", "libbinder_ndk", "libcutils", "liblog", "libutils", Loading Loading @@ -121,6 +122,7 @@ cc_library { "latest_android_media_audio_common_types_cpp_shared", ], shared_libs: [ "android.media.audiopolicy-aconfig-cc", "audioclient-types-aidl-cpp", "audioflinger-aidl-cpp", "audiopolicy-aidl-cpp", Loading media/libaudioclient/AudioSystem.cpp +22 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <android/media/IAudioPolicyService.h> #include <android/media/AudioMixUpdate.h> #include <android/media/BnCaptureStateListener.h> #include <android_media_audiopolicy.h> #include <binder/IServiceManager.h> #include <binder/ProcessState.h> #include <binder/IPCThreadState.h> Loading @@ -44,6 +45,8 @@ // ---------------------------------------------------------------------------- namespace audio_flags = android::media::audiopolicy; namespace android { using aidl_utils::statusTFromBinderStatus; using binder::Status; Loading Loading @@ -1843,6 +1846,25 @@ status_t AudioSystem::registerPolicyMixes(const Vector<AudioMix>& mixes, bool re return statusTFromBinderStatus(aps->registerPolicyMixes(mixesAidl, registration)); } status_t AudioSystem::getRegisteredPolicyMixes(std::vector<AudioMix>& mixes) { if (!audio_flags::audio_mix_test_api()) { return INVALID_OPERATION; } const sp<IAudioPolicyService> aps = AudioSystem::get_audio_policy_service(); if (aps == nullptr) return PERMISSION_DENIED; std::vector<::android::media::AudioMix> aidlMixes; Status status = aps->getRegisteredPolicyMixes(&aidlMixes); for (const auto& aidlMix : aidlMixes) { AudioMix mix = VALUE_OR_RETURN_STATUS(aidl2legacy_AudioMix(aidlMix)); mixes.push_back(mix); } return statusTFromBinderStatus(status); } status_t AudioSystem::updatePolicyMixes( const std::vector<std::pair<AudioMix, std::vector<AudioMixMatchCriterion>>>& mixesWithUpdates) { Loading media/libaudioclient/aidl/android/media/IAudioPolicyService.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -263,6 +263,8 @@ interface IAudioPolicyService { void registerPolicyMixes(in AudioMix[] mixes, boolean registration); List<AudioMix> getRegisteredPolicyMixes(); void updatePolicyMixes(in AudioMixUpdate[] updates); void setUidDeviceAffinities(int /* uid_t */ uid, in AudioDevice[] devices); Loading Loading
media/audio/aconfig/Android.bp +6 −0 Original line number Diff line number Diff line Loading @@ -122,6 +122,12 @@ java_aconfig_library { defaults: ["framework-minus-apex-aconfig-java-defaults"], } cc_aconfig_library { name: "android.media.audiopolicy-aconfig-cc", aconfig_declarations: "android.media.audiopolicy-aconfig", defaults: ["audio-aconfig-cc-defaults"], } filegroup { name: "audio-framework-aconfig", srcs: [ Loading
media/audio/aconfig/audiopolicy_framework.aconfig +8 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,14 @@ package: "android.media.audiopolicy" flag { name: "audio_mix_test_api" namespace: "media_audio" description: "Enable new Test APIs that provide access to registered AudioMixes on system server and native side." bug: "309080867" is_fixed_read_only: true } flag { name: "audio_policy_update_mixing_rules_api" namespace: "media_audio" Loading
media/libaudioclient/Android.bp +2 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ cc_library { "libaudioclient_aidl_conversion", "libaudioutils", "libbinder", "libbinder_ndk", "libcutils", "liblog", "libutils", Loading Loading @@ -121,6 +122,7 @@ cc_library { "latest_android_media_audio_common_types_cpp_shared", ], shared_libs: [ "android.media.audiopolicy-aconfig-cc", "audioclient-types-aidl-cpp", "audioflinger-aidl-cpp", "audiopolicy-aidl-cpp", Loading
media/libaudioclient/AudioSystem.cpp +22 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <android/media/IAudioPolicyService.h> #include <android/media/AudioMixUpdate.h> #include <android/media/BnCaptureStateListener.h> #include <android_media_audiopolicy.h> #include <binder/IServiceManager.h> #include <binder/ProcessState.h> #include <binder/IPCThreadState.h> Loading @@ -44,6 +45,8 @@ // ---------------------------------------------------------------------------- namespace audio_flags = android::media::audiopolicy; namespace android { using aidl_utils::statusTFromBinderStatus; using binder::Status; Loading Loading @@ -1843,6 +1846,25 @@ status_t AudioSystem::registerPolicyMixes(const Vector<AudioMix>& mixes, bool re return statusTFromBinderStatus(aps->registerPolicyMixes(mixesAidl, registration)); } status_t AudioSystem::getRegisteredPolicyMixes(std::vector<AudioMix>& mixes) { if (!audio_flags::audio_mix_test_api()) { return INVALID_OPERATION; } const sp<IAudioPolicyService> aps = AudioSystem::get_audio_policy_service(); if (aps == nullptr) return PERMISSION_DENIED; std::vector<::android::media::AudioMix> aidlMixes; Status status = aps->getRegisteredPolicyMixes(&aidlMixes); for (const auto& aidlMix : aidlMixes) { AudioMix mix = VALUE_OR_RETURN_STATUS(aidl2legacy_AudioMix(aidlMix)); mixes.push_back(mix); } return statusTFromBinderStatus(status); } status_t AudioSystem::updatePolicyMixes( const std::vector<std::pair<AudioMix, std::vector<AudioMixMatchCriterion>>>& mixesWithUpdates) { Loading
media/libaudioclient/aidl/android/media/IAudioPolicyService.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -263,6 +263,8 @@ interface IAudioPolicyService { void registerPolicyMixes(in AudioMix[] mixes, boolean registration); List<AudioMix> getRegisteredPolicyMixes(); void updatePolicyMixes(in AudioMixUpdate[] updates); void setUidDeviceAffinities(int /* uid_t */ uid, in AudioDevice[] devices); Loading