summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2015-04-14 19:10:14 -0700
committerJean-Michel Trivi <jmtrivi@google.com>2015-04-14 19:20:20 -0700
commitde80105c3f2db0eabd47640c49387ea3b44d4782 (patch)
tree9775c7bbe30ef1ab13a888def8531cb0f87b1756 /include
parent079e121934106860af5ff5491bd3884453d1fdb3 (diff)
downloadframeworks_av-de80105c3f2db0eabd47640c49387ea3b44d4782.zip
frameworks_av-de80105c3f2db0eabd47640c49387ea3b44d4782.tar.gz
frameworks_av-de80105c3f2db0eabd47640c49387ea3b44d4782.tar.bz2
AudioPolicyManager: notification of dynamic policy mix activity
Implement non-stream type specific ref counting in output descriptors to keep track of mix activity. Notify audio policy client of mix activity changes. Bug 20226914 Change-Id: Iec939cb640c58056f88947b611d23b4bb6d8a11b
Diffstat (limited to 'include')
-rw-r--r--include/media/AudioPolicy.h11
-rw-r--r--include/media/AudioSystem.h1
-rw-r--r--include/media/IAudioPolicyServiceClient.h2
3 files changed, 12 insertions, 2 deletions
diff --git a/include/media/AudioPolicy.h b/include/media/AudioPolicy.h
index a755e1e..800b27b 100644
--- a/include/media/AudioPolicy.h
+++ b/include/media/AudioPolicy.h
@@ -38,9 +38,15 @@ namespace android {
#define MIX_TYPE_PLAYERS 0
#define MIX_TYPE_RECORDERS 1
+#define MIX_STATE_DISABLED -1
+#define MIX_STATE_IDLE 0
+#define MIX_STATE_MIXING 1
+
#define ROUTE_FLAG_RENDER 0x1
#define ROUTE_FLAG_LOOP_BACK (0x1 << 1)
+#define MIX_FLAG_NOTIFY_ACTIVITY 0x1
+
#define MAX_MIXES_PER_POLICY 10
#define MAX_CRITERIA_PER_MIX 20
@@ -63,9 +69,9 @@ class AudioMix {
public:
AudioMix() {}
AudioMix(Vector<AttributeMatchCriterion> criteria, uint32_t mixType, audio_config_t format,
- uint32_t routeFlags, String8 registrationId) :
+ uint32_t routeFlags, String8 registrationId, uint32_t flags) :
mCriteria(criteria), mMixType(mixType), mFormat(format),
- mRouteFlags(routeFlags), mRegistrationId(registrationId) {}
+ mRouteFlags(routeFlags), mRegistrationId(registrationId), mFlags(flags){}
status_t readFromParcel(Parcel *parcel);
status_t writeToParcel(Parcel *parcel) const;
@@ -75,6 +81,7 @@ public:
audio_config_t mFormat;
uint32_t mRouteFlags;
String8 mRegistrationId;
+ uint32_t mFlags;
};
}; // namespace android
diff --git a/include/media/AudioSystem.h b/include/media/AudioSystem.h
index 3b6db8c..927283c 100644
--- a/include/media/AudioSystem.h
+++ b/include/media/AudioSystem.h
@@ -384,6 +384,7 @@ private:
// IAudioPolicyServiceClient
virtual void onAudioPortListUpdate();
virtual void onAudioPatchListUpdate();
+ virtual void onDynamicPolicyMixStateUpdate(String8 regId, int32_t state);
private:
Mutex mLock;
diff --git a/include/media/IAudioPolicyServiceClient.h b/include/media/IAudioPolicyServiceClient.h
index 59df046..a7f2cc3 100644
--- a/include/media/IAudioPolicyServiceClient.h
+++ b/include/media/IAudioPolicyServiceClient.h
@@ -35,6 +35,8 @@ public:
virtual void onAudioPortListUpdate() = 0;
// Notifies a change of audio patch configuration.
virtual void onAudioPatchListUpdate() = 0;
+ // Notifies a change in the mixing state of a specific mix in a dynamic audio policy
+ virtual void onDynamicPolicyMixStateUpdate(String8 regId, int32_t state) = 0;
};