diff options
author | 2020-10-13 19:07:23 -0700 | |
---|---|---|
committer | 2020-11-18 13:30:27 -0800 | |
commit | 62f216c62edbe4c997e959cfb28c8609664978df (patch) | |
tree | a5f22b610a460033ef656e58df3f3575ffa69d85 /libs/gui/ISurfaceComposer.cpp | |
parent | 939739b86288069814cf73b37133119983779278 (diff) |
SurfaceFlinger: Add DISPLAY_EVENT_FRAME_RATE_OVERRIDE
Add a new event to DisplayEventReceiver that conveys a list
of apps whose frame rates have been overriden.
This event is processed by the DisplayManager to advertise the
new frame rate to the overridden app.
Change-Id: I89fce8b5b4d9db65ec5db7dd2393c384c0fcfd82
Bug: 169271059
Bug: 169271062
Bug: 170503758
Test: manual test using SF backdoor
Diffstat (limited to 'libs/gui/ISurfaceComposer.cpp')
-rw-r--r-- | libs/gui/ISurfaceComposer.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/libs/gui/ISurfaceComposer.cpp b/libs/gui/ISurfaceComposer.cpp index a9fe5bf319..e46a415f8c 100644 --- a/libs/gui/ISurfaceComposer.cpp +++ b/libs/gui/ISurfaceComposer.cpp @@ -223,8 +223,8 @@ public: return NO_ERROR; } - virtual sp<IDisplayEventConnection> createDisplayEventConnection(VsyncSource vsyncSource, - ConfigChanged configChanged) { + virtual sp<IDisplayEventConnection> createDisplayEventConnection( + VsyncSource vsyncSource, EventRegistrationFlags eventRegistration) { Parcel data, reply; sp<IDisplayEventConnection> result; int err = data.writeInterfaceToken( @@ -233,7 +233,7 @@ public: return result; } data.writeInt32(static_cast<int32_t>(vsyncSource)); - data.writeInt32(static_cast<int32_t>(configChanged)); + data.writeUint32(eventRegistration.get()); err = remote()->transact( BnSurfaceComposer::CREATE_DISPLAY_EVENT_CONNECTION, data, &reply); @@ -1373,10 +1373,11 @@ status_t BnSurfaceComposer::onTransact( case CREATE_DISPLAY_EVENT_CONNECTION: { CHECK_INTERFACE(ISurfaceComposer, data, reply); auto vsyncSource = static_cast<ISurfaceComposer::VsyncSource>(data.readInt32()); - auto configChanged = static_cast<ISurfaceComposer::ConfigChanged>(data.readInt32()); + EventRegistrationFlags eventRegistration = + static_cast<EventRegistration>(data.readUint32()); sp<IDisplayEventConnection> connection( - createDisplayEventConnection(vsyncSource, configChanged)); + createDisplayEventConnection(vsyncSource, eventRegistration)); reply->writeStrongBinder(IInterface::asBinder(connection)); return NO_ERROR; } |