Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c541ff07 authored by Jakub Pawlowski's avatar Jakub Pawlowski Committed by android-build-merger
Browse files

Merge "Set Hearing Aid volume after connection" into pi-dev

am: 70cc54bd

Change-Id: Id16dd7f5f8788ba615bb17b95e3883813ec43219
parents e205bc2e 70cc54bd
Loading
Loading
Loading
Loading
+18 −20
Original line number Diff line number Diff line
@@ -1649,16 +1649,7 @@ public class AudioService extends IAudioService.Stub

            // Check if volume update should be send to Hearing Aid
            if ((device & AudioSystem.DEVICE_OUT_HEARING_AID) != 0) {
                synchronized (mHearingAidLock) {
                    if (mHearingAid != null) {
                        //hearing aid expect volume value in range -128dB to 0dB
                        int gainDB = (int)AudioSystem.getStreamVolumeDB(streamType, newIndex/10,
                                AudioSystem.DEVICE_OUT_HEARING_AID);
                        if (gainDB < BT_HEARING_AID_GAIN_MIN)
                            gainDB = BT_HEARING_AID_GAIN_MIN;
                        mHearingAid.setVolume(gainDB);
                    }
                }
                setHearingAidVolume(newIndex);
            }

            // Check if volume update should be sent to Hdmi system audio.
@@ -1907,16 +1898,7 @@ public class AudioService extends IAudioService.Stub
            }

            if ((device & AudioSystem.DEVICE_OUT_HEARING_AID) != 0) {
                synchronized (mHearingAidLock) {
                    if (mHearingAid != null) {
                        //hearing aid expect volume value in range -128dB to 0dB
                        int gainDB = (int)AudioSystem.getStreamVolumeDB(streamType, index/10, AudioSystem.DEVICE_OUT_HEARING_AID);
                        if (gainDB < BT_HEARING_AID_GAIN_MIN)
                            gainDB = BT_HEARING_AID_GAIN_MIN;
                        mHearingAid.setVolume(gainDB);

                    }
                }
                setHearingAidVolume(index);
            }

            if (streamTypeAlias == AudioSystem.STREAM_MUSIC) {
@@ -5624,8 +5606,24 @@ public class AudioService extends IAudioService.Stub
                makeDeviceListKey(AudioSystem.DEVICE_IN_BLUETOOTH_A2DP, address));
    }

    private void setHearingAidVolume(int index) {
        synchronized (mHearingAidLock) {
            if (mHearingAid != null) {
                //hearing aid expect volume value in range -128dB to 0dB
                int gainDB = (int)AudioSystem.getStreamVolumeDB(AudioSystem.STREAM_MUSIC, index/10,
                        AudioSystem.DEVICE_OUT_HEARING_AID);
                if (gainDB < BT_HEARING_AID_GAIN_MIN)
                    gainDB = BT_HEARING_AID_GAIN_MIN;
                mHearingAid.setVolume(gainDB);
            }
        }
    }

    // must be called synchronized on mConnectedDevices
    private void makeHearingAidDeviceAvailable(String address, String name, String eventSource) {
        int index = mStreamStates[AudioSystem.STREAM_MUSIC].getIndex(AudioSystem.DEVICE_OUT_HEARING_AID);
        setHearingAidVolume(index);

        AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_HEARING_AID,
                AudioSystem.DEVICE_STATE_AVAILABLE, address, name);
        mConnectedDevices.put(