From 92fa8e926f8bf324ce8c3fc4f85d2a9785d1dce0 Mon Sep 17 00:00:00 2001 From: Shraddha Basantwani Date: Wed, 2 Jun 2021 12:11:26 +0530 Subject: [PATCH] CEC: Add implementation of setCallback method to default HdmiCec Bug: 185434120 Test: manual Change-Id: I280d142427ae49eca5abce01eded569efdaf8221 --- tv/cec/1.0/default/HdmiCecDefault.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tv/cec/1.0/default/HdmiCecDefault.cpp b/tv/cec/1.0/default/HdmiCecDefault.cpp index 2ec2d09b8a..7dc0d24d81 100644 --- a/tv/cec/1.0/default/HdmiCecDefault.cpp +++ b/tv/cec/1.0/default/HdmiCecDefault.cpp @@ -35,10 +35,12 @@ namespace implementation { int mCecFd; int mExitFd; +sp mCallback; HdmiCecDefault::HdmiCecDefault() { mCecFd = -1; mExitFd = -1; + mCallback = nullptr; } HdmiCecDefault::~HdmiCecDefault() { @@ -185,7 +187,16 @@ Return HdmiCecDefault::sendMessage(const CecMessage& message) } } -Return HdmiCecDefault::setCallback(const sp& /*callback*/) { +Return HdmiCecDefault::setCallback(const sp& callback) { + if (mCallback != nullptr) { + mCallback->unlinkToDeath(this); + mCallback = nullptr; + } + + if (callback != nullptr) { + mCallback = callback; + mCallback->linkToDeath(this, 0 /*cookie*/); + } return Void(); }