summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authorDima Zavin <dima@android.com>2011-04-26 19:51:06 -0700
committerDima Zavin <dima@android.com>2011-04-27 10:48:25 -0700
commitd8d8c60a3a91a2029294d95344b80d76fec09aed (patch)
treefe92b7a5ba56f5f3607113290f3396e164e0f4b0 /audio
parentb7e1f72899e7abb8416b1b76ae840c64c1c9eaaa (diff)
downloadhardware_libhardware_legacy-d8d8c60a3a91a2029294d95344b80d76fec09aed.tar.gz
hardware_libhardware_legacy-d8d8c60a3a91a2029294d95344b80d76fec09aed.tar.bz2
hardware_libhardware_legacy-d8d8c60a3a91a2029294d95344b80d76fec09aed.zip
hardware_legacy/audio: provide a default audio policy implementation
This uses the legacy policy code to build a default implementation that can be used while we figure out what the new policy inheritance should look like. Change-Id: I3e4154abc7152b4f560b28e391a268bf508767e3 Signed-off-by: Dima Zavin <dima@android.com>
Diffstat (limited to 'audio')
-rw-r--r--audio/Android.mk28
-rw-r--r--audio/AudioPolicyManagerDefault.cpp34
-rw-r--r--audio/AudioPolicyManagerDefault.h43
3 files changed, 105 insertions, 0 deletions
diff --git a/audio/Android.mk b/audio/Android.mk
index 5a5a5a1..ef41374 100644
--- a/audio/Android.mk
+++ b/audio/Android.mk
@@ -41,6 +41,34 @@ LOCAL_MODULE_TAGS := optional
include $(BUILD_STATIC_LIBRARY)
+# The default audio policy, for now still implemented on top of legacy
+# policy code
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+ AudioPolicyManagerDefault.cpp
+
+LOCAL_SHARED_LIBRARIES := \
+ libcutils \
+ libutils \
+ libmedia
+
+LOCAL_STATIC_LIBRARIES := \
+ libmedia_helper
+
+LOCAL_WHOLE_STATIC_LIBRARIES := \
+ libaudiopolicy_legacy
+
+LOCAL_MODULE := audio_policy.default
+LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
+LOCAL_MODULE_TAGS := optional
+
+ifeq ($(BOARD_HAVE_BLUETOOTH),true)
+ LOCAL_CFLAGS += -DWITH_A2DP
+endif
+
+include $(BUILD_SHARED_LIBRARY)
+
#ifeq ($(ENABLE_AUDIO_DUMP),true)
# LOCAL_SRC_FILES += AudioDumpInterface.cpp
# LOCAL_CFLAGS += -DENABLE_AUDIO_DUMP
diff --git a/audio/AudioPolicyManagerDefault.cpp b/audio/AudioPolicyManagerDefault.cpp
new file mode 100644
index 0000000..9083638
--- /dev/null
+++ b/audio/AudioPolicyManagerDefault.cpp
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2009 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 "AudioPolicyManagerDefault"
+//#define LOG_NDEBUG 0
+
+#include "AudioPolicyManagerDefault.h"
+
+namespace android_audio_legacy {
+
+extern "C" AudioPolicyInterface* createAudioPolicyManager(AudioPolicyClientInterface *clientInterface)
+{
+ return new AudioPolicyManagerDefault(clientInterface);
+}
+
+extern "C" void destroyAudioPolicyManager(AudioPolicyInterface *interface)
+{
+ delete interface;
+}
+
+}; // namespace android
diff --git a/audio/AudioPolicyManagerDefault.h b/audio/AudioPolicyManagerDefault.h
new file mode 100644
index 0000000..b2b2576
--- /dev/null
+++ b/audio/AudioPolicyManagerDefault.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2009 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 <stdint.h>
+#include <stdbool.h>
+
+#include <hardware_legacy/AudioPolicyManagerBase.h>
+
+namespace android_audio_legacy {
+
+class AudioPolicyManagerDefault: public AudioPolicyManagerBase
+{
+
+public:
+ AudioPolicyManagerDefault(AudioPolicyClientInterface *clientInterface)
+ : AudioPolicyManagerBase(clientInterface) {}
+
+ virtual ~AudioPolicyManagerDefault() {}
+
+protected:
+ // true is current platform implements a back microphone
+ virtual bool hasBackMicrophone() const { return false; }
+#ifdef WITH_A2DP
+ // true is current platform supports suplication of notifications and ringtones over A2DP output
+ virtual bool a2dpUsedForSonification() const { return true; }
+#endif
+
+};
+};