Removed wl-shell-emulator from AGL 73/8873/1
authorRonan Le Martret <ronan.lemartret@iot.bzh>
Wed, 22 Mar 2017 14:33:31 +0000 (15:33 +0100)
committerRonan Le Martret <ronan.lemartret@iot.bzh>
Wed, 22 Mar 2017 14:33:31 +0000 (15:33 +0100)
Since CES2017, AGL doesn't use 'layer-add-surfaces' command.
wl-shell-emultor.so is only required by 'layer-add-surfaces'.
So we can remove wl-shell-emultor from AGL.

Bug-AGL: SPEC-341

Change-Id: Icfaf91de624ed89e9640a9daf1a92b5de8912863
Signed-off-by: Ronan Le Martret <ronan.lemartret@iot.bzh>
recipes-demo-hmi/navigation/mapviewer-demo/weston-mapviewer-demo.ini
recipes-graphics/wayland/wayland-ivi-extension/0001-wayland-ivi-extension-patch-for-wl-shell-emulator.patch [deleted file]
recipes-graphics/wayland/wayland-ivi-extension_1.11.0.bbappend
recipes-graphics/wayland/weston/0001-weston-patch-for-wl-shell-emulator.patch [deleted file]
recipes-graphics/wayland/weston_%.bbappend [deleted file]

index 9845ed9..d003aff 100644 (file)
@@ -4,7 +4,7 @@ shell=ivi-shell.so
 virtual=1
 
 [ivi-shell]
-ivi-module=ivi-controller.so,wl-shell-emulator.so
+ivi-module=ivi-controller.so
 ivi-input-module=ivi-input-controller.so
 
 [media-ctl]
