Merge changes I5e12b2c7,Ic79effb1 into rvc-dev

* changes:
  [audiopolicy][managerdefault] Filter unknown stream for volume settings
  [AudioPolicy][engine][Strategy] fallback on music stream
gugelfrei
Eric Laurent 4 years ago committed by Android (Google) Code Review
commit 1cb0a63dd9

@ -73,10 +73,18 @@ bool ProductStrategy::matches(const audio_attributes_t attr) const
audio_stream_type_t ProductStrategy::getStreamTypeForAttributes(
const audio_attributes_t &attr) const
{
const auto iter = std::find_if(begin(mAttributesVector), end(mAttributesVector),
const auto &iter = std::find_if(begin(mAttributesVector), end(mAttributesVector),
[&attr](const auto &supportedAttr) {
return AudioProductStrategy::attributesMatches(supportedAttr.mAttributes, attr); });
return iter != end(mAttributesVector) ? iter->mStream : AUDIO_STREAM_DEFAULT;
if (iter == end(mAttributesVector)) {
return AUDIO_STREAM_DEFAULT;
}
audio_stream_type_t streamType = iter->mStream;
ALOGW_IF(streamType == AUDIO_STREAM_DEFAULT,
"%s: Strategy %s supporting attributes %s has not stream type associated"
"fallback on MUSIC. Do not use stream volume API", __func__, mName.c_str(),
toString(attr).c_str());
return streamType != AUDIO_STREAM_DEFAULT ? streamType : AUDIO_STREAM_MUSIC;
}
audio_attributes_t ProductStrategy::getAttributesForStreamType(audio_stream_type_t streamType) const

@ -2456,6 +2456,10 @@ status_t AudioPolicyManager::setStreamVolumeIndex(audio_stream_type_t stream,
audio_devices_t device)
{
auto attributes = mEngine->getAttributesForStreamType(stream);
if (attributes == AUDIO_ATTRIBUTES_INITIALIZER) {
ALOGW("%s: no group for stream %s, bailing out", __func__, toString(stream).c_str());
return NO_ERROR;
}
ALOGV("%s: stream %s attributes=%s", __func__,
toString(stream).c_str(), toString(attributes).c_str());
return setVolumeIndexForAttributes(attributes, index, device);

Loading…
Cancel
Save