DSRenderView: add registerCallbackUpdated method 23/242323/1
authorSooChan Lim <sc1.lim@samsung.com>
Tue, 25 Aug 2020 02:56:13 +0000 (11:56 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Tue, 25 Aug 2020 12:38:01 +0000 (21:38 +0900)
Change-Id: I49f1d68a3da95d7f6b5a9459db47b55cc3b141e9

src/DSRender/DSRenderView.h
src/DSRender/DSRenderViewDaliImpl.cpp
src/DSRender/DSRenderViewDaliImpl.h
src/DSRender/DSRenderViewEcoreEvasImpl.cpp
src/DSRender/DSRenderViewEcoreEvasImpl.h

index 74a4a2c..e5c85b4 100644 (file)
@@ -26,6 +26,8 @@
 
 #include "IDSBuffer.h"
 #include "DSWindow.h"
+#include "DSObject.h"
+#include "DSSignal.h"
 
 namespace display_server
 {
@@ -38,6 +40,7 @@ public:
 
        virtual bool setBuffer(std::shared_ptr<IDSBuffer> buffer) = 0;
        virtual std::shared_ptr<DSWindow> getWindow() = 0;
+       virtual void registerCallbackUpdated(DSObject *slot, std::function<void(void *)> func) = 0;
 
 private:
        /* data */
index 1b64d5b..d860d64 100644 (file)
@@ -146,6 +146,11 @@ std::shared_ptr<DSWindow> DSRenderViewDaliImpl::getWindow()
        return __window;
 }
 
+void DSRenderViewDaliImpl::registerCallbackUpdated(DSObject *slot, std::function<void(void *)> func)
+{
+       __updatedSignal.connect(slot, func);
+}
+
 void DSRenderViewDaliImpl::__onWindowBufferChanged(std::shared_ptr<IDSBuffer> buffer)
 {
        if (buffer) {
@@ -159,6 +164,8 @@ void DSRenderViewDaliImpl::__onWindowBufferChanged(std::shared_ptr<IDSBuffer> bu
                DSLOG_ERR("DSRenderViewDaliImpl", "setBuffer fails.");
                return;
        }
+
+       __updatedSignal.emit(nullptr);
 }
 
 } // namespace display_server
index 47c72ff..356b787 100644 (file)
@@ -43,6 +43,8 @@ public:
        bool setBuffer(std::shared_ptr<IDSBuffer> buffer) override;
        std::shared_ptr<DSWindow> getWindow() override;
 
+       void registerCallbackUpdated(DSObject *slot, std::function<void(void *)> func) override;
+
        Dali::Geometry CreateTexturedQuad();
 
 private:
@@ -52,6 +54,8 @@ private:
        Dali::OffscreenWindow     __offscreenWindow;
        Dali::Renderer            __renderer;
        Dali::Actor               __textureViewActor;
+
+       DSSignal<void *> __updatedSignal;
 };
 
 }
index e66845c..9fe237d 100644 (file)
@@ -78,4 +78,10 @@ std::shared_ptr<DSWindow> DSRenderViewEcoreEvasImpl::getWindow()
        return __window;
 }
 
+void DSRenderViewEcoreEvasImpl::registerCallbackUpdated(DSObject *slot, std::function<void(void *)> func)
+{
+       // No updated signal at ecore evas implementation yet.
+       //__updatedSignal.connect(slot, func);
+}
+
 } // namespace display_server
index 11ab261..0572a19 100644 (file)
@@ -40,11 +40,15 @@ public:
        bool setBuffer(std::shared_ptr<IDSBuffer> buffer) override;
        std::shared_ptr<DSWindow> getWindow() override;
 
+       void registerCallbackUpdated(DSObject *slot, std::function<void(void *)> func) override;
+
 private:
        void __onWindowBufferChanged(std::shared_ptr<IDSBuffer> buffer);
 
        Evas_Object *__evasView;
        std::shared_ptr<DSWindow> __window;
+
+       DSSignal<void *> __updatedSignal;
 };