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

Commit 87eda829 authored by Amy's avatar Amy Committed by Amy Zhang
Browse files

GiveSystemAudioModeStatus handler and test.

Test: atest com.android.server.hdmi
Change-Id: I8c744044fee9d7330475c3bbd8f97f59628731d2
(cherry picked from commit 0f86ea93f72f02c81e1643e025ea2280305e65b8)
parent a0b4f4ed
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.server.hdmi;
import android.hardware.hdmi.HdmiDeviceInfo;
import android.media.AudioManager;
import android.os.SystemProperties;
import com.android.internal.annotations.GuardedBy;
import com.android.server.hdmi.HdmiAnnotations.ServiceThreadOnly;

/**
@@ -28,6 +29,11 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDevice {

    private static final String TAG = "HdmiCecLocalDeviceAudioSystem";

    // Whether System audio mode is activated or not.
    // This becomes true only when all system audio sequences are finished.
    @GuardedBy("mLock")
    private boolean mSystemAudioActivated;

    protected HdmiCecLocalDeviceAudioSystem(HdmiControlService service) {
        super(service, HdmiDeviceInfo.DEVICE_AUDIO_SYSTEM);
    }
@@ -104,6 +110,15 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDevice {
        return true;
    }

    @Override
    @ServiceThreadOnly
    protected boolean handleGiveSystemAudioModeStatus(HdmiCecMessage message) {
        assertRunOnServiceThread();
        mService.sendCecCommand(HdmiCecMessageBuilder
            .buildReportSystemAudioMode(mAddress, message.getSource(), mSystemAudioActivated));
        return true;
    }

    private void reportAudioStatus(HdmiCecMessage message) {
        assertRunOnServiceThread();

+12 −0
Original line number Diff line number Diff line
@@ -106,4 +106,16 @@ public class HdmiCecLocalDeviceAudioSystemTest {

        assertTrue(mResultMessage.equals(expectMessage));
    }

    @Test
    public void handleGiveSystemAudioModeStatus_off() {
        HdmiCecMessage expectMessage = HdmiCecMessageBuilder
            .buildReportSystemAudioMode(ADDR_UNREGISTERED, ADDR_TV, false);

        HdmiCecMessage message = HdmiCecMessageBuilder
            .buildGiveSystemAudioModeStatus(ADDR_TV, ADDR_AUDIO_SYSTEM);
        assertTrue(mHdmiCecLocalDeviceAudioSystem.handleGiveSystemAudioModeStatus(message));

        assertTrue(mResultMessage.equals(expectMessage));
    }
}