summaryrefslogtreecommitdiffstats
path: root/services/audiopolicy/service/AudioPolicyService.h
diff options
context:
space:
mode:
Diffstat (limited to 'services/audiopolicy/service/AudioPolicyService.h')
-rw-r--r--services/audiopolicy/service/AudioPolicyService.h55
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);