diff options
author | Eric Laurent <elaurent@google.com> | 2014-05-20 11:27:36 -0700 |
---|---|---|
committer | Eric Laurent <elaurent@google.com> | 2014-05-29 18:01:58 -0700 |
commit | b52c152d553556b2d227ffc943489de0c60b4b02 (patch) | |
tree | bcaca952efbd1ffa7eefa7251beafc3d2574a04a /include/media/AudioSystem.h | |
parent | 6a94d69dc4f32abb53c466a96f905bb199be6417 (diff) | |
download | frameworks_av-b52c152d553556b2d227ffc943489de0c60b4b02.zip frameworks_av-b52c152d553556b2d227ffc943489de0c60b4b02.tar.gz frameworks_av-b52c152d553556b2d227ffc943489de0c60b4b02.tar.bz2 |
audio policy: add routing update client interface
Added IAudioPolicyServiceClient client binder interface
for client process to receive notifications from AudioPolicyService
when audio ports are added/removed or audio patches created/released.
The audio patches owned by a given client are automatically released when
this client binder dies.
Bug: 14815883.
Change-Id: I6013f6aec03b50565cffb1ad2cd1f0f8852032c5
Diffstat (limited to 'include/media/AudioSystem.h')
-rw-r--r-- | include/media/AudioSystem.h | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/include/media/AudioSystem.h b/include/media/AudioSystem.h index a79a9ff..6fe0c7f 100644 --- a/include/media/AudioSystem.h +++ b/include/media/AudioSystem.h @@ -19,6 +19,7 @@ #include <hardware/audio_effect.h> #include <media/IAudioFlingerClient.h> +#include <media/IAudioPolicyServiceClient.h> #include <system/audio.h> #include <system/audio_policy.h> #include <utils/Errors.h> @@ -301,6 +302,21 @@ public: // ---------------------------------------------------------------------------- + class AudioPortCallback : public RefBase + { + public: + + AudioPortCallback() {} + virtual ~AudioPortCallback() {} + + virtual void onAudioPortListUpdate() = 0; + virtual void onAudioPatchListUpdate() = 0; + virtual void onServiceDied() = 0; + + }; + + static void setAudioPortCallback(sp<AudioPortCallback> callBack); + private: class AudioFlingerClient: public IBinder::DeathRecipient, public BnAudioFlingerClient @@ -319,7 +335,8 @@ private: virtual void ioConfigChanged(int event, audio_io_handle_t ioHandle, const void *param2); }; - class AudioPolicyServiceClient: public IBinder::DeathRecipient + class AudioPolicyServiceClient: public IBinder::DeathRecipient, + public BnAudioPolicyServiceClient { public: AudioPolicyServiceClient() { @@ -327,6 +344,10 @@ private: // DeathRecipient virtual void binderDied(const wp<IBinder>& who); + + // IAudioPolicyServiceClient + virtual void onAudioPortListUpdate(); + virtual void onAudioPatchListUpdate(); }; static sp<AudioFlingerClient> gAudioFlingerClient; @@ -349,6 +370,8 @@ private: // list of output descriptors containing cached parameters // (sampling rate, framecount, channel count...) static DefaultKeyedVector<audio_io_handle_t, OutputDescriptor *> gOutputs; + + static sp<AudioPortCallback> gAudioPortCallback; }; }; // namespace android |