diff options
Diffstat (limited to 'include/media')
-rw-r--r-- | include/media/AudioPolicy.h | 19 | ||||
-rw-r--r-- | include/media/AudioSystem.h | 3 |
2 files changed, 16 insertions, 6 deletions
diff --git a/include/media/AudioPolicy.h b/include/media/AudioPolicy.h index 800b27b..feed402 100644 --- a/include/media/AudioPolicy.h +++ b/include/media/AudioPolicy.h @@ -38,14 +38,17 @@ namespace android { #define MIX_TYPE_PLAYERS 0 #define MIX_TYPE_RECORDERS 1 +// definition of the different events that can be reported on a dynamic policy from +// AudioSystem's implementation of the AudioPolicyClient interface +// keep in sync with AudioSystem.java +#define DYNAMIC_POLICY_EVENT_MIX_STATE_UPDATE 0 + #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 MIX_ROUTE_FLAG_RENDER 0x1 +#define MIX_ROUTE_FLAG_LOOP_BACK (0x1 << 1) #define MAX_MIXES_PER_POLICY 10 #define MAX_CRITERIA_PER_MIX 20 @@ -67,11 +70,15 @@ public: class AudioMix { public: + // flag on an AudioMix indicating the activity on this mix (IDLE, MIXING) + // must be reported through the AudioPolicyClient interface + static const uint32_t kCbFlagNotifyActivity = 0x1; + AudioMix() {} AudioMix(Vector<AttributeMatchCriterion> criteria, uint32_t mixType, audio_config_t format, uint32_t routeFlags, String8 registrationId, uint32_t flags) : mCriteria(criteria), mMixType(mixType), mFormat(format), - mRouteFlags(routeFlags), mRegistrationId(registrationId), mFlags(flags){} + mRouteFlags(routeFlags), mRegistrationId(registrationId), mCbFlags(flags){} status_t readFromParcel(Parcel *parcel); status_t writeToParcel(Parcel *parcel) const; @@ -81,7 +88,7 @@ public: audio_config_t mFormat; uint32_t mRouteFlags; String8 mRegistrationId; - uint32_t mFlags; + uint32_t mCbFlags; // flags indicating which callbacks to use, see kCbFlag* }; }; // namespace android diff --git a/include/media/AudioSystem.h b/include/media/AudioSystem.h index 182133c..a3af1b2 100644 --- a/include/media/AudioSystem.h +++ b/include/media/AudioSystem.h @@ -29,6 +29,7 @@ namespace android { typedef void (*audio_error_callback)(status_t err); +typedef void (*dynamic_policy_callback)(int event, String8 regId, int val); class IAudioFlinger; class IAudioPolicyService; @@ -89,6 +90,7 @@ public: static String8 getParameters(const String8& keys); static void setErrorCallback(audio_error_callback cb); + static void setDynPolicyCallback(dynamic_policy_callback cb); // helper function to obtain AudioFlinger service handle static const sp<IAudioFlinger> get_audio_flinger(); @@ -408,6 +410,7 @@ private: static Mutex gLockAPS; // protects gAudioPolicyService and gAudioPolicyServiceClient static sp<IAudioFlinger> gAudioFlinger; static audio_error_callback gAudioErrorCallback; + static dynamic_policy_callback gDynPolicyCallback; static size_t gInBuffSize; // previous parameters for recording buffer size queries |