summaryrefslogtreecommitdiffstats
path: root/media/libmedia/IAudioPolicyService.cpp
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2011-02-02 09:33:30 -0800
committerEric Laurent <elaurent@google.com>2011-02-03 09:26:24 -0800
commiteda6c364c253ba97ee45a3adeb8c2b45db1f81db (patch)
tree7e8011600b617e524645928514e5eaf3f867bb75 /media/libmedia/IAudioPolicyService.cpp
parentab8a0badb8fb1e294dacf2eb6a891439f348aff9 (diff)
downloadframeworks_av-eda6c364c253ba97ee45a3adeb8c2b45db1f81db.zip
frameworks_av-eda6c364c253ba97ee45a3adeb8c2b45db1f81db.tar.gz
frameworks_av-eda6c364c253ba97ee45a3adeb8c2b45db1f81db.tar.bz2
Fix issue 3371080
Modified default volume control logic in AudioService: 1 IN_CALL volume if in video/audio chat 2 NOTIFICATION if notification is playing or was playing less than 5s ago. 3 MUSIC Modified silent mode: - now also affect MUSIC stream type - entering silent mode when VOL- hard key is pressed once while selected stream volume is already at 0 (except for VOICE_CALL stream). - exiting silent mode when pressing VOL+ hard key while in silent mode Play sound FX (audible selections, keyboard clicks) at a fixed volume. Modified audio framework: - isStreamActive() method now implemented in AudioPolicyManagerBase (previously AudioFlinger) - iStreamActive() now specifies a time window during which the stream is considered active after it actually stopped. Change-Id: I7e5a0724099450b9fc90825224180ac97322785f
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 950c213..457f7ed 100644
--- a/media/libmedia/IAudioPolicyService.cpp
+++ b/media/libmedia/IAudioPolicyService.cpp
@@ -48,7 +48,8 @@ enum {
GET_STRATEGY_FOR_STREAM,
GET_OUTPUT_FOR_EFFECT,
REGISTER_EFFECT,
- UNREGISTER_EFFECT
+ UNREGISTER_EFFECT,
+ IS_STREAM_ACTIVE
};
class BpAudioPolicyService : public BpInterface<IAudioPolicyService>
@@ -297,6 +298,15 @@ public:
return static_cast <status_t> (reply.readInt32());
}
+ virtual bool isStreamActive(int stream, uint32_t inPastMs) const
+ {
+ Parcel data, reply;
+ data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor());
+ data.writeInt32(stream);
+ data.writeInt32(inPastMs);
+ remote()->transact(IS_STREAM_ACTIVE, data, &reply);
+ return reply.readInt32();
+ }
};
IMPLEMENT_META_INTERFACE(AudioPolicyService, "android.media.IAudioPolicyService");
@@ -517,6 +527,14 @@ status_t BnAudioPolicyService::onTransact(
return NO_ERROR;
} break;
+ case IS_STREAM_ACTIVE: {
+ CHECK_INTERFACE(IAudioPolicyService, data, reply);
+ int stream = data.readInt32();
+ uint32_t inPastMs = (uint32_t)data.readInt32();
+ reply->writeInt32( isStreamActive(stream, inPastMs) );
+ return NO_ERROR;
+ } break;
+
default:
return BBinder::onTransact(code, data, reply, flags);
}