DSWaylandTouch: initialize wl_touch, create wl_resource when a client binds it 45/241645/1
authorSung-Jin Park <sj76.park@samsung.com>
Mon, 20 Jul 2020 11:29:08 +0000 (20:29 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Thu, 20 Aug 2020 09:54:14 +0000 (18:54 +0900)
Change-Id: I81310a03ba3939f64b74314fb538e7ad8c7ce527
Signed-off-by: Sung-Jin Park <sj76.park@samsung.com>
src/DSWaylandServer/DSWaylandTouch.cpp
src/DSWaylandServer/DSWaylandTouch.h

index f09a370..5af72f2 100644 (file)
@@ -1,5 +1,6 @@
 #include "DSWaylandTouch.h"
 #include "DSWaylandTouchPrivate.h"
+#include "DSWaylandClient.h"
 
 namespace display_server {
 
@@ -9,6 +10,7 @@ DSWaylandTouchPrivate::DSWaylandTouchPrivate(DSWaylandSeat *seat, DSWaylandTouch
          __p_ptr(touch),
          __seat(seat)
 {
+       wl_touch();
 }
 
 DSWaylandTouchPrivate::~DSWaylandTouchPrivate()
@@ -17,24 +19,30 @@ DSWaylandTouchPrivate::~DSWaylandTouchPrivate()
 
 void DSWaylandTouchPrivate::touch_bind_resource(Resource *resource)
 {
+       DSLOG_INF("DSWaylandTouchPrivate","");
 }
 
 void DSWaylandTouchPrivate::touch_destroy_resource(Resource *resource)
 {
+       DSLOG_INF("DSWaylandTouchPrivate","");
 }
 
 void DSWaylandTouchPrivate::touch_release(Resource *resource)
 {
+       DSLOG_INF("DSWaylandTouchPrivate","");
+       wl_resource_destroy(resource->handle);
 }
 
 /* Begin Public Class Implementation */
 DSWaylandTouch::DSWaylandTouch(DSWaylandSeat *seat)
        : DSObject(), _d_ptr(std::make_unique<DSWaylandTouchPrivate>(seat, this))
 {
+       //TODO : emit signal
 }
 
 DSWaylandTouch::~DSWaylandTouch()
 {
+       //TODO : emit signal
 }
 
 DSWaylandSeat *DSWaylandTouch::seat()
@@ -44,4 +52,13 @@ DSWaylandSeat *DSWaylandTouch::seat()
        return priv->__seat;
 }
 
+void DSWaylandTouch::addClient(DSWaylandClient *client, uint32_t id, int version)
+{
+       DS_GET_PRIV(DSWaylandTouch);
+
+       DSLOG_INF("DSWaylandTouch", "addClient(dswlClient=%p, id=%u, version=%d", client, id, version);
+
+       priv->add(client->wlClient(), id, version);
+}
+
 }
\ No newline at end of file
index 60c645f..eab11ea 100644 (file)
@@ -9,6 +9,8 @@ namespace display_server
 
 class DSWaylandSeat;
 class DSWaylandTouchPrivate;
+class DSWaylandClient;
+
 class DS_DECL_EXPORT DSWaylandTouch : public DSObject
 {
        DS_PIMPL_USE_PRIVATE(DSWaylandTouch);
@@ -18,7 +20,7 @@ public:
 
        DSWaylandSeat *seat();
 
-       //TODO
+       void addClient(DSWaylandClient *client, uint32_t id, int version);
 
 protected: