Merge "AudioService: fix step rescaling."

This commit is contained in:
Treehugger Robot
2019-11-05 19:42:45 +00:00
committed by Gerrit Code Review

View File

@@ -1582,12 +1582,13 @@ public class AudioService extends IAudioService.Stub
setMicrophoneMuteNoCallerCheck(currentUser); setMicrophoneMuteNoCallerCheck(currentUser);
} }
private int rescaleIndex(int index, int srcStream, int dstStream) { private int getIndexRange(int streamType) {
int srcRange = return (mStreamStates[streamType].getMaxIndex() - mStreamStates[streamType].getMinIndex());
mStreamStates[srcStream].getMaxIndex() - mStreamStates[srcStream].getMinIndex(); }
int dstRange =
mStreamStates[dstStream].getMaxIndex() - mStreamStates[dstStream].getMinIndex();
private int rescaleIndex(int index, int srcStream, int dstStream) {
int srcRange = getIndexRange(srcStream);
int dstRange = getIndexRange(dstStream);
if (srcRange == 0) { if (srcRange == 0) {
Log.e(TAG, "rescaleIndex : index range should not be zero"); Log.e(TAG, "rescaleIndex : index range should not be zero");
return mStreamStates[dstStream].getMinIndex(); return mStreamStates[dstStream].getMinIndex();
@@ -1598,6 +1599,17 @@ public class AudioService extends IAudioService.Stub
/ srcRange; / srcRange;
} }
private int rescaleStep(int step, int srcStream, int dstStream) {
int srcRange = getIndexRange(srcStream);
int dstRange = getIndexRange(dstStream);
if (srcRange == 0) {
Log.e(TAG, "rescaleStep : index range should not be zero");
return 0;
}
return ((step * dstRange + srcRange / 2) / srcRange);
}
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// IPC methods // IPC methods
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
@@ -1774,7 +1786,7 @@ public class AudioService extends IAudioService.Stub
} }
} else { } else {
// convert one UI step (+/-1) into a number of internal units on the stream alias // convert one UI step (+/-1) into a number of internal units on the stream alias
step = rescaleIndex(10, streamType, streamTypeAlias); step = rescaleStep(10, streamType, streamTypeAlias);
} }
// If either the client forces allowing ringer modes for this adjustment, // If either the client forces allowing ringer modes for this adjustment,