diff options
Diffstat (limited to 'media/libmedia/IAudioPolicyService.cpp')
-rw-r--r-- | media/libmedia/IAudioPolicyService.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/media/libmedia/IAudioPolicyService.cpp b/media/libmedia/IAudioPolicyService.cpp index b57f747..256cb3f 100644 --- a/media/libmedia/IAudioPolicyService.cpp +++ b/media/libmedia/IAudioPolicyService.cpp @@ -67,7 +67,8 @@ enum { REGISTER_CLIENT, GET_OUTPUT_FOR_ATTR, ACQUIRE_SOUNDTRIGGER_SESSION, - RELEASE_SOUNDTRIGGER_SESSION + RELEASE_SOUNDTRIGGER_SESSION, + GET_PHONE_STATE }; class BpAudioPolicyService : public BpInterface<IAudioPolicyService> @@ -607,6 +608,17 @@ public: } return (status_t)reply.readInt32(); } + + virtual audio_mode_t getPhoneState() + { + Parcel data, reply; + data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor()); + status_t status = remote()->transact(GET_PHONE_STATE, data, &reply); + if (status != NO_ERROR) { + return AUDIO_MODE_INVALID; + } + return (audio_mode_t)reply.readInt32(); + } }; IMPLEMENT_META_INTERFACE(AudioPolicyService, "android.media.IAudioPolicyService"); @@ -1057,6 +1069,12 @@ status_t BnAudioPolicyService::onTransact( return NO_ERROR; } break; + case GET_PHONE_STATE: { + CHECK_INTERFACE(IAudioPolicyService, data, reply); + reply->writeInt32((int32_t)getPhoneState()); + return NO_ERROR; + } break; + default: return BBinder::onTransact(code, data, reply, flags); } |