diff --git a/recipes-graphics/wayland/wayland-ivi-extension/0001-wayland-ivi-extension-patch-for-wl-shell-emulator.patch b/recipes-graphics/wayland/wayland-ivi-extension/0001-wayland-ivi-extension-patch-for-wl-shell-emulator.patch
deleted file mode 100644 (file)
index 53d414f..0000000
+++ /dev/null
@@ -1,528 +0,0 @@
----
- CMakeLists.txt                                     |   1 +
- .../EGLWLMockNavigation/src/OpenGLES2App.cpp       |   7 +-
- weston-ivi-shell/src/ivi-controller-interface.h    |  19 +
- wl-shell-emulator/CMakeLists.txt                   |  69 ++++
- wl-shell-emulator/README                           |  21 ++
- wl-shell-emulator/src/wl-shell-emulator.c          | 394 +++++++++++++++++++++
- 6 files changed, 509 insertions(+), 2 deletions(-)
- create mode 100644 wl-shell-emulator/CMakeLists.txt
- create mode 100644 wl-shell-emulator/README
- create mode 100644 wl-shell-emulator/src/wl-shell-emulator.c
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index a75390f..3610fa9 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -42,6 +42,7 @@ if(WITH_ILM_INPUT)
-     add_subdirectory(ivi-input-modules/ivi-input-controller)
- endif()
-+add_subdirectory(wl-shell-emulator)
- #=============================================================================================
- # generate all documents
-diff --git a/wl-shell-emulator/CMakeLists.txt b/wl-shell-emulator/CMakeLists.txt
-new file mode 100644
-index 0000000..2678098
---- /dev/null
-+++ b/wl-shell-emulator/CMakeLists.txt
-@@ -0,0 +1,69 @@
-+############################################################################
-+#
-+# Copyright (C) 2015 Advanced Driver Information Technology Joint Venture GmbH
-+#
-+#
-+# Licensed under the Apache License, Version 2.0 (the "License");
-+# you may not use this file except in compliance with the License.
-+# You may obtain a copy of the License at
-+#
-+#       http://www.apache.org/licenses/LICENSE-2.0
-+#
-+# Unless required by applicable law or agreed to in writing, software
-+# distributed under the License is distributed on an "AS IS" BASIS,
-+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+# See the License for the specific language governing permissions and
-+# limitations under the License.
-+#
-+############################################################################
-+
-+cmake_minimum_required (VERSION 2.6)
-+
-+project(wl-shell-emulator)
-+
-+find_package(PkgConfig REQUIRED)
-+pkg_check_modules(WAYLAND_SERVER wayland-server REQUIRED)
-+pkg_check_modules(WESTON weston REQUIRED)
-+
-+GET_TARGET_PROPERTY(IVI_EXTENSION_INCLUDE_DIRS ivi-extension-protocol INCLUDE_DIRECTORIES)
-+GET_TARGET_PROPERTY(IVI_CONTROLLER_INCLUDE_DIRS ivi-controller INCLUDE_DIRECTORIES)
-+
-+include_directories(
-+    include
-+    ${IVI_EXTENSION_INCLUDE_DIRS}
-+    ${IVI_CONTROLLER_INCLUDE_DIRS}
-+    ${WAYLAND_SERVER_INCLUDE_DIRS}
-+    ${WESTON_INCLUDE_DIRS}
-+    ${WESTON_INCLUDE_DIRS}/weston
-+)
-+
-+link_directories(
-+    ${WAYLAND_SERVER_LIBRARY_DIRS}
-+)
-+
-+
-+add_library(${PROJECT_NAME} MODULE
-+    src/wl-shell-emulator.c
-+)
-+
-+set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
-+
-+add_dependencies(${PROJECT_NAME}
-+    ivi-extension-protocol
-+    ${WAYLAND_SERVER_LIBRARIES}
-+)
-+
-+set(LIBS
-+    ${LIBS}
-+    ivi-extension-protocol
-+    ${WAYLAND_SERVER_LIBRARIES}
-+)
-+
-+set(CMAKE_C_LDFLAGS "-module -avoid-version")
-+
-+target_link_libraries(${PROJECT_NAME} ${LIBS})
-+
-+install (
-+    TARGETS             ${PROJECT_NAME}
-+    LIBRARY DESTINATION lib/weston
-+)
-diff --git a/wl-shell-emulator/README b/wl-shell-emulator/README
-new file mode 100644
-index 0000000..6eebc04
---- /dev/null
-+++ b/wl-shell-emulator/README
-@@ -0,0 +1,21 @@
-+This directory contains the wl-shell-emulator module.
-+To use this, add it to the "ivi-module" entry in your weston.ini.
-+Multiple modules may be specified in the same entry by separating
-+the modules with commas.
-+Additionally, the basement of surface-id is indentified by weston.ini
-+at "surface-id-for-wl-shell" entry. wl-shell-emulator will increment
-+surface-id per wl-shell-surface creation.
-+
-+- Sample of weston.ini
-+[core]
-+shell=ivi-shell.so
-+
-+[ivi-shell]
-+ivi-module=ivi-controller.so,wl-shell-emulator.so
-+surface-id-for-wl-shell-app=0x30000000
-+
-+- How to
-+ivi-layermanagement-examples/layer-add-surfaces is easy
-+for you to try wl-shell-emulator. When you invoke wl_shell
-+application. layer-add-surfaces can add the ivi-surface to a layer
-+and set visibility for it.
-diff --git a/wl-shell-emulator/src/wl-shell-emulator.c b/wl-shell-emulator/src/wl-shell-emulator.c
-new file mode 100644
-index 0000000..274b192
---- /dev/null
-+++ b/wl-shell-emulator/src/wl-shell-emulator.c
-@@ -0,0 +1,394 @@
-+ /*
-+ * Copyright (C) 2015 Advanced Driver Information Technology Joint Venture GmbH
-+ *
-+ * Permission to use, copy, modify, distribute, and sell this software and
-+ * its documentation for any purpose is hereby granted without fee, provided
-+ * that the above copyright notice appear in all copies and that both that
-+ * copyright notice and this permission notice appear in supporting
-+ * documentation, and that the name of the copyright holders not be used in
-+ * advertising or publicity pertaining to distribution of the software
-+ * without specific, written prior permission.  The copyright holders make
-+ * no representations about the suitability of this software for any
-+ * purpose.  It is provided "as is" without express or implied warranty.
-+ *
-+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-+ */
-+
-+#include <stdlib.h>
-+#include <string.h>
-+#include <assert.h>
-+
-+#include <weston/compositor.h>
-+
-+#include "weston/ivi-layout-export.h"
-+
-+
-+#ifndef container_of
-+#define container_of(ptr, type, member) ({                              \
-+        const __typeof__( ((type *)0)->member ) *__mptr = (ptr);        \
-+        (type *)( (char *)__mptr - offsetof(type,member) );})
-+#endif
-+
-+#define DEFAULT_SURFACE_ID_FOR_WL_SHELL_APP 0x80000000
-+
-+struct emulator_surface {
-+    struct wl_resource* resource;
-+    struct emulator_context *context;
-+    struct ivi_layout_surface *layout_surface;
-+
-+    struct weston_surface *surface;
-+    struct wl_listener surface_destroy_listener;
-+
-+    uint32_t id_surface;
-+    int32_t last_width;
-+    int32_t last_height;
-+
-+    struct wl_list link;
-+};
-+
-+struct emulator_controller {
-+    struct wl_list link;
-+    struct wl_resource *resource;
-+    struct wl_client *client;
-+    uint32_t id;
-+    struct emulator_context *emulator_context;
-+};
-+
-+struct emulator_context {
-+    struct wl_list controller_list;
-+    struct wl_list surface_list;
-+    struct weston_compositor *compositor;
-+    const struct ivi_layout_interface *ivi_layout_interface;
-+
-+    uint32_t id_surface_base;
-+};
-+
-+static void
-+emulator_surface_pong(struct wl_client *client,
-+           struct wl_resource *resource, uint32_t serial)
-+{
-+
-+}
-+
-+static void
-+emulator_surface_move(struct wl_client *client, struct wl_resource *resource,
-+           struct wl_resource *seat_resource, uint32_t serial)
-+{
-+/*Use ivi_layout_interface to implement*/
-+}
-+
-+static void
-+emulator_surface_resize(struct wl_client *client, struct wl_resource *resource,
-+           struct wl_resource *seat_resource, uint32_t serial,
-+           uint32_t edges)
-+{
-+/*Use ivi_layout_interface to implement*/
-+}
-+
-+static void
-+emulator_surface_set_toplevel(struct wl_client *client,
-+           struct wl_resource *resource)
-+{
-+/*Use ivi_layout_interface to implement*/
-+}
-+
-+static void
-+emulator_surface_set_transient(struct wl_client *client,
-+        struct wl_resource *resource,
-+        struct wl_resource *parent_resource,
-+        int x, int y, uint32_t flags)
-+{
-+/*Use ivi_layout_interface to implement*/
-+}
-+
-+static void
-+emulator_surface_set_fullscreen(struct wl_client *client,
-+           struct wl_resource *resource,
-+           uint32_t method,
-+           uint32_t framerate,
-+           struct wl_resource *output_resource)
-+{
-+/*Use ivi_layout_interface to implement*/
-+}
-+
-+static void
-+emulator_surface_set_popup(struct wl_client *client,
-+        struct wl_resource *resource,
-+        struct wl_resource *seat_resource,
-+        uint32_t serial,
-+        struct wl_resource *parent_resource,
-+        int32_t x, int32_t y, uint32_t flags)
-+{
-+
-+}
-+
-+static void
-+emulator_surface_set_maximized(struct wl_client *client,
-+        struct wl_resource *resource,
-+        struct wl_resource *output_resource)
-+{
-+
-+}
-+
-+static void
-+emulator_surface_set_title(struct wl_client *client,
-+        struct wl_resource *resource, const char *title)
-+{
-+
-+}
-+
-+static void
-+emulator_surface_set_class(struct wl_client *client,
-+        struct wl_resource *resource, const char *class)
-+{
-+
-+}
-+
-+static const struct wl_shell_surface_interface shell_surface_implementation = {
-+        emulator_surface_pong,
-+        emulator_surface_move,
-+        emulator_surface_resize,
-+        emulator_surface_set_toplevel,
-+        emulator_surface_set_transient,
-+        emulator_surface_set_fullscreen,
-+        emulator_surface_set_popup,
-+        emulator_surface_set_maximized,
-+        emulator_surface_set_title,
-+        emulator_surface_set_class
-+};
-+
-+/* Gets called through the weston_surface destroy signal. */
-+static void
-+emulator_handle_surface_destroy(struct wl_listener *listener, void *data)
-+{
-+    struct emulator_surface *emulator_surface =
-+            container_of(listener, struct emulator_surface,
-+                surface_destroy_listener);
-+
-+    assert(emulator_surface != NULL);
-+
-+    if (emulator_surface->surface!=NULL) {
-+        emulator_surface->surface->configure = NULL;
-+        emulator_surface->surface->configure_private = NULL;
-+        emulator_surface->surface = NULL;
-+    }
-+
-+    wl_list_remove(&emulator_surface->surface_destroy_listener.link);
-+    wl_list_remove(&emulator_surface->link);
-+
-+    if (emulator_surface->resource != NULL) {
-+        wl_resource_set_user_data(emulator_surface->resource, NULL);
-+        emulator_surface->resource = NULL;
-+    }
-+    free(emulator_surface);
-+}
-+
-+static void
-+emulator_surface_configure(struct weston_surface *surface,
-+                           int32_t sx, int32_t sy)
-+{
-+    struct emulator_surface *surf = surface->configure_private;
-+    struct emulator_context *ctx;
-+
-+    if ((surf == NULL) ||
-+        (surf->layout_surface == NULL)) {
-+        return;
-+    }
-+
-+    if ((surf->last_width != surface->width) ||
-+        (surf->last_height != surface->height)) {
-+
-+        surf->last_width = surface->width;
-+        surf->last_height = surface->height;
-+
-+        ctx = surf->context;
-+        ctx->ivi_layout_interface->surface_configure(surf->layout_surface,
-+                                                         surface->width,
-+                                                         surface->height);
-+    }
-+}
-+
-+/*
-+ * The ivi_surface wl_resource destructor.
-+ *
-+ * Gets called via ivi_surface.destroy request or automatic wl_client clean-up.
-+ */
-+static void
-+shell_destroy_shell_surface(struct wl_resource *resource)
-+{
-+    struct emulator_surface *surf = wl_resource_get_user_data(resource);
-+    if (surf != NULL) {
-+        surf->resource = NULL;
-+    }
-+}
-+
-+static void
-+emulator_get_shell_surface(struct wl_client *client, struct wl_resource *resource,
-+                           uint32_t id, struct wl_resource *surface_resource)
-+{
-+    struct emulator_controller *controller = wl_resource_get_user_data(resource);
-+    struct emulator_context * context = controller->emulator_context;
-+    struct emulator_surface *emulator_surface;
-+    struct weston_surface *surface;
-+    struct ivi_layout_surface *layout_surface;
-+    struct wl_resource *res;
-+    const struct ivi_layout_interface *interface =
-+                            context->ivi_layout_interface;
-+
-+    surface = wl_resource_get_user_data(surface_resource);
-+
-+    layout_surface = interface->surface_create(surface, context->id_surface_base);
-+
-+    if (!layout_surface) {
-+        wl_resource_post_no_memory(surface_resource);
-+        return;
-+    }
-+
-+    emulator_surface = zalloc(sizeof *emulator_surface);
-+    if (emulator_surface == NULL) {
-+        wl_resource_post_no_memory(resource);
-+        return;
-+    }
-+
-+    emulator_surface->layout_surface = layout_surface;
-+    emulator_surface->id_surface = context->id_surface_base;
-+    emulator_surface->last_width = 0;
-+    emulator_surface->last_height = 0;
-+
-+    wl_list_init(&emulator_surface->link);
-+    wl_list_insert(&context->surface_list, &emulator_surface->link);
-+
-+    emulator_surface->context = context;
-+    ++(context->id_surface_base);
-+
-+    /** The following code relies on wl_surface destruction triggering
-+    * immediateweston_surface destruction
-+    */
-+    emulator_surface->surface_destroy_listener.notify = emulator_handle_surface_destroy;
-+    wl_signal_add(&surface->destroy_signal,
-+                  &emulator_surface->surface_destroy_listener);
-+
-+    emulator_surface->surface = surface;
-+    surface->configure = emulator_surface_configure;
-+    surface->configure_private = emulator_surface;
-+
-+    res = wl_resource_create(client, &wl_shell_surface_interface, 1, id);
-+    if (res == NULL) {
-+        wl_client_post_no_memory(client);
-+        return;
-+    }
-+
-+    emulator_surface->resource = res;
-+
-+    wl_resource_set_implementation(res, &shell_surface_implementation,
-+                                  emulator_surface, shell_destroy_shell_surface);
-+}
-+static const struct wl_shell_interface shell_implementation = {
-+    emulator_get_shell_surface
-+};
-+
-+static void
-+unbind_resource_controller(struct wl_resource *resource)
-+{
-+    struct emulator_controller *controller = wl_resource_get_user_data(resource);
-+
-+    wl_list_remove(&controller->link);
-+
-+    free(controller);
-+}
-+
-+static void
-+bind_shell_implementation(struct wl_client *client, void *data,
-+               uint32_t version, uint32_t id)
-+{
-+    struct emulator_context *ctx = data;
-+    struct emulator_controller *controller;
-+    controller = calloc(1, sizeof *controller);
-+    if (controller == NULL) {
-+        weston_log("%s: Failed to allocate memory for controller\n",
-+                   __FUNCTION__);
-+        return;
-+    }
-+
-+    controller->emulator_context = ctx;
-+    controller->resource =
-+        wl_resource_create(client, &wl_shell_interface, 1, id);
-+    wl_resource_set_implementation(controller->resource, &shell_implementation,
-+                                   controller, unbind_resource_controller);
-+
-+    controller->client = client;
-+    controller->id = id;
-+
-+    wl_list_insert(&ctx->controller_list, &controller->link);
-+}
-+
-+static struct emulator_context *
-+create_emulator_context(struct weston_compositor *ec,
-+                     const struct ivi_layout_interface *interface)
-+{
-+    struct emulator_context *ctx = NULL;
-+    ctx = calloc(1, sizeof *ctx);
-+    if (ctx == NULL) {
-+        weston_log("%s: Failed to allocate memory for input context\n",
-+                   __FUNCTION__);
-+        return NULL;
-+    }
-+
-+    memset(ctx, 0, sizeof *ctx);
-+
-+    ctx->compositor = ec;
-+    ctx->ivi_layout_interface = interface;
-+    wl_list_init(&ctx->controller_list);
-+    wl_list_init(&ctx->surface_list);
-+
-+    return ctx;
-+}
-+
-+static int
-+setup_emulator_config(struct emulator_context *ctx, int *argc, char *argv[])
-+{
-+    struct weston_config_section *section;
-+
-+    section = weston_config_get_section(ctx->compositor->config, "ivi-shell",
-+                                        NULL, NULL);
-+
-+    if (section) {
-+        weston_config_section_get_uint(section, "surface-id-for-wl-shell-app",
-+                                       &ctx->id_surface_base,
-+                                       DEFAULT_SURFACE_ID_FOR_WL_SHELL_APP);
-+
-+        weston_log("Based surface ID for wl_shell application: %u (0x%x)\n",
-+                   ctx->id_surface_base, ctx->id_surface_base);
-+    }
-+
-+    return 0;
-+}
-+
-+WL_EXPORT int
-+controller_module_init(struct weston_compositor *ec, int* argc, char *argv[],
-+                       const struct ivi_layout_interface *interface,
-+                       size_t interface_version)
-+{
-+    struct emulator_context *ctx = create_emulator_context(ec, interface);
-+    if (ctx == NULL) {
-+        weston_log("%s: Failed to create input context\n", __FUNCTION__);
-+        return -1;
-+    }
-+
-+    if (setup_emulator_config(ctx, argc, argv)) {
-+        return -1;
-+    }
-+
-+    if (wl_global_create(ec->wl_display, &wl_shell_interface, 1,
-+                         ctx, bind_shell_implementation) == NULL) {
-+        return -1;
-+    }
-+    weston_log("wl-shell-emulator module loaded successfully!\n");
-+    return 0;
-+}
---
-1.8.3.1
index 16553da..5a26c9a 100644 (file)
@@ -13,7 +13,6 @@ PACKAGECONFIG[test] = "${ENABLE_TEST},${DISABLE_TEST},gtest"
 
 
 SRC_URI_append = "\
-    file://0001-wayland-ivi-extension-patch-for-wl-shell-emulator.patch \
     file://cmake-find-gtest.patch \
     file://test-path.patch \
     "
