diff options
Diffstat (limited to 'services/audiopolicy/service/AudioPolicyService.h')
-rw-r--r-- | services/audiopolicy/service/AudioPolicyService.h | 55 |
1 files changed, 49 insertions, 6 deletions
diff --git a/services/audiopolicy/service/AudioPolicyService.h b/services/audiopolicy/service/AudioPolicyService.h index 9b17a26..01e0e5e 100644 --- a/services/audiopolicy/service/AudioPolicyService.h +++ b/services/audiopolicy/service/AudioPolicyService.h @@ -204,6 +204,13 @@ public: virtual status_t setEffectSessionCallbacksEnabled(bool enabled); + virtual status_t addOutputSessionEffects(audio_io_handle_t output, + audio_stream_type_t stream, + audio_session_t session, + audio_output_flags_t flags, + audio_channel_mask_t channelMask, + uid_t uid); + status_t doStartOutput(audio_io_handle_t output, audio_stream_type_t stream, audio_session_t session); @@ -232,9 +239,15 @@ public: void doOnDynamicPolicyMixStateUpdate(String8 regId, int32_t state); void onOutputSessionEffectsUpdate(audio_stream_type_t stream, - audio_unique_id_t sessionId, bool added); + audio_session_t sessionId, + audio_output_flags_t flags, + audio_channel_mask_t channelMask, + uid_t uid, bool added); void doOnOutputSessionEffectsUpdate(audio_stream_type_t stream, - audio_unique_id_t sessionId, bool added); + audio_session_t sessionId, + audio_output_flags_t flags, + audio_channel_mask_t channelMask, + uid_t uid, bool added); void releaseOutputSessionEffectsDelayed(audio_io_handle_t output, audio_stream_type_t stream, audio_unique_id_t sessionId, @@ -274,6 +287,7 @@ private: DYN_POLICY_MIX_STATE_UPDATE, EFFECT_SESSION_UPDATE, RELEASE_OUTPUT_SESSION_EFFECTS, + ADD_OUTPUT_SESSION_EFFECTS }; AudioCommandThread (String8 name, const wp<AudioPolicyService>& service); @@ -317,11 +331,21 @@ private: void dynamicPolicyMixStateUpdateCommand(String8 regId, int32_t state); void insertCommand_l(AudioCommand *command, int delayMs = 0); void effectSessionUpdateCommand(audio_stream_type_t stream, - audio_unique_id_t sessionId, bool added); + audio_session_t sessionId, + audio_output_flags_t flags, + audio_channel_mask_t channelMask, + uid_t uid, bool added); void releaseOutputSessionEffectsCommand(audio_io_handle_t output, audio_stream_type_t stream, audio_unique_id_t sessionId, int delayMs = 0); + status_t addOutputSessionEffectsCommand(audio_io_handle_t output, + audio_stream_type_t stream, + audio_session_t sessionId, + audio_output_flags_t flags, + audio_channel_mask_t channelMask, + uid_t uid); + private: class AudioCommandData; @@ -421,7 +445,10 @@ private: class EffectSessionUpdateData : public AudioCommandData { public: audio_stream_type_t mStream; - audio_unique_id_t mSessionId; + audio_session_t mSessionId; + audio_output_flags_t mFlags; + audio_channel_mask_t mChannelMask; + uid_t mUid; bool mAdded; }; @@ -432,6 +459,16 @@ private: audio_unique_id_t mSessionId; }; + class AddOutputSessionEffectsData : public AudioCommandData { + public: + audio_io_handle_t mOutput; + audio_stream_type_t mStream; + audio_session_t mSessionId; + audio_output_flags_t mFlags; + audio_channel_mask_t mChannelMask; + uid_t mUid; + }; + Mutex mLock; Condition mWaitWorkCV; Vector < sp<AudioCommand> > mAudioCommands; // list of pending commands @@ -542,7 +579,10 @@ private: virtual audio_unique_id_t newAudioUniqueId(); virtual void onOutputSessionEffectsUpdate(audio_stream_type_t stream, - audio_unique_id_t sessionId, bool added); + audio_session_t sessionId, + audio_output_flags_t flags, + audio_channel_mask_t channelMask, + uid_t uid, bool added); private: AudioPolicyService *mAudioPolicyService; @@ -562,7 +602,10 @@ private: void setAudioPortCallbacksEnabled(bool enabled); void setEffectSessionCallbacksEnabled(bool enabled); void onOutputSessionEffectsUpdate(audio_stream_type_t stream, - audio_unique_id_t sessionId, bool added); + audio_session_t sessionId, + audio_output_flags_t flags, + audio_channel_mask_t channelMask, + uid_t uid, bool added); // IBinder::DeathRecipient virtual void binderDied(const wp<IBinder>& who); |