fakehwc, libvr_hwc-hal: update for ComposerHal changes
removeClient and enableCallback are removed. dumpDebugInfo,
registerCallback, and unregisterCallback are added.
Test: builds
Change-Id: If366fb24b555393abe5c7bf326027c30c3ceafa4
diff --git a/services/surfaceflinger/tests/fakehwc/FakeComposerClient.cpp b/services/surfaceflinger/tests/fakehwc/FakeComposerClient.cpp
index e16e7ec..973156a 100644
--- a/services/surfaceflinger/tests/fakehwc/FakeComposerClient.cpp
+++ b/services/surfaceflinger/tests/fakehwc/FakeComposerClient.cpp
@@ -145,8 +145,7 @@
} // namespace
FakeComposerClient::FakeComposerClient()
- : mCallbacksOn(false),
- mClient(nullptr),
+ : mEventCallback(nullptr),
mCurrentConfig(NULL_DISPLAY_CONFIG),
mVsyncEnabled(false),
mLayers(),
@@ -160,30 +159,32 @@
return false;
}
-void FakeComposerClient::removeClient() {
- ALOGV("removeClient");
- // TODO: Ahooga! Only thing current lifetime management choices in
- // APIs make possible. Sad.
- delete this;
+std::string FakeComposerClient::dumpDebugInfo() {
+ return {};
}
-void FakeComposerClient::enableCallback(bool enable) {
- ALOGV("enableCallback");
- mCallbacksOn = enable;
- if (mCallbacksOn) {
- mClient->onHotplug(PRIMARY_DISPLAY, IComposerCallback::Connection::CONNECTED);
+void FakeComposerClient::registerEventCallback(EventCallback* callback) {
+ ALOGV("registerEventCallback");
+ mEventCallback = callback;
+ if (mEventCallback) {
+ mEventCallback->onHotplug(PRIMARY_DISPLAY, IComposerCallback::Connection::CONNECTED);
}
}
+void FakeComposerClient::unregisterEventCallback() {
+ ALOGV("unregisterEventCallback");
+ mEventCallback = nullptr;
+}
+
void FakeComposerClient::hotplugDisplay(Display display, IComposerCallback::Connection state) {
- if (mCallbacksOn) {
- mClient->onHotplug(display, state);
+ if (mEventCallback) {
+ mEventCallback->onHotplug(display, state);
}
}
void FakeComposerClient::refreshDisplay(Display display) {
- if (mCallbacksOn) {
- mClient->onRefresh(display);
+ if (mEventCallback) {
+ mEventCallback->onRefresh(display);
}
}
@@ -500,12 +501,8 @@
//////////////////////////////////////////////////////////////////
-void FakeComposerClient::setClient(ComposerClient* client) {
- mClient = client;
-}
-
void FakeComposerClient::requestVSync(uint64_t vsyncTime) {
- if (mCallbacksOn) {
+ if (mEventCallback) {
uint64_t timestamp = vsyncTime;
ALOGV("Vsync");
if (timestamp == 0) {
@@ -516,7 +513,7 @@
if (mSurfaceComposer != nullptr) {
mSurfaceComposer->injectVSync(timestamp);
} else {
- mClient->onVsync(PRIMARY_DISPLAY, timestamp);
+ mEventCallback->onVsync(PRIMARY_DISPLAY, timestamp);
}
}
}
diff --git a/services/surfaceflinger/tests/fakehwc/FakeComposerClient.h b/services/surfaceflinger/tests/fakehwc/FakeComposerClient.h
index 95c274a..d115d79 100644
--- a/services/surfaceflinger/tests/fakehwc/FakeComposerClient.h
+++ b/services/surfaceflinger/tests/fakehwc/FakeComposerClient.h
@@ -61,8 +61,10 @@
bool hasCapability(hwc2_capability_t capability) override;
- void removeClient() override;
- void enableCallback(bool enable) override;
+ std::string dumpDebugInfo() override;
+ void registerEventCallback(EventCallback* callback) override;
+ void unregisterEventCallback() override;
+
uint32_t getMaxVirtualDisplayCount() override;
Error createVirtualDisplay(uint32_t width, uint32_t height, PixelFormat* format,
Display* outDisplay) override;
@@ -147,8 +149,7 @@
private:
LayerImpl& getLayerImpl(Layer handle);
- bool mCallbacksOn;
- ComposerClient* mClient;
+ EventCallback* mEventCallback;
Config mCurrentConfig;
bool mVsyncEnabled;
std::vector<std::unique_ptr<LayerImpl>> mLayers;
diff --git a/services/surfaceflinger/tests/fakehwc/SFFakeHwc_test.cpp b/services/surfaceflinger/tests/fakehwc/SFFakeHwc_test.cpp
index 74b2efc..9b31985 100644
--- a/services/surfaceflinger/tests/fakehwc/SFFakeHwc_test.cpp
+++ b/services/surfaceflinger/tests/fakehwc/SFFakeHwc_test.cpp
@@ -169,7 +169,6 @@
// change the situation.
mMockComposer = new MockComposerClient;
sp<ComposerClient> client = new ComposerClient(mMockComposer);
- mMockComposer->setClient(client.get());
mFakeService = new FakeComposerService(client);
(void)mFakeService->registerAsService("mock");
@@ -447,7 +446,6 @@
// the lifetime of the FakeComposerClient.
sFakeComposer = new FakeComposerClient;
sp<ComposerClient> client = new ComposerClient(sFakeComposer);
- sFakeComposer->setClient(client.get());
sp<IComposer> fakeService = new FakeComposerService(client);
(void)fakeService->registerAsService("mock");