diff options
author | Jean-Michel Trivi <jmtrivi@google.com> | 2012-10-10 17:23:19 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-10-10 17:23:19 -0700 |
commit | b9c24111ecc135d47d563eaa3609730b6b4ee5e0 (patch) | |
tree | 0222bb760921fc560e4692be37bcb04c6cc66c30 /media | |
parent | 142dbcfe437524bc0e8d546d2d43cab2a3ea625b (diff) | |
parent | f84ae1292bc9a6a727ab5aeb08e097054b7d4b5a (diff) | |
download | frameworks_av-b9c24111ecc135d47d563eaa3609730b6b4ee5e0.zip frameworks_av-b9c24111ecc135d47d563eaa3609730b6b4ee5e0.tar.gz frameworks_av-b9c24111ecc135d47d563eaa3609730b6b4ee5e0.tar.bz2 |
am 0f95fadb: am 7e2c0a15: Merge "Support querying active record sources" into jb-mr1-dev
* commit '0f95fadb8a3ee402f2c51a932a06f1f685ab2d35':
Support querying active record sources
Diffstat (limited to 'media')
-rw-r--r-- | media/libmedia/AudioSystem.cpp | 9 | ||||
-rw-r--r-- | media/libmedia/IAudioPolicyService.cpp | 17 |
2 files changed, 26 insertions, 0 deletions
diff --git a/media/libmedia/AudioSystem.cpp b/media/libmedia/AudioSystem.cpp index 5624df4..207f96f 100644 --- a/media/libmedia/AudioSystem.cpp +++ b/media/libmedia/AudioSystem.cpp @@ -735,6 +735,15 @@ status_t AudioSystem::isStreamActive(audio_stream_type_t stream, bool* state, ui return NO_ERROR; } +status_t AudioSystem::isSourceActive(audio_source_t stream, bool* state) +{ + const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); + if (aps == 0) return PERMISSION_DENIED; + if (state == NULL) return BAD_VALUE; + *state = aps->isSourceActive(stream); + return NO_ERROR; +} + int32_t AudioSystem::getPrimaryOutputSamplingRate() { const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); diff --git a/media/libmedia/IAudioPolicyService.cpp b/media/libmedia/IAudioPolicyService.cpp index 31c5d27..401437c 100644 --- a/media/libmedia/IAudioPolicyService.cpp +++ b/media/libmedia/IAudioPolicyService.cpp @@ -52,6 +52,7 @@ enum { REGISTER_EFFECT, UNREGISTER_EFFECT, IS_STREAM_ACTIVE, + IS_SOURCE_ACTIVE, GET_DEVICES_FOR_STREAM, QUERY_DEFAULT_PRE_PROCESSING, SET_EFFECT_ENABLED @@ -329,6 +330,15 @@ public: return reply.readInt32(); } + virtual bool isSourceActive(audio_source_t source) const + { + Parcel data, reply; + data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor()); + data.writeInt32((int32_t) source); + remote()->transact(IS_SOURCE_ACTIVE, data, &reply); + return reply.readInt32(); + } + virtual status_t queryDefaultPreProcessing(int audioSession, effect_descriptor_t *descriptors, uint32_t *count) @@ -592,6 +602,13 @@ status_t BnAudioPolicyService::onTransact( return NO_ERROR; } break; + case IS_SOURCE_ACTIVE: { + CHECK_INTERFACE(IAudioPolicyService, data, reply); + audio_source_t source = (audio_source_t) data.readInt32(); + reply->writeInt32( isSourceActive(source)); + return NO_ERROR; + } + case QUERY_DEFAULT_PRE_PROCESSING: { CHECK_INTERFACE(IAudioPolicyService, data, reply); int audioSession = data.readInt32(); |