summaryrefslogtreecommitdiffstats
path: root/media/libmedia/IAudioPolicyService.cpp
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2014-09-25 14:11:47 -0700
committerEric Laurent <elaurent@google.com>2014-09-25 16:44:07 -0700
commitbb6c9a05840d924b502ce0f1868fca4881ada1ed (patch)
treeaec6d28b7ab31fec27416c6e853c94c2eedfcd9b /media/libmedia/IAudioPolicyService.cpp
parenta935c76f96b066941b34f81c42b3fe9d00db98c5 (diff)
downloadframeworks_av-bb6c9a05840d924b502ce0f1868fca4881ada1ed.zip
frameworks_av-bb6c9a05840d924b502ce0f1868fca4881ada1ed.tar.gz
frameworks_av-bb6c9a05840d924b502ce0f1868fca4881ada1ed.tar.bz2
audio: fix stream type for accessibility usage
Make sure that accessibility prompts are heard when a ringtone is active by forcing stream type to AUDIO_STREAM_RING when phone state is AUDIO_MODE_RINGTONE. Bug: 17558149. Change-Id: Ia3bead8052fca5cbf282c267f7b9b06014fef628
Diffstat (limited to 'media/libmedia/IAudioPolicyService.cpp')
-rw-r--r--media/libmedia/IAudioPolicyService.cpp20
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);
}