e_comp_wl: not creating a screenshooter global object 28/137628/2
authorBoram Park <boram1288.park@samsung.com>
Thu, 6 Jul 2017 09:19:28 +0000 (18:19 +0900)
committerBoram Park <boram1288.park@samsung.com>
Wed, 12 Jul 2017 03:30:09 +0000 (12:30 +0900)
Change-Id: Ia52a76599c7660c844bc70b6de8c8813f524339f

src/bin/Makefile.mk
src/bin/e_comp_screen.c
src/bin/e_comp_wl.c
src/bin/e_comp_wl.h
src/bin/e_comp_wl_screenshooter_server.c [deleted file]
src/bin/e_comp_wl_screenshooter_server.h [deleted file]

index fd3d5a4869c8f01f81e5f4807386fbebb67024cc..a3f19ff1d54ae654482dd360644c6b812a544a15 100644 (file)
@@ -173,8 +173,6 @@ src/bin/e_info_protocol.c \
 src/bin/e_uuid_store.c \
 src/bin/session-recovery-protocol.c \
 src/bin/session-recovery-server-protocol.h \
-src/bin/e_comp_wl_screenshooter_server.c \
-src/bin/e_comp_wl_screenshooter_server.h \
 src/bin/e_comp_wl_data.c \
 src/bin/e_comp_wl_input.c \
 src/bin/e_comp_wl.c \
index 58c93dfed950f6a74326f07e1dc5ac157bea7855..aa9640430149ffb2e173d4c2114f5fbf5dc6db79 100644 (file)
@@ -468,38 +468,6 @@ fail:
    return EINA_FALSE;
 }
 
-static Eina_Bool
-_drm_read_pixels(E_Comp_Wl_Output *output, void *pixels)
-{
-   Ecore_Drm_Device *dev;
-   Ecore_Drm_Fb *fb = NULL;
-   const Eina_List *drm_devs, *l;
-   int i = 0, bstride;
-   unsigned char *s, *d = pixels;
-
-   drm_devs = ecore_drm_devices_get();
-   EINA_LIST_FOREACH(drm_devs, l, dev)
-     {
-        fb = dev->next;
-        if (!fb) fb = dev->current;
-        if (fb) break;
-     }
-
-   if (!fb) return EINA_FALSE;
-
-   bstride = output->w * sizeof(int);
-
-   for (i = output->y; i < output->y + output->h; i++)
-     {
-        s = fb->mmap;
-        s += (fb->stride * i) + (output->x * sizeof(int));
-        memcpy(d, s, (output->w * sizeof(int)));
-        d += bstride;
-     }
-
-   return EINA_TRUE;
-}
-
 E_API void
 _e_comp_screen_keymap_set(struct xkb_context **ctx, struct xkb_keymap **map)
 {
@@ -932,8 +900,6 @@ e_comp_screen_init()
      }
    e_main_ts("\tE_Comp_Canvas Init Done");
 
