Loading libs/gui/DisplayEventReceiver.cpp +11 −6 Original line number Diff line number Diff line Loading @@ -40,7 +40,13 @@ DisplayEventReceiver::DisplayEventReceiver( mEventConnection = sf->createDisplayEventConnection(vsyncSource, eventRegistration); if (mEventConnection != nullptr) { mDataChannel = std::make_unique<gui::BitTube>(); mEventConnection->stealReceiveChannel(mDataChannel.get()); const auto status = mEventConnection->stealReceiveChannel(mDataChannel.get()); if (!status.isOk()) { ALOGE("stealReceiveChannel failed: %s", status.toString8().c_str()); mInitError = std::make_optional<status_t>(status.transactionError()); mDataChannel.reset(); mEventConnection.clear(); } } } } Loading @@ -51,12 +57,11 @@ DisplayEventReceiver::~DisplayEventReceiver() { status_t DisplayEventReceiver::initCheck() const { if (mDataChannel != nullptr) return NO_ERROR; return NO_INIT; return mInitError.has_value() ? mInitError.value() : NO_INIT; } int DisplayEventReceiver::getFd() const { if (mDataChannel == nullptr) return NO_INIT; if (mDataChannel == nullptr) return mInitError.has_value() ? mInitError.value() : NO_INIT; return mDataChannel->getFd(); } Loading @@ -69,7 +74,7 @@ status_t DisplayEventReceiver::setVsyncRate(uint32_t count) { mEventConnection->setVsyncRate(count); return NO_ERROR; } return NO_INIT; return mInitError.has_value() ? mInitError.value() : NO_INIT; } status_t DisplayEventReceiver::requestNextVsync() { Loading @@ -77,7 +82,7 @@ status_t DisplayEventReceiver::requestNextVsync() { mEventConnection->requestNextVsync(); return NO_ERROR; } return NO_INIT; return mInitError.has_value() ? mInitError.value() : NO_INIT; } status_t DisplayEventReceiver::getLatestVsyncEventData(VsyncEventData* outVsyncEventData) const { Loading libs/gui/include/gui/DisplayEventReceiver.h +1 −0 Original line number Diff line number Diff line Loading @@ -180,6 +180,7 @@ public: private: sp<IDisplayEventConnection> mEventConnection; std::unique_ptr<gui::BitTube> mDataChannel; std::optional<status_t> mInitError; }; // ---------------------------------------------------------------------------- Loading Loading
libs/gui/DisplayEventReceiver.cpp +11 −6 Original line number Diff line number Diff line Loading @@ -40,7 +40,13 @@ DisplayEventReceiver::DisplayEventReceiver( mEventConnection = sf->createDisplayEventConnection(vsyncSource, eventRegistration); if (mEventConnection != nullptr) { mDataChannel = std::make_unique<gui::BitTube>(); mEventConnection->stealReceiveChannel(mDataChannel.get()); const auto status = mEventConnection->stealReceiveChannel(mDataChannel.get()); if (!status.isOk()) { ALOGE("stealReceiveChannel failed: %s", status.toString8().c_str()); mInitError = std::make_optional<status_t>(status.transactionError()); mDataChannel.reset(); mEventConnection.clear(); } } } } Loading @@ -51,12 +57,11 @@ DisplayEventReceiver::~DisplayEventReceiver() { status_t DisplayEventReceiver::initCheck() const { if (mDataChannel != nullptr) return NO_ERROR; return NO_INIT; return mInitError.has_value() ? mInitError.value() : NO_INIT; } int DisplayEventReceiver::getFd() const { if (mDataChannel == nullptr) return NO_INIT; if (mDataChannel == nullptr) return mInitError.has_value() ? mInitError.value() : NO_INIT; return mDataChannel->getFd(); } Loading @@ -69,7 +74,7 @@ status_t DisplayEventReceiver::setVsyncRate(uint32_t count) { mEventConnection->setVsyncRate(count); return NO_ERROR; } return NO_INIT; return mInitError.has_value() ? mInitError.value() : NO_INIT; } status_t DisplayEventReceiver::requestNextVsync() { Loading @@ -77,7 +82,7 @@ status_t DisplayEventReceiver::requestNextVsync() { mEventConnection->requestNextVsync(); return NO_ERROR; } return NO_INIT; return mInitError.has_value() ? mInitError.value() : NO_INIT; } status_t DisplayEventReceiver::getLatestVsyncEventData(VsyncEventData* outVsyncEventData) const { Loading
libs/gui/include/gui/DisplayEventReceiver.h +1 −0 Original line number Diff line number Diff line Loading @@ -180,6 +180,7 @@ public: private: sp<IDisplayEventConnection> mEventConnection; std::unique_ptr<gui::BitTube> mDataChannel; std::optional<status_t> mInitError; }; // ---------------------------------------------------------------------------- Loading