#include "IDSBuffer.h"
#include "DSWindow.h"
+#include "DSObject.h"
+#include "DSSignal.h"
namespace display_server
{
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 */
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) {
DSLOG_ERR("DSRenderViewDaliImpl", "setBuffer fails.");
return;
}
+
+ __updatedSignal.emit(nullptr);
}
} // namespace display_server
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:
Dali::OffscreenWindow __offscreenWindow;
Dali::Renderer __renderer;
Dali::Actor __textureViewActor;
+
+ DSSignal<void *> __updatedSignal;
};
}
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
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;
};