-   e_comp_wl->screenshooter.read_pixels = _drm_read_pixels;
-
    /* pointer */
    ecore_evas_pointer_xy_get(e_comp->ee,
                              &e_comp_wl->ptr.x,
index e87299d48c4e6eb1aa7bc687ee4fb136d024ed81..dc97ad50221dfb68f4d6c36b75d1b5149ee98571 100644 (file)
@@ -1,5 +1,4 @@
 #include "e.h"
-#include "e_comp_wl_screenshooter_server.h"
 
 #include <wayland-tbm-server.h>
 
@@ -4103,100 +4102,6 @@ _e_comp_wl_session_recovery_cb_bind(struct wl_client *client, void *data EINA_UN
    wl_resource_set_implementation(res, &_e_session_recovery_interface, e_comp, NULL);
 }
 
-static void
-_e_comp_wl_screenshooter_cb_shoot(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, struct wl_resource *output_resource, struct wl_resource *buffer_resource)
-{
-   E_Comp_Wl_Output *output;
-   E_Comp_Wl_Buffer *buffer;
-   struct wl_shm_buffer *shm_buffer;
-   int stride;
-   void *pixels = NULL, *d;
-   Eina_Bool res;
-
-   output = wl_resource_get_user_data(output_resource);
-   buffer = e_comp_wl_buffer_get(buffer_resource, NULL);
-
-   if (!output) return;
-
-   if (!buffer)
-     {
-        wl_resource_post_no_memory(resource);
-        return;
-     }
-
-   EINA_SAFETY_ON_NULL_RETURN(e_comp_wl->screenshooter.read_pixels);
-
-   if ((buffer->w < output->w) || (buffer->h < output->h))
-     {
-        ERR("Buffer size less than output");
-        /* send done with bad buffer error */
-        return;
-     }
-
-   stride = buffer->w * sizeof(int);
-
-   pixels = malloc(stride * buffer->h);
-   if (!pixels)
-     {
-        /* send done with bad buffer error */
-        ERR("Could not allocate space for destination");
-        return;
-     }
-
-   res = e_comp_wl->screenshooter.read_pixels(output, pixels);
-   if (!res)
-     {
-        free(pixels);
-        return;
-     }
-
-   shm_buffer = wl_shm_buffer_get(buffer->resource);
-   if (!shm_buffer)
-     {
-        ERR("Could not get shm_buffer from resource");
-        free(pixels);
-        return;
-     }
-
-   stride = wl_shm_buffer_get_stride(shm_buffer);
-   d = wl_shm_buffer_get_data(shm_buffer);
-   if (!d)
-     {
-        ERR("Could not get buffer data");
-        free(pixels);
-        return;
-     }
-
-   wl_shm_buffer_begin_access(shm_buffer);
-   memcpy(d, pixels, buffer->h * stride);
-   wl_shm_buffer_end_access(shm_buffer);
-
-   screenshooter_send_done(resource);
-
-   free(pixels);
-}
-
-static const struct screenshooter_interface _e_screenshooter_interface =
-{
-   _e_comp_wl_screenshooter_cb_shoot
-};
-
-static void
-_e_comp_wl_screenshooter_cb_bind(struct wl_client *client, void *data, uint32_t version EINA_UNUSED, uint32_t id)
-{
-   struct wl_resource *res;
-
-   res = wl_resource_create(client, &screenshooter_interface, 1, id);
-   if (!res)
-     {
-        ERR("Could not create screenshooter resource: %m");
-        wl_client_post_no_memory(client);
-        return;
-     }
-
-   wl_resource_set_implementation(res, &_e_screenshooter_interface, data, NULL);
-}
-
 static void
 _e_comp_wl_client_cb_new(void *data EINA_UNUSED, E_Client *ec)
 {
@@ -4774,15 +4679,6 @@ _e_comp_wl_compositor_create(void)
    /* initialize shm mechanism */
    wl_display_init_shm(cdata->wl.disp);
 
-   cdata->screenshooter.global =
-     wl_global_create(cdata->wl.disp, &screenshooter_interface, 1,
-                      e_comp, _e_comp_wl_screenshooter_cb_bind);
-   if (!cdata->screenshooter.global)
-     {
-        ERR("Could not create screenshooter global: %m");
-        goto comp_global_err;
-     }
-
    /* _e_comp_wl_cb_randr_change(NULL, 0, NULL); */
 
    /* try to init data manager */
index 3e0f3265eed1372d58b91f665c6daef2043bd056..3cc1f136911367f5c5a22b91251328adf112a898 100644 (file)
@@ -352,7 +352,6 @@ struct _E_Comp_Wl_Data
      {
         struct wl_global *global;
         struct wl_client *client;
-        Eina_Bool (*read_pixels)(E_Comp_Wl_Output *output, void *pixels);
      } screenshooter;
 
    struct
diff --git a/src/bin/e_comp_wl_screenshooter_server.c b/src/bin/e_comp_wl_screenshooter_server.c
deleted file mode 100644 (file)
index 5a3a8fb..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#include <stdlib.h>
-#include <stdint.h>
-#include "wayland-util.h"
-
-extern const struct wl_interface wl_buffer_interface;
-extern const struct wl_interface wl_output_interface;
-
-static const struct wl_interface *types[] = {
-       &wl_output_interface,
-       &wl_buffer_interface,
-};
-
-static const struct wl_message screenshooter_requests[] = {
-       { "shoot", "oo", types + 0 },
-};
-
-static const struct wl_message screenshooter_events[] = {
-       { "done", "", types + 0 },
-};
-
-WL_EXPORT const struct wl_interface screenshooter_interface = {
-       "screenshooter", 1,
-       1, screenshooter_requests,
-       1, screenshooter_events,
-};
-
diff --git a/src/bin/e_comp_wl_screenshooter_server.h b/src/bin/e_comp_wl_screenshooter_server.h
deleted file mode 100644 (file)
index 4389124..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef SCREENSHOOTER_SERVER_PROTOCOL_H
-#define SCREENSHOOTER_SERVER_PROTOCOL_H
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-#include <stddef.h>
-#include "wayland-server.h"
-
-struct wl_client;
-struct wl_resource;
-
-struct screenshooter;
-struct wl_buffer;
-struct wl_output;
-
-extern const struct wl_interface screenshooter_interface;
-
-struct screenshooter_interface {
-       /**
-        * shoot - (none)
-        * @output: (none)
-        * @buffer: (none)
-        */
-       void (*shoot)(struct wl_client *client,
-                     struct wl_resource *resource,
-                     struct wl_resource *output,
-                     struct wl_resource *buffer);
-};
-
-#define SCREENSHOOTER_DONE     0
-
-#define SCREENSHOOTER_DONE_SINCE_VERSION       1
-
-static inline void
-screenshooter_send_done(struct wl_resource *resource_)
-{
-       wl_resource_post_event(resource_, SCREENSHOOTER_DONE);
-}
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif