diff options
author | Eric Laurent <elaurent@google.com> | 2014-06-10 22:48:36 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-06-10 21:32:31 +0000 |
commit | eb4b03cb98e38bf76ee6e6debb74e76c30cbc228 (patch) | |
tree | fc820243d7daf9bbb3448226d1d58851324f0895 | |
parent | 31dcd338b3826928646d77f23f977ecdd52598a3 (diff) | |
parent | f269b8e0e9ab950fc6652b9594b7a3431c81630c (diff) | |
download | frameworks_av-eb4b03cb98e38bf76ee6e6debb74e76c30cbc228.zip frameworks_av-eb4b03cb98e38bf76ee6e6debb74e76c30cbc228.tar.gz frameworks_av-eb4b03cb98e38bf76ee6e6debb74e76c30cbc228.tar.bz2 |
Merge "audio policy: use factory to create audio policy manager"
-rw-r--r-- | CleanSpec.mk | 4 | ||||
-rw-r--r-- | services/audiopolicy/Android.mk | 16 | ||||
-rw-r--r-- | services/audiopolicy/AudioPolicyFactory.cpp | 32 | ||||
-rw-r--r-- | services/audiopolicy/AudioPolicyService.cpp | 4 | ||||
-rw-r--r-- | services/audiopolicy/AudioPolicyService.h | 2 |
5 files changed, 54 insertions, 4 deletions
diff --git a/CleanSpec.mk b/CleanSpec.mk index 20da925..d0890fe 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -55,6 +55,10 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libaudiopolicy $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/libaudiopolicy.so) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libaudiopolicyservice_intermediates) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libaudiopolicymanager_intermediates) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/libaudiopolicyservice.so) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/libaudiopolicymanager.so) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libaudiopolicyservice_intermediates) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libaudiopolicymanager_intermediates) # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST diff --git a/services/audiopolicy/Android.mk b/services/audiopolicy/Android.mk index a22ad9d..cddc503 100644 --- a/services/audiopolicy/Android.mk +++ b/services/audiopolicy/Android.mk @@ -46,8 +46,8 @@ LOCAL_CFLAGS += -fvisibility=hidden include $(BUILD_SHARED_LIBRARY) + ifneq ($(USE_LEGACY_AUDIO_POLICY), 1) -ifneq ($(USE_CUSTOM_AUDIO_POLICY), 1) include $(CLEAR_VARS) @@ -62,6 +62,20 @@ LOCAL_SHARED_LIBRARIES := \ LOCAL_STATIC_LIBRARIES := \ libmedia_helper +LOCAL_MODULE:= libaudiopolicymanagerdefault + +include $(BUILD_SHARED_LIBRARY) + +ifneq ($(USE_CUSTOM_AUDIO_POLICY), 1) + +include $(CLEAR_VARS) + +LOCAL_SRC_FILES:= \ + AudioPolicyFactory.cpp + +LOCAL_SHARED_LIBRARIES := \ + libaudiopolicymanagerdefault + LOCAL_MODULE:= libaudiopolicymanager include $(BUILD_SHARED_LIBRARY) diff --git a/services/audiopolicy/AudioPolicyFactory.cpp b/services/audiopolicy/AudioPolicyFactory.cpp new file mode 100644 index 0000000..2ae7bc1 --- /dev/null +++ b/services/audiopolicy/AudioPolicyFactory.cpp @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2014 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. + */ + +#include "AudioPolicyManager.h" + +namespace android { + +extern "C" AudioPolicyInterface* createAudioPolicyManager( + AudioPolicyClientInterface *clientInterface) +{ + return new AudioPolicyManager(clientInterface); +} + +extern "C" void destroyAudioPolicyManager(AudioPolicyInterface *interface) +{ + delete interface; +} + +}; // namespace android diff --git a/services/audiopolicy/AudioPolicyService.cpp b/services/audiopolicy/AudioPolicyService.cpp index e86f4a2..93fab11 100644 --- a/services/audiopolicy/AudioPolicyService.cpp +++ b/services/audiopolicy/AudioPolicyService.cpp @@ -108,7 +108,7 @@ AudioPolicyService::AudioPolicyService() ALOGI("AudioPolicyService CSTOR in new mode"); mAudioPolicyClient = new AudioPolicyClient(this); - mAudioPolicyManager = new AudioPolicyManager(mAudioPolicyClient); + mAudioPolicyManager = createAudioPolicyManager(mAudioPolicyClient); #endif // load audio pre processing modules @@ -145,7 +145,7 @@ AudioPolicyService::~AudioPolicyService() audio_policy_dev_close(mpAudioPolicyDev); } #else - delete mAudioPolicyManager; + destroyAudioPolicyManager(mAudioPolicyManager); delete mAudioPolicyClient; #endif diff --git a/services/audiopolicy/AudioPolicyService.h b/services/audiopolicy/AudioPolicyService.h index 40f589b..66d9cad 100644 --- a/services/audiopolicy/AudioPolicyService.h +++ b/services/audiopolicy/AudioPolicyService.h @@ -539,7 +539,7 @@ private: sp<AudioCommandThread> mOutputCommandThread; // process stop and release output struct audio_policy_device *mpAudioPolicyDev; struct audio_policy *mpAudioPolicy; - AudioPolicyManager *mAudioPolicyManager; + AudioPolicyInterface *mAudioPolicyManager; AudioPolicyClient *mAudioPolicyClient; KeyedVector< audio_source_t, InputSourceDesc* > mInputSources; |