aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYong-iL Joh <yong-il.joh@windriver.com>2015-10-15 20:54:36 +0900
committerYong-iL Joh <yong-il.joh@windriver.com>2015-11-10 20:52:52 +0900
commiteaa9ea93dc58c76170e8214add950c63a0c125bb (patch)
treea7d0d6c326aa006a8ce2d8a1ae3b3c24ab5b7285
parent647889838b7175d687c094f75f55b1c4ddf8aef0 (diff)
downloadmeta-ivi-eaa9ea93dc58c76170e8214add950c63a0c125bb.tar.gz
meta-ivi-eaa9ea93dc58c76170e8214add950c63a0c125bb.tar.bz2
meta-ivi-eaa9ea93dc58c76170e8214add950c63a0c125bb.zip
weston: fix of mismatched plugin interface between weston 1.6.0 and wayland-ivi-ext 1.5.0
Signed-off-by: Yong-iL Joh <yong-il.joh@windriver.com>
-rw-r--r--meta-ivi/recipes-graphics/wayland/weston-1.6.0/0100-Backport-ivi-controller.so-of-wayland-ivi-ext-1.5.0.patch728
-rw-r--r--meta-ivi/recipes-graphics/wayland/weston_1.6.0.bbappend7
2 files changed, 733 insertions, 2 deletions
diff --git a/meta-ivi/recipes-graphics/wayland/weston-1.6.0/0100-Backport-ivi-controller.so-of-wayland-ivi-ext-1.5.0.patch b/meta-ivi/recipes-graphics/wayland/weston-1.6.0/0100-Backport-ivi-controller.so-of-wayland-ivi-ext-1.5.0.patch
new file mode 100644
index 0000000..45bee1e
--- /dev/null
+++ b/meta-ivi/recipes-graphics/wayland/weston-1.6.0/0100-Backport-ivi-controller.so-of-wayland-ivi-ext-1.5.0.patch
@@ -0,0 +1,728 @@
+From 4bb28e551662231e25036e0f993047bbe6c00e33 Mon Sep 17 00:00:00 2001
+From: Yong-iL Joh <yong-il.joh@windriver.com>
+Date: Thu, 15 Oct 2015 15:37:25 +0900
+Subject: [PATCH] Backport ivi-controller.so of wayland-ivi-ext 1.5.0
+
+Signed-off-by: Yong-iL Joh <yong-il.joh@windriver.com>
+---
+ ivi-shell/ivi-layout-export.h | 602 +++++++++++++++++++++++++++++++++++++++++
+ ivi-shell/ivi-layout.c | 96 +++++++
+ 2 files changed, 698 insertions(+)
+
+diff --git a/ivi-shell/ivi-layout-export.h b/ivi-shell/ivi-layout-export.h
+index 18b1dc3..2b1ae00 100644
+--- a/ivi-shell/ivi-layout-export.h
++++ b/ivi-shell/ivi-layout-export.h
+@@ -682,6 +682,608 @@ ivi_layout_transition_move_layer_cancel(struct ivi_layout_layer* layer);
+ int32_t
+ ivi_layout_commit_changes(void);
+
++struct ivi_controller_interface {
++
++ /**
++ * \brief Commit all changes and execute all enqueued commands since
++ * last commit.
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*commit_changes)(void);
++
++ /**
++ * surface controller interface
++ */
++
++ /**
++ * \brief register/unregister for notification when ivi_surface is created
++ */
++ int32_t (*add_notification_create_surface)(
++ surface_create_notification_func callback,
++ void *userdata);
++
++ void (*remove_notification_create_surface)(
++ surface_create_notification_func callback,
++ void *userdata);
++
++ /**
++ * \brief register/unregister for notification when ivi_surface is removed
++ */
++ int32_t (*add_notification_remove_surface)(
++ surface_remove_notification_func callback,
++ void *userdata);
++
++ void (*remove_notification_remove_surface)(
++ surface_remove_notification_func callback,
++ void *userdata);
++
++ /**
++ * \brief register/unregister for notification when ivi_surface is configured
++ */
++ int32_t (*add_notification_configure_surface)(
++ surface_configure_notification_func callback,
++ void *userdata);
++
++ void (*remove_notification_configure_surface)(
++ surface_configure_notification_func callback,
++ void *userdata);
++
++ /**
++ * \brief Get all ivi_surfaces which are currently registered and managed
++ * by the services
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*get_surfaces)(int32_t *pLength, struct ivi_layout_surface ***ppArray);
++
++ /**
++ * \brief get id of ivi_surface from ivi_layout_surface
++ *
++ * \return id of ivi_surface
++ */
++ uint32_t (*get_id_of_surface)(struct ivi_layout_surface *ivisurf);
++
++ /**
++ * \brief get ivi_layout_surface from id of ivi_surface
++ *
++ * \return (struct ivi_layout_surface *)
++ * if the method call was successful
++ * \return NULL if the method call was failed
++ */
++ struct ivi_layout_surface *
++ (*get_surface_from_id)(uint32_t id_surface);
++
++ /**
++ * \brief get ivi_layout_surface_properties from ivisurf
++ *
++ * \return (struct ivi_layout_surface_properties *)
++ * if the method call was successful
++ * \return NULL if the method call was failed
++ */
++ const struct ivi_layout_surface_properties *
++ (*get_properties_of_surface)(struct ivi_layout_surface *ivisurf);
++
++ /**
++ * \brief Get all Surfaces which are currently registered to a given
++ * layer and are managed by the services
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*get_surfaces_on_layer)(struct ivi_layout_layer *ivilayer,
++ int32_t *pLength,
++ struct ivi_layout_surface ***ppArray);
++
++ /**
++ * \brief Set the visibility of a ivi_surface.
++ *
++ * If a surface is not visible it will not be rendered.
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*surface_set_visibility)(struct ivi_layout_surface *ivisurf,
++ bool newVisibility);
++
++ /**
++ * \brief Get the visibility of a surface.
++ *
++ * If a surface is not visible it will not be rendered.
++ *
++ * \return true if surface is visible
++ * \return false if surface is invisible or the method call was failed
++ */
++ bool (*surface_get_visibility)(struct ivi_layout_surface *ivisurf);
++
++ /**
++ * \brief Set the opacity of a surface.
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*surface_set_opacity)(struct ivi_layout_surface *ivisurf,
++ wl_fixed_t opacity);
++
++ /**
++ * \brief Get the opacity of a ivi_surface.
++ *
++ * \return opacity if the method call was successful
++ * \return wl_fixed_from_double(0.0) if the method call was failed
++ */
++ wl_fixed_t (*surface_get_opacity)(struct ivi_layout_surface *ivisurf);
++
++ /**
++ * \brief Set the area of a ivi_surface which should be used for the rendering.
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*surface_set_source_rectangle)(struct ivi_layout_surface *ivisurf,
++ int32_t x, int32_t y,
++ int32_t width, int32_t height);
++
++ /**
++ * \brief Set the destination area of a ivi_surface within a ivi_layer
++ * for rendering.
++ *
++ * The surface will be scaled to this rectangle for rendering.
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*surface_set_destination_rectangle)(struct ivi_layout_surface *ivisurf,
++ int32_t x, int32_t y,
++ int32_t width, int32_t height);
++
++ /**
++ * \brief Sets the horizontal and vertical position of the surface.
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*surface_set_position)(struct ivi_layout_surface *ivisurf,
++ int32_t dest_x, int32_t dest_y);
++
++ /**
++ * \brief Get the horizontal and vertical position of the surface.
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*surface_get_position)(struct ivi_layout_surface *ivisurf,
++ int32_t *dest_x, int32_t *dest_y);
++
++ /**
++ * \brief Set the horizontal and vertical dimension of the surface.
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*surface_set_dimension)(struct ivi_layout_surface *ivisurf,
++ int32_t dest_width, int32_t dest_height);
++
++ /**
++ * \brief Get the horizontal and vertical dimension of the surface.
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*surface_get_dimension)(struct ivi_layout_surface *ivisurf,
++ int32_t *dest_width, int32_t *dest_height);
++
++ /**
++ * \brief Sets the orientation of a ivi_surface.
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*surface_set_orientation)(struct ivi_layout_surface *ivisurf,
++ enum wl_output_transform orientation);
++
++ /**
++ * \brief Gets the orientation of a surface.
++ *
++ * \return (enum wl_output_transform)
++ * if the method call was successful
++ * \return WL_OUTPUT_TRANSFORM_NORMAL if the method call was failed
++ */
++ enum wl_output_transform
++ (*surface_get_orientation)(struct ivi_layout_surface *ivisurf);
++
++ /**
++ * \brief Set an observer callback for ivi_surface content status change.
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*surface_set_content_observer)(
++ struct ivi_layout_surface *ivisurf,
++ ivi_controller_surface_content_callback callback,
++ void* userdata);
++
++ /**
++ * \brief register for notification on property changes of ivi_surface
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*surface_add_notification)(struct ivi_layout_surface *ivisurf,
++ surface_property_notification_func callback,
++ void *userdata);
++
++ /**
++ * \brief remove notification on property changes of ivi_surface
++ */
++ void (*surface_remove_notification)(struct ivi_layout_surface *ivisurf);
++
++ /**
++ * \brief get weston_surface of ivi_surface
++ */
++ struct weston_surface *
++ (*surface_get_weston_surface)(struct ivi_layout_surface *ivisurf);
++
++ /**
++ * \brief set type of transition animation
++ */
++ int32_t (*surface_set_transition)(struct ivi_layout_surface *ivisurf,
++ enum ivi_layout_transition_type type,
++ uint32_t duration);
++
++ /**
++ * \brief set duration of transition animation
++ */
++ int32_t (*surface_set_transition_duration)(
++ struct ivi_layout_surface *ivisurf,
++ uint32_t duration);
++
++ /**
++ * layer controller interface
++ */
++
++ /**
++ * \brief register/unregister for notification when ivi_layer is created
++ */
++ int32_t (*add_notification_create_layer)(
++ layer_create_notification_func callback,
++ void *userdata);
++
++ void (*remove_notification_create_layer)(
++ layer_create_notification_func callback,
++ void *userdata);
++
++ /**
++ * \brief register/unregister for notification when ivi_layer is removed
++ */
++ int32_t (*add_notification_remove_layer)(
++ layer_remove_notification_func callback,
++ void *userdata);
++
++ void (*remove_notification_remove_layer)(
++ layer_remove_notification_func callback,
++ void *userdata);
++
++ /**
++ * \brief Create a ivi_layer which should be managed by the service
++ *
++ * \return (struct ivi_layout_layer *)
++ * if the method call was successful
++ * \return NULL if the method call was failed
++ */
++ struct ivi_layout_layer *
++ (*layer_create_with_dimension)(uint32_t id_layer,
++ int32_t width, int32_t height);
++
++ /**
++ * \brief Removes a ivi_layer which is currently managed by the service
++ */
++ void (*layer_remove)(struct ivi_layout_layer *ivilayer);
++
++ /**
++ * \brief Get all ivi_layers which are currently registered and managed
++ * by the services
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*get_layers)(int32_t *pLength, struct ivi_layout_layer ***ppArray);
++
++ /**
++ * \brief get id of ivi_layer from ivi_layout_layer
++ *
++ *
++ * \return id of ivi_layer
++ */
++ uint32_t (*get_id_of_layer)(struct ivi_layout_layer *ivilayer);
++
++ /**
++ * \brief get ivi_layout_layer from id of layer
++ *
++ * \return (struct ivi_layout_layer *)
++ * if the method call was successful
++ * \return NULL if the method call was failed
++ */
++ struct ivi_layout_layer * (*get_layer_from_id)(uint32_t id_layer);
++
++ /**
++ * \brief Get the ivi_layer properties
++ *
++ * \return (const struct ivi_layout_layer_properties *)
++ * if the method call was successful
++ * \return NULL if the method call was failed
++ */
++ const struct ivi_layout_layer_properties *
++ (*get_properties_of_layer)(struct ivi_layout_layer *ivilayer);
++
++ /**
++ * \brief Get all ivi_ayers under the given ivi_surface
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*get_layers_under_surface)(struct ivi_layout_surface *ivisurf,
++ int32_t *pLength,
++ struct ivi_layout_layer ***ppArray);
++
++ /**
++ * \brief Get all Layers of the given screen
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*get_layers_on_screen)(struct ivi_layout_screen *iviscrn,
++ int32_t *pLength,
++ struct ivi_layout_layer ***ppArray);
++
++ /**
++ * \brief Set the visibility of a ivi_layer. If a ivi_layer is not visible,
++ * the ivi_layer and its ivi_surfaces will not be rendered.
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*layer_set_visibility)(struct ivi_layout_layer *ivilayer,
++ bool newVisibility);
++
++ /**
++ * \brief Get the visibility of a layer. If a layer is not visible,
++ * the layer and its surfaces will not be rendered.
++ *
++ * \return true if layer is visible
++ * \return false if layer is invisible or the method call was failed
++ */
++ bool (*layer_get_visibility)(struct ivi_layout_layer *ivilayer);
++
++ /**
++ * \brief Set the opacity of a ivi_layer.
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*layer_set_opacity)(struct ivi_layout_layer *ivilayer,
++ wl_fixed_t opacity);
++
++ /**
++ * \brief Get the opacity of a ivi_layer.
++ *
++ * \return opacity if the method call was successful
++ * \return wl_fixed_from_double(0.0) if the method call was failed
++ */
++ wl_fixed_t (*layer_get_opacity)(struct ivi_layout_layer *ivilayer);
++
++ /**
++ * \brief Set the area of a ivi_layer which should be used for the rendering.
++ *
++ * Only this part will be visible.
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*layer_set_source_rectangle)(struct ivi_layout_layer *ivilayer,
++ int32_t x, int32_t y,
++ int32_t width, int32_t height);
++
++ /**
++ * \brief Set the destination area on the display for a ivi_layer.
++ *
++ * The ivi_layer will be scaled and positioned to this rectangle
++ * for rendering
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*layer_set_destination_rectangle)(struct ivi_layout_layer *ivilayer,
++ int32_t x, int32_t y,
++ int32_t width, int32_t height);
++
++ /**
++ * \brief Sets the horizontal and vertical position of the ivi_layer.
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*layer_set_position)(struct ivi_layout_layer *ivilayer,
++ int32_t dest_x, int32_t dest_y);
++
++ /**
++ * \brief Get the horizontal and vertical position of the ivi_layer.
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*layer_get_position)(struct ivi_layout_layer *ivilayer,
++ int32_t *dest_x, int32_t *dest_y);
++
++ /**
++ * \brief Set the horizontal and vertical dimension of the layer.
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*layer_set_dimension)(struct ivi_layout_layer *ivilayer,
++ int32_t dest_width, int32_t dest_height);
++
++ /**
++ * \brief Get the horizontal and vertical dimension of the layer.
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*layer_get_dimension)(struct ivi_layout_layer *ivilayer,
++ int32_t *dest_width, int32_t *dest_height);
++
++ /**
++ * \brief Sets the orientation of a ivi_layer.
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*layer_set_orientation)(struct ivi_layout_layer *ivilayer,
++ enum wl_output_transform orientation);
++
++ /**
++ * \brief Gets the orientation of a layer.
++ *
++ * \return (enum wl_output_transform)
++ * if the method call was successful
++ * \return WL_OUTPUT_TRANSFORM_NORMAL if the method call was failed
++ */
++ enum wl_output_transform
++ (*layer_get_orientation)(struct ivi_layout_layer *ivilayer);
++
++ /**
++ * \brief Add a ivi_surface to a ivi_layer which is currently managed by the service
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*layer_add_surface)(struct ivi_layout_layer *ivilayer,
++ struct ivi_layout_surface *addsurf);
++
++ /**
++ * \brief Removes a surface from a layer which is currently managed by the service
++ */
++ void (*layer_remove_surface)(struct ivi_layout_layer *ivilayer,
++ struct ivi_layout_surface *remsurf);
++
++ /**
++ * \brief Sets render order of ivi_surfaces within a ivi_layer
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*layer_set_render_order)(struct ivi_layout_layer *ivilayer,
++ struct ivi_layout_surface **pSurface,
++ int32_t number);
++
++ /**
++ * \brief register for notification on property changes of ivi_layer
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*layer_add_notification)(struct ivi_layout_layer *ivilayer,
++ layer_property_notification_func callback,
++ void *userdata);
++
++ /**
++ * \brief remove notification on property changes of ivi_layer
++ */
++ void (*layer_remove_notification)(struct ivi_layout_layer *ivilayer);
++
++ /**
++ * \brief set type of transition animation
++ */
++ int32_t (*layer_set_transition)(struct ivi_layout_layer *ivilayer,
++ enum ivi_layout_transition_type type,
++ uint32_t duration);
++
++ /**
++ * screen controller interface
++ */
++
++ /**
++ * \brief get ivi_layout_screen from id of ivi_screen
++ *
++ * \return (struct ivi_layout_screen *)
++ * if the method call was successful
++ * \return NULL if the method call was failed
++ */
++ struct ivi_layout_screen *
++ (*get_screen_from_id)(uint32_t id_screen);
++
++ /**
++ * \brief Get the screen resolution of a specific ivi_screen
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*get_screen_resolution)(struct ivi_layout_screen *iviscrn,
++ int32_t *pWidth,
++ int32_t *pHeight);
++
++ /**
++ * \brief Get the ivi_screens
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*get_screens)(int32_t *pLength, struct ivi_layout_screen ***ppArray);
++
++ /**
++ * \brief Get the ivi_screens under the given ivi_layer
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*get_screens_under_layer)(struct ivi_layout_layer *ivilayer,
++ int32_t *pLength,
++ struct ivi_layout_screen ***ppArray);
++
++ /**
++ * \brief Add a ivi_layer to a ivi_screen which is currently managed
++ * by the service
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*screen_add_layer)(struct ivi_layout_screen *iviscrn,
++ struct ivi_layout_layer *addlayer);
++
++ /**
++ * \brief Sets render order of ivi_layers on a ivi_screen
++ *
++ * \return IVI_SUCCEEDED if the method call was successful
++ * \return IVI_FAILED if the method call was failed
++ */
++ int32_t (*screen_set_render_order)(struct ivi_layout_screen *iviscrn,
++ struct ivi_layout_layer **pLayer,
++ const int32_t number);
++
++ /**
++ * \brief get weston_output from ivi_layout_screen.
++ *
++ * \return (struct weston_output *)
++ * if the method call was successful
++ * \return NULL if the method call was failed
++ */
++ struct weston_output *(*screen_get_output)(struct ivi_layout_screen *);
++
++
++ /**
++ * transision animation for layer
++ */
++ void (*transition_move_layer_cancel)(struct ivi_layout_layer *layer);
++ int32_t (*layer_set_fade_info)(struct ivi_layout_layer* ivilayer,
++ uint32_t is_fade_in,
++ double start_alpha, double end_alpha);
++
++};
++
++struct ivi_controller_interface *get_ivi_controller_interface(void);
++
+ #ifdef __cplusplus
+ }
+ #endif /* __cplusplus */
+diff --git a/ivi-shell/ivi-layout.c b/ivi-shell/ivi-layout.c
+index c2c8786..2f749dc 100644
+--- a/ivi-shell/ivi-layout.c
++++ b/ivi-shell/ivi-layout.c
+@@ -2809,3 +2809,99 @@ WL_EXPORT struct ivi_layout_interface ivi_layout_interface = {
+ .get_surface_dimension = ivi_layout_surface_get_dimension,
+ .add_surface_configured_listener = ivi_layout_surface_add_configured_listener
+ };
++
++static struct ivi_controller_interface ivi_controller_interface = {
++ /**
++ * commit all changes
++ */
++ .commit_changes = ivi_layout_commit_changes,
++
++ /**
++ * surface controller interfaces
++ */
++ .add_notification_create_surface = ivi_layout_add_notification_create_surface,
++ .remove_notification_create_surface = ivi_layout_remove_notification_create_surface,
++ .add_notification_remove_surface = ivi_layout_add_notification_remove_surface,
++ .remove_notification_remove_surface = ivi_layout_remove_notification_remove_surface,
++ .add_notification_configure_surface = ivi_layout_add_notification_configure_surface,
++ .remove_notification_configure_surface = ivi_layout_remove_notification_configure_surface,
++ .get_surfaces = ivi_layout_get_surfaces,
++ .get_id_of_surface = ivi_layout_get_id_of_surface,
++ .get_surface_from_id = ivi_layout_get_surface_from_id,
++ .get_properties_of_surface = ivi_layout_get_properties_of_surface,
++ .get_surfaces_on_layer = ivi_layout_get_surfaces_on_layer,
++ .surface_set_visibility = ivi_layout_surface_set_visibility,
++ .surface_get_visibility = ivi_layout_surface_get_visibility,
++ .surface_set_opacity = ivi_layout_surface_set_opacity,
++ .surface_get_opacity = ivi_layout_surface_get_opacity,
++ .surface_set_source_rectangle = ivi_layout_surface_set_source_rectangle,
++ .surface_set_destination_rectangle = ivi_layout_surface_set_destination_rectangle,
++ .surface_set_position = ivi_layout_surface_set_position,
++ .surface_get_position = ivi_layout_surface_get_position,
++ .surface_set_dimension = ivi_layout_surface_set_dimension,
++ .surface_get_dimension = ivi_layout_surface_get_dimension,
++ .surface_set_orientation = ivi_layout_surface_set_orientation,
++ .surface_get_orientation = ivi_layout_surface_get_orientation,
++ .surface_set_content_observer = ivi_layout_surface_set_content_observer,
++ .surface_add_notification = ivi_layout_surface_add_notification,
++ .surface_remove_notification = ivi_layout_surface_remove_notification,
++ .surface_get_weston_surface = ivi_layout_surface_get_weston_surface,
++ .surface_set_transition = ivi_layout_surface_set_transition,
++ .surface_set_transition_duration = ivi_layout_surface_set_transition_duration,
++
++ /**
++ * layer controller interfaces
++ */
++ .add_notification_create_layer = ivi_layout_add_notification_create_layer,
++ .remove_notification_create_layer = ivi_layout_remove_notification_create_layer,
++ .add_notification_remove_layer = ivi_layout_add_notification_remove_layer,
++ .remove_notification_remove_layer = ivi_layout_remove_notification_remove_layer,
++ .layer_create_with_dimension = ivi_layout_layer_create_with_dimension,
++ .layer_remove = ivi_layout_layer_remove,
++ .get_layers = ivi_layout_get_layers,
++ .get_id_of_layer = ivi_layout_get_id_of_layer,
++ .get_layer_from_id = ivi_layout_get_layer_from_id,
++ .get_properties_of_layer = ivi_layout_get_properties_of_layer,
++ .get_layers_under_surface = ivi_layout_get_layers_under_surface,
++ .get_layers_on_screen = ivi_layout_get_layers_on_screen,
++ .layer_set_visibility = ivi_layout_layer_set_visibility,
++ .layer_get_visibility = ivi_layout_layer_get_visibility,
++ .layer_set_opacity = ivi_layout_layer_set_opacity,
++ .layer_get_opacity = ivi_layout_layer_get_opacity,
++ .layer_set_source_rectangle = ivi_layout_layer_set_source_rectangle,
++ .layer_set_destination_rectangle = ivi_layout_layer_set_destination_rectangle,
++ .layer_set_position = ivi_layout_layer_set_position,
++ .layer_get_position = ivi_layout_layer_get_position,
++ .layer_set_dimension = ivi_layout_layer_set_dimension,
++ .layer_get_dimension = ivi_layout_layer_get_dimension,
++ .layer_set_orientation = ivi_layout_layer_set_orientation,
++ .layer_get_orientation = ivi_layout_layer_get_orientation,
++ .layer_add_surface = ivi_layout_layer_add_surface,
++ .layer_remove_surface = ivi_layout_layer_remove_surface,
++ .layer_set_render_order = ivi_layout_layer_set_render_order,
++ .layer_add_notification = ivi_layout_layer_add_notification,
++ .layer_remove_notification = ivi_layout_layer_remove_notification,
++ .layer_set_transition = ivi_layout_layer_set_transition,
++
++ /**
++ * screen controller interfaces
++ */
++ .get_screen_from_id = ivi_layout_get_screen_from_id,
++ .get_screen_resolution = ivi_layout_get_screen_resolution,
++ .get_screens = ivi_layout_get_screens,
++ .get_screens_under_layer = ivi_layout_get_screens_under_layer,
++ .screen_add_layer = ivi_layout_screen_add_layer,
++ .screen_set_render_order = ivi_layout_screen_set_render_order,
++ .screen_get_output = ivi_layout_screen_get_output,
++
++ /**
++ * animation
++ */
++ .transition_move_layer_cancel = ivi_layout_transition_move_layer_cancel,
++ .layer_set_fade_info = ivi_layout_layer_set_fade_info
++};
++
++WL_EXPORT struct ivi_controller_interface *
++get_ivi_controller_interface(void) {
++ return &ivi_controller_interface;
++}
diff --git a/meta-ivi/recipes-graphics/wayland/weston_1.6.0.bbappend b/meta-ivi/recipes-graphics/wayland/weston_1.6.0.bbappend
index 3f09534..036d793 100644
--- a/meta-ivi/recipes-graphics/wayland/weston_1.6.0.bbappend
+++ b/meta-ivi/recipes-graphics/wayland/weston_1.6.0.bbappend
@@ -1,4 +1,4 @@
-PR = "r1"
+PR = "r2"
FILESEXTRAPATHS_append := ":${THISDIR}/${PN}:${THISDIR}/${PN}-${PV}"
@@ -59,7 +59,10 @@ EXTRA_OECONF += "--disable-default-vkb"
# [PATCH] fix up for GENIVI baseline 9.0
# Signed-off-by: Yong-iL Joh <yong-il.joh@windriver.com>
-SRC_URI_append = " file://build.fix.up.patch"
+SRC_URI_append = " \
+ file://build.fix.up.patch \
+ file://0100-Backport-ivi-controller.so-of-wayland-ivi-ext-1.5.0.patch \
+"
FILES_${PN} += "${libdir}/weston/* ${sysconfdir}/xdg"
FILES_${PN}-dbg += "${libdir}/weston/.debug/*"