[BUG] audio: Misalignement of Native/Java AudioAttributes
Native audio attributes are initialized with a default source, whereas JAVA AudioAttributes are initialized with an INVALID source. It leads to equality failure, thus preventing to identify the right strategy / volume group. This CL fixes this misalignement by using the builder constructor from AudioAttributes, thus cleaning the input source. Test: AudioVolumeGroupTest Bug: 238058094 Bug: 248287204 Merged-In: I0aa6f19bb0f448e853adcc0dacece4d69c665602 Change-Id: I0aa6f19bb0f448e853adcc0dacece4d69c665602 (cherry picked from commit 47e3b6bf552e7d82c58999ad0a68f2d82219646e)
This commit is contained in:
parent
7591dd408d
commit
dab2157081
@ -86,8 +86,8 @@ static jint convertAudioProductStrategiesFromNative(
|
||||
|
||||
// Audio Attributes Group array
|
||||
int attrGroupIndex = 0;
|
||||
std::map<int /**attributesGroupIndex*/, std::vector<AudioAttributes> > groups;
|
||||
for (const auto &attr : strategy.getAudioAttributes()) {
|
||||
std::map<int /**attributesGroupIndex*/, std::vector<VolumeGroupAttributes> > groups;
|
||||
for (const auto &attr : strategy.getVolumeGroupAttributes()) {
|
||||
int groupId = attr.getGroupId();
|
||||
int streamType = attr.getStreamType();
|
||||
const auto &iter = std::find_if(begin(groups), end(groups),
|
||||
@ -108,17 +108,17 @@ static jint convertAudioProductStrategiesFromNative(
|
||||
jAudioAttributesGroups = env->NewObjectArray(numAttributesGroups, gAudioAttributesGroupClass, NULL);
|
||||
|
||||
for (const auto &iter : groups) {
|
||||
std::vector<AudioAttributes> audioAttributesGroups = iter.second;
|
||||
jint numAttributes = audioAttributesGroups.size();
|
||||
jint jGroupId = audioAttributesGroups.front().getGroupId();
|
||||
jint jLegacyStreamType = audioAttributesGroups.front().getStreamType();
|
||||
std::vector<VolumeGroupAttributes> volumeGroupAttributes = iter.second;
|
||||
jint numAttributes = volumeGroupAttributes.size();
|
||||
jint jGroupId = volumeGroupAttributes.front().getGroupId();
|
||||
jint jLegacyStreamType = volumeGroupAttributes.front().getStreamType();
|
||||
|
||||
jStatus = JNIAudioAttributeHelper::getJavaArray(env, &jAudioAttributes, numAttributes);
|
||||
if (jStatus != (jint)AUDIO_JAVA_SUCCESS) {
|
||||
goto exit;
|
||||
}
|
||||
for (size_t j = 0; j < static_cast<size_t>(numAttributes); j++) {
|
||||
auto attributes = audioAttributesGroups[j].getAttributes();
|
||||
auto attributes = volumeGroupAttributes[j].getAttributes();
|
||||
|
||||
jStatus = JNIAudioAttributeHelper::nativeToJava(env, &jAudioAttribute, attributes);
|
||||
if (jStatus != AUDIO_JAVA_SUCCESS) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user