summaryrefslogtreecommitdiffstats
path: root/services/audiopolicy/service/AudioPolicyService.h
diff options
context:
space:
mode:
authorHaynes Mathew George <hgeorge@codeaurora.org>2015-12-08 15:11:51 -0800
committerSteve Kondik <steve@cyngn.com>2015-12-23 14:27:58 -0800
commitde3b1c01146d2103f6bf56e2659a9c650734945a (patch)
tree0aa0b5965b39e8b2900e669adb8586b69cd0f7f0 /services/audiopolicy/service/AudioPolicyService.h
parent8a0d50583fc6a376816333d781a709d26742226d (diff)
downloadframeworks_av-de3b1c01146d2103f6bf56e2659a9c650734945a.zip
frameworks_av-de3b1c01146d2103f6bf56e2659a9c650734945a.tar.gz
frameworks_av-de3b1c01146d2103f6bf56e2659a9c650734945a.tar.bz2
audiopolicy: Handle startOutput on output command thread
Handle startOutput on AudioPolicyService output command thread to serialize with concurrent releaseOutput/stopOutput calls. CRs-Fixed: 944129 Change-Id: Ie333c736750c7dfb31d3036d79dfff13cd0486fc
Diffstat (limited to 'services/audiopolicy/service/AudioPolicyService.h')
-rw-r--r--services/audiopolicy/service/AudioPolicyService.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/services/audiopolicy/service/AudioPolicyService.h b/services/audiopolicy/service/AudioPolicyService.h
index a0d5aa2..d11294b 100644
--- a/services/audiopolicy/service/AudioPolicyService.h
+++ b/services/audiopolicy/service/AudioPolicyService.h
@@ -202,6 +202,9 @@ public:
audio_io_handle_t *handle);
virtual status_t stopAudioSource(audio_io_handle_t handle);
+ status_t doStartOutput(audio_io_handle_t output,
+ audio_stream_type_t stream,
+ audio_session_t session);
status_t doStopOutput(audio_io_handle_t output,
audio_stream_type_t stream,
audio_session_t session);
@@ -249,6 +252,7 @@ private:
SET_VOLUME,
SET_PARAMETERS,
SET_VOICE_VOLUME,
+ START_OUTPUT,
STOP_OUTPUT,
RELEASE_OUTPUT,
CREATE_AUDIO_PATCH,
@@ -277,6 +281,9 @@ private:
status_t parametersCommand(audio_io_handle_t ioHandle,
const char *keyValuePairs, int delayMs = 0);
status_t voiceVolumeCommand(float volume, int delayMs = 0);
+ status_t startOutputCommand(audio_io_handle_t output,
+ audio_stream_type_t stream,
+ audio_session_t session);
void stopOutputCommand(audio_io_handle_t output,
audio_stream_type_t stream,
audio_session_t session);
@@ -349,6 +356,13 @@ private:
float mVolume;
};
+ class StartOutputData : public AudioCommandData {
+ public:
+ audio_io_handle_t mIO;
+ audio_stream_type_t mStream;
+ audio_session_t mSession;
+ };
+
class StopOutputData : public AudioCommandData {
public:
audio_io_handle_t mIO;