diff options
author | 2021-05-25 13:25:06 +0000 | |
---|---|---|
committer | 2021-05-25 13:25:06 +0000 | |
commit | aa11e58c63a745b42d3d565ff4e9e35ecd32099f (patch) | |
tree | 3e9ad02b3f750ec296c049c5bc8353be2aae924c /services/surfaceflinger/SurfaceFlinger.cpp | |
parent | 45916263e09d63771c7cc9748f134b45de563c05 (diff) | |
parent | c238fa8420d69ff1f8b1353116b5b1c9f2220c9a (diff) |
Add SF side tunnel mode listener am: 8f04b30c59 am: 2833f90b06 am: c238fa8420
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/14340746
Change-Id: Ib98149545d6feb82c5e720710d4adbe233a6e46f
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 488e6f1390..2227dab6cb 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -130,6 +130,7 @@ #include "SurfaceFlingerProperties.h" #include "SurfaceInterceptor.h" #include "TimeStats/TimeStats.h" +#include "TunnelModeEnabledReporter.h" #include "android-base/parseint.h" #include "android-base/stringprintf.h" #include "android-base/strings.h" @@ -1519,6 +1520,26 @@ status_t SurfaceFlinger::removeFpsListener(const sp<gui::IFpsListener>& listener return NO_ERROR; } +status_t SurfaceFlinger::addTunnelModeEnabledListener( + const sp<gui::ITunnelModeEnabledListener>& listener) { + if (!listener) { + return BAD_VALUE; + } + + mTunnelModeEnabledReporter->addListener(listener); + return NO_ERROR; +} + +status_t SurfaceFlinger::removeTunnelModeEnabledListener( + const sp<gui::ITunnelModeEnabledListener>& listener) { + if (!listener) { + return BAD_VALUE; + } + + mTunnelModeEnabledReporter->removeListener(listener); + return NO_ERROR; +} + status_t SurfaceFlinger::getDisplayBrightnessSupport(const sp<IBinder>& displayToken, bool* outSupport) const { if (!displayToken || !outSupport) { @@ -2225,6 +2246,10 @@ void SurfaceFlinger::postComposition() { if (mFpsReporter) { mFpsReporter->dispatchLayerFps(); } + + if (mTunnelModeEnabledReporter) { + mTunnelModeEnabledReporter->updateTunnelModeStatus(); + } hdrInfoListeners.reserve(mHdrLayerInfoListeners.size()); for (const auto& [displayId, reporter] : mHdrLayerInfoListeners) { if (reporter && reporter->hasListeners()) { @@ -3111,6 +3136,7 @@ void SurfaceFlinger::initScheduler(const DisplayDeviceState& displayState) { mRegionSamplingThread = new RegionSamplingThread(*this, RegionSamplingThread::EnvironmentTimingTunables()); mFpsReporter = new FpsReporter(*mFrameTimeline, *this); + mTunnelModeEnabledReporter = new TunnelModeEnabledReporter(*this); // Dispatch a mode change request for the primary display on scheduler // initialization, so that the EventThreads always contain a reference to a // prior configuration. @@ -5117,6 +5143,8 @@ status_t SurfaceFlinger::CheckTransactCodeCredentials(uint32_t code) { case GET_DISPLAYED_CONTENT_SAMPLING_ATTRIBUTES: case SET_DISPLAY_CONTENT_SAMPLING_ENABLED: case GET_DISPLAYED_CONTENT_SAMPLE: + case ADD_TUNNEL_MODE_ENABLED_LISTENER: + case REMOVE_TUNNEL_MODE_ENABLED_LISTENER: case NOTIFY_POWER_BOOST: case SET_GLOBAL_SHADOW_SETTINGS: case ACQUIRE_FRAME_RATE_FLEXIBILITY_TOKEN: { |