summaryrefslogtreecommitdiff
path: root/libs/gui/DisplayEventReceiver.cpp
diff options
context:
space:
mode:
author Rachel Lee <rnlee@google.com> 2022-02-01 14:51:34 -0800
committer Rachel Lee <rnlee@google.com> 2022-02-07 13:53:34 -0800
commitef2e21fa7cdd37dbca56f98da49c5406ae7414d2 (patch)
tree340fe04b46a6a22c4e1147325a6c3acff34dca86 /libs/gui/DisplayEventReceiver.cpp
parentf16da3cb8f2f0517821bb7d121f380f6b3da01d3 (diff)
Add method to get current vsync from sf directly.
Bug: 205721584 Test: atest libsurfaceflinger_unittest Test: atest DisplayEventReceiverTest Change-Id: I38d4bd20bc2f2ad7ff964c3d613c28919478c0fc
Diffstat (limited to 'libs/gui/DisplayEventReceiver.cpp')
-rw-r--r--libs/gui/DisplayEventReceiver.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/libs/gui/DisplayEventReceiver.cpp b/libs/gui/DisplayEventReceiver.cpp
index b916e48f79..36e7d80d5e 100644
--- a/libs/gui/DisplayEventReceiver.cpp
+++ b/libs/gui/DisplayEventReceiver.cpp
@@ -20,6 +20,7 @@
#include <gui/DisplayEventReceiver.h>
#include <gui/ISurfaceComposer.h>
+#include <gui/VsyncEventData.h>
#include <private/gui/ComposerService.h>
@@ -79,6 +80,20 @@ status_t DisplayEventReceiver::requestNextVsync() {
return NO_INIT;
}
+status_t DisplayEventReceiver::getLatestVsyncEventData(VsyncEventData* outVsyncEventData) const {
+ if (mEventConnection != nullptr) {
+ VsyncEventData vsyncEventData;
+ auto status = mEventConnection->getLatestVsyncEventData(&vsyncEventData);
+ if (!status.isOk()) {
+ ALOGE("Failed to get latest vsync event data: %s", status.exceptionMessage().c_str());
+ return status.transactionError();
+ }
+ *outVsyncEventData = vsyncEventData;
+ return NO_ERROR;
+ }
+ return NO_INIT;
+}
+
ssize_t DisplayEventReceiver::getEvents(DisplayEventReceiver::Event* events,
size_t count) {
return DisplayEventReceiver::getEvents(mDataChannel.get(), events, count);