summaryrefslogtreecommitdiffstats
path: root/services/audiopolicy
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2014-12-10 14:15:03 -0800
committerGlenn Kasten <gkasten@google.com>2014-12-10 14:15:03 -0800
commit66b17e9dfe114ae968bfb2f8ad8325527e373c65 (patch)
tree8069ffdd95cd722e4da206b203856d2afe23f154 /services/audiopolicy
parentb279f5adfa2fd6f22c87b3a7106fbb62a0b9a5d2 (diff)
parentf5a968a0d0d3275dc3f69fa827ae7978999e5916 (diff)
downloadframeworks_av-66b17e9dfe114ae968bfb2f8ad8325527e373c65.zip
frameworks_av-66b17e9dfe114ae968bfb2f8ad8325527e373c65.tar.gz
frameworks_av-66b17e9dfe114ae968bfb2f8ad8325527e373c65.tar.bz2
Merge commit 'f5a968a0' into mm
Change-Id: Ifd30546c11def40ad483f27c9d7baa4008fcbac3
Diffstat (limited to 'services/audiopolicy')
-rw-r--r--services/audiopolicy/AudioPolicyInterface.h4
-rw-r--r--services/audiopolicy/AudioPolicyInterfaceImpl.cpp16
-rw-r--r--services/audiopolicy/AudioPolicyInterfaceImplLegacy.cpp8
-rw-r--r--services/audiopolicy/AudioPolicyService.h3
4 files changed, 30 insertions, 1 deletions
diff --git a/services/audiopolicy/AudioPolicyInterface.h b/services/audiopolicy/AudioPolicyInterface.h
index 5bcbca8..2826cad 100644
--- a/services/audiopolicy/AudioPolicyInterface.h
+++ b/services/audiopolicy/AudioPolicyInterface.h
@@ -18,6 +18,7 @@
#define ANDROID_AUDIOPOLICY_INTERFACE_H
#include <media/AudioSystem.h>
+#include <media/AudioPolicy.h>
#include <utils/String8.h>
#include <hardware/audio_policy.h>
@@ -201,6 +202,9 @@ public:
audio_devices_t *device) = 0;
virtual status_t releaseSoundTriggerSession(audio_session_t session) = 0;
+
+ virtual status_t registerPolicyMixes(Vector<AudioMix> mixes) = 0;
+ virtual status_t unregisterPolicyMixes(Vector<AudioMix> mixes) = 0;
};
diff --git a/services/audiopolicy/AudioPolicyInterfaceImpl.cpp b/services/audiopolicy/AudioPolicyInterfaceImpl.cpp
index abb1b21..d3c9013 100644
--- a/services/audiopolicy/AudioPolicyInterfaceImpl.cpp
+++ b/services/audiopolicy/AudioPolicyInterfaceImpl.cpp
@@ -614,4 +614,20 @@ status_t AudioPolicyService::releaseSoundTriggerSession(audio_session_t session)
return mAudioPolicyManager->releaseSoundTriggerSession(session);
}
+status_t AudioPolicyService::registerPolicyMixes(Vector<AudioMix> mixes, bool registration)
+{
+ Mutex::Autolock _l(mLock);
+ if(!modifyAudioRoutingAllowed()) {
+ return PERMISSION_DENIED;
+ }
+ if (mAudioPolicyManager == NULL) {
+ return NO_INIT;
+ }
+ if (registration) {
+ return mAudioPolicyManager->registerPolicyMixes(mixes);
+ } else {
+ return mAudioPolicyManager->unregisterPolicyMixes(mixes);
+ }
+}
+
}; // namespace android
diff --git a/services/audiopolicy/AudioPolicyInterfaceImplLegacy.cpp b/services/audiopolicy/AudioPolicyInterfaceImplLegacy.cpp
index 4e42b25..4bc3c7f 100644
--- a/services/audiopolicy/AudioPolicyInterfaceImplLegacy.cpp
+++ b/services/audiopolicy/AudioPolicyInterfaceImplLegacy.cpp
@@ -555,7 +555,7 @@ status_t AudioPolicyService::setAudioPortConfig(const struct audio_port_config *
status_t AudioPolicyService::getOutputForAttr(const audio_attributes_t *attr,
audio_io_handle_t *output,
- audio_session_t session,
+ audio_session_t session __unused,
audio_stream_type_t *stream,
uint32_t samplingRate,
audio_format_t format,
@@ -590,4 +590,10 @@ status_t AudioPolicyService::releaseSoundTriggerSession(audio_session_t session
return INVALID_OPERATION;
}
+status_t AudioPolicyService::registerPolicyMixes(Vector<AudioMix> mixes __unused,
+ bool registration __unused)
+{
+ return INVALID_OPERATION;
+}
+
}; // namespace android
diff --git a/services/audiopolicy/AudioPolicyService.h b/services/audiopolicy/AudioPolicyService.h
index 74a59a8..80284a4 100644
--- a/services/audiopolicy/AudioPolicyService.h
+++ b/services/audiopolicy/AudioPolicyService.h
@@ -30,6 +30,7 @@
#include <media/IAudioPolicyService.h>
#include <media/ToneGenerator.h>
#include <media/AudioEffect.h>
+#include <media/AudioPolicy.h>
#ifdef USE_LEGACY_AUDIO_POLICY
#include <hardware_legacy/AudioPolicyInterface.h>
#endif
@@ -187,6 +188,8 @@ public:
virtual audio_mode_t getPhoneState();
+ virtual status_t registerPolicyMixes(Vector<AudioMix> mixes, bool registration);
+
status_t doStopOutput(audio_io_handle_t output,
audio_stream_type_t stream,
audio_session_t session);