diff --git a/recipes-graphics/wayland/weston/0001-weston-patch-for-wl-shell-emulator.patch b/recipes-graphics/wayland/weston/0001-weston-patch-for-wl-shell-emulator.patch
deleted file mode 100644 (file)
index 1cef8df..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
----
- ivi-shell/ivi-layout-export.h | 19 +++++++++++++++++++
- ivi-shell/ivi-layout.c        |  2 ++
- 2 files changed, 21 insertions(+)
-
-diff --git a/ivi-shell/ivi-layout-export.h b/ivi-shell/ivi-layout-export.h
-index 8a92009..7f93c82 100644
---- a/ivi-shell/ivi-layout-export.h
-+++ b/ivi-shell/ivi-layout-export.h
-@@ -185,6 +185,25 @@ struct ivi_layout_interface {
-       int32_t (*commit_changes)(void);
-
-       /**
-+       * \brief Creates an ivi_layout_surface.
-+       *
-+       * \return IVI_SUCCEEDED if the method call was successful
-+       * \return IVI_FAILED if the method call was failed
-+       */
-+      struct ivi_layout_surface* (*surface_create)(
-+                              struct weston_surface *wl_surface,
-+                              uint32_t id_surface);
-+
-+      /**
-+       * \brief Configure an ivi_layout_surface
-+       *
-+       * \return IVI_SUCCEEDED if the method call was successful
-+       * \return IVI_FAILED if the method call was failed
-+       */
-+      void (*surface_configure)(struct ivi_layout_surface *ivisurf,
-+                                int32_t width, int32_t height);
-+
-+      /**
-        * surface controller interface
-        */
-
-diff --git a/ivi-shell/ivi-layout.c b/ivi-shell/ivi-layout.c
-index 51d0a8d..76891bf 100644
---- a/ivi-shell/ivi-layout.c
-+++ b/ivi-shell/ivi-layout.c
-@@ -2870,6 +2870,8 @@ static struct ivi_layout_interface ivi_layout_interface = {
-        */
-       .commit_changes = ivi_layout_commit_changes,
-
-+      .surface_create = ivi_layout_surface_create,
-+      .surface_configure = ivi_layout_surface_configure,
-       /**
-        * surface controller interfaces
-        */
---
-1.8.3.1
diff --git a/recipes-graphics/wayland/weston_%.bbappend b/recipes-graphics/wayland/weston_%.bbappend
deleted file mode 100644 (file)
index 480c72e..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
-
-SRC_URI_append = " \
-    file://0001-weston-patch-for-wl-shell-emulator.patch \
-"
-