summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2016-03-08 15:53:02 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2016-03-15 11:11:59 +0900
commita58a3532e3e8e890b8cde0ef6d2610466beebd25 (patch)
tree4439fb1a58341f47de4b2f3c49c12116f3c0f0ab
parent8ec48dc268351af4aac6761fdd1f9600cdd3240e (diff)
downloadefl-a58a3532e3e8e890b8cde0ef6d2610466beebd25.tar.gz
Evas.Image: remove video surface
Video stuff should move to a proper player class. I still wonder how exactly Tizen video should be handled, as they continue to reject emotion.
-rw-r--r--src/lib/evas/Evas_Common.h52
-rw-r--r--src/lib/evas/Evas_Legacy.h79
-rw-r--r--src/lib/evas/canvas/evas_image.eo33
-rw-r--r--src/lib/evas/canvas/evas_object_image.c31
4 files changed, 101 insertions, 94 deletions
diff --git a/src/lib/evas/Evas_Common.h b/src/lib/evas/Evas_Common.h
index 50205a775e..c41af8b336 100644
--- a/src/lib/evas/Evas_Common.h
+++ b/src/lib/evas/Evas_Common.h
@@ -172,17 +172,6 @@ typedef Eo Efl_VG;
typedef void Evas_Performance; /**< An Evas Performance handle */
typedef struct _Evas_Smart Evas_Smart; /**< An Evas Smart Object handle */
-
-/**
- * @typedef Evas_Video_Surface
- *
- * A generic datatype for video specific surface information
- * @see evas_object_image_video_surface_set
- * @see evas_object_image_video_surface_get
- * @since 1.1
- */
-typedef struct _Evas_Video_Surface Evas_Video_Surface;
-
typedef int Evas_Angle; /**< A type for angle */
struct _Evas_Coord_Rectangle /** A rectangle in Evas_Coord */
@@ -382,47 +371,6 @@ struct _Evas_Native_Surface
} data; /**< Choose one union data according to your surface. */
};
-/**
- * @def EVAS_VIDEO_SURFACE_VERSION
- * Magic version number to know what the video surf struct looks like
- * @since 1.1
- */
-#define EVAS_VIDEO_SURFACE_VERSION 1
-
-
-typedef void (*Evas_Video_Cb)(void *data, Evas_Object *obj, const Evas_Video_Surface *surface); /**< Evas video callback function signature */
-typedef void (*Evas_Video_Coord_Cb)(void *data, Evas_Object *obj, const Evas_Video_Surface *surface, Evas_Coord a, Evas_Coord b); /**< Evas video coordinates callback function signature */
-
-struct _Evas_Video_Surface
-{
- int version; /**< The Evas Video surface version in use @see EVAS_VIDEO_SURFACE_VERSION*/
-
- Evas_Video_Coord_Cb move; /**< Move the video surface to this position */
- Evas_Video_Coord_Cb resize; /**< Resize the video surface to that size */
- Evas_Video_Cb show; /**< Show the video overlay surface */
- Evas_Video_Cb hide; /**< Hide the video overlay surface */
- Evas_Video_Cb update_pixels; /**< Please update the Evas_Object_Image pixels when called */
-
- Evas_Object *parent; /**< The parent object */
- void *data;
-};
-
-/**
- * Enum values for the Video surface capabilities
- * @see evas_object_image_video_surface_caps_get()
- * @see evas_object_image_video_surface_caps_set()
- */
-
-typedef enum _Evas_Video_Surface_Caps
-{
- EVAS_VIDEO_SURFACE_MOVE = 1, /**< Move capability */
- EVAS_VIDEO_SURFACE_RESIZE = 2, /**< Resize capability */
- EVAS_VIDEO_SURFACE_CLIP = 4, /**< Clip capability */
- EVAS_VIDEO_SURFACE_BELOW = 8, /**< Below capability */
- EVAS_VIDEO_SURFACE_STACKING_CHECK = 16, /**< Stacking capability */
- EVAS_VIDEO_SURFACE_IGNORE_WINDOW = 32, /**< Ignore window capability */
-} Evas_Video_Surface_Caps;
-
#define EVAS_LAYER_MIN -32768 /**< bottom-most layer number */
#define EVAS_LAYER_MAX 32767 /**< top-most layer number */
diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h
index f5b5e5c32e..21d29d7cf2 100644
--- a/src/lib/evas/Evas_Legacy.h
+++ b/src/lib/evas/Evas_Legacy.h
@@ -3572,6 +3572,85 @@ EAPI void evas_object_image_source_visible_set(Evas_Object *obj, Eina_Bool visib
*/
EAPI Eina_Bool evas_object_image_source_visible_get(const Evas_Object *obj);
+/**
+ * @typedef Evas_Video_Surface
+ *
+ * A generic datatype for video specific surface information
+ * @see evas_object_image_video_surface_set
+ * @see evas_object_image_video_surface_get
+ * @since 1.1
+ */
+typedef struct _Evas_Video_Surface Evas_Video_Surface;
+
+/**
+ * @def EVAS_VIDEO_SURFACE_VERSION
+ * Magic version number to know what the video surf struct looks like
+ * @since 1.1
+ */
+#define EVAS_VIDEO_SURFACE_VERSION 1
+
+typedef void (*Evas_Video_Cb)(void *data, Evas_Object *obj, const Evas_Video_Surface *surface); /**< Evas video callback function signature */
+typedef void (*Evas_Video_Coord_Cb)(void *data, Evas_Object *obj, const Evas_Video_Surface *surface, Evas_Coord a, Evas_Coord b); /**< Evas video coordinates callback function signature */
+
+struct _Evas_Video_Surface
+{
+ int version; /**< The Evas Video surface version in use @see EVAS_VIDEO_SURFACE_VERSION*/
+
+ Evas_Video_Coord_Cb move; /**< Move the video surface to this position */
+ Evas_Video_Coord_Cb resize; /**< Resize the video surface to that size */
+ Evas_Video_Cb show; /**< Show the video overlay surface */
+ Evas_Video_Cb hide; /**< Hide the video overlay surface */
+ Evas_Video_Cb update_pixels; /**< Please update the Evas_Object_Image pixels when called */
+
+ Evas_Object *parent; /**< The parent object */
+ void *data;
+};
+
+/**
+ * Enum values for the Video surface capabilities
+ * @see evas_object_image_video_surface_caps_get()
+ * @see evas_object_image_video_surface_caps_set()
+ */
+
+typedef enum _Evas_Video_Surface_Caps
+{
+ EVAS_VIDEO_SURFACE_MOVE = 1, /**< Move capability */
+ EVAS_VIDEO_SURFACE_RESIZE = 2, /**< Resize capability */
+ EVAS_VIDEO_SURFACE_CLIP = 4, /**< Clip capability */
+ EVAS_VIDEO_SURFACE_BELOW = 8, /**< Below capability */
+ EVAS_VIDEO_SURFACE_STACKING_CHECK = 16, /**< Stacking capability */
+ EVAS_VIDEO_SURFACE_IGNORE_WINDOW = 32, /**< Ignore window capability */
+} Evas_Video_Surface_Caps;
+
+/**
+ * @brief Set the video surface linked to a given image of the canvas.
+ *
+ * @param[in] surf The new video surface.
+ *
+ * @since 1.1
+ */
+EAPI void evas_object_image_video_surface_set(Evas_Object *obj, Evas_Video_Surface *surf);
+
+/**
+ * @brief Get the video surface linekd to a given image of the canvas.
+ *
+ * @return The new video surface.
+ *
+ * @since 1.1
+ */
+EAPI const Evas_Video_Surface *evas_object_image_video_surface_get(const Evas_Object *obj);
+
+/**
+ * @brief Set the video surface capabilities to a given image of the canvas.
+ *
+ * @param[in] caps
+ */
+EAPI void evas_object_image_video_surface_caps_set(Evas_Object *obj, unsigned int caps);
+
+/** Get the video surface capabilities to a given image of the canvas.
+ */
+EAPI unsigned int evas_object_image_video_surface_caps_get(const Evas_Object *obj);
+
/*
* Converts the raw image data of the given image object to the
diff --git a/src/lib/evas/canvas/evas_image.eo b/src/lib/evas/canvas/evas_image.eo
index 23de879cd8..4bb000d7fb 100644
--- a/src/lib/evas/canvas/evas_image.eo
+++ b/src/lib/evas/canvas/evas_image.eo
@@ -88,39 +88,6 @@ class Evas.Image (Evas.Object, Efl.File, Efl.Image, Efl.Image_Load, Efl.Image_An
}
}
- /* Video */
- @property video_surface {
- set {
- [[Set the video surface linked to a given image of the canvas.
-
- @since 1.1
- ]]
- values {
- surf: Evas.Video_Surface*; [[The new video surface.]]
- }
- }
- get {
- [[Get the video surface linekd to a given image of the canvas.
-
- @since 1.1
- ]]
- values {
- surf: const(Evas.Video_Surface)*; [[The new video surface.]]
- }
- }
- }
- @property video_surface_caps {
- set {
- [[Set the video surface capabilities to a given image of the canvas.]]
- }
- get {
- [[Get the video surface capabilities to a given image of the canvas.]]
- }
- values {
- caps: uint;
- }
- }
-
/* native surface */
@property native_surface {
set {
diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c
index b2480311db..42056bffb6 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -1503,10 +1503,13 @@ _evas_image_efl_gfx_buffer_colorspace_get(Eo *eo_obj EINA_UNUSED, Evas_Image_Dat
return (Efl_Gfx_Colorspace) o->cur->cspace;
}
-EOLIAN static void
-_evas_image_video_surface_set(Eo *eo_obj, Evas_Image_Data *o, Evas_Video_Surface *surf)
+EAPI void
+evas_object_image_video_surface_set(Evas_Object *eo_obj, Evas_Video_Surface *surf)
{
+ EVAS_OBJECT_LEGACY_API(eo_obj);
+
Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
+ Evas_Image_Data *o = eo_data_scope_get(eo_obj, EVAS_IMAGE_CLASS);
evas_object_async_block(obj);
_evas_image_cleanup(eo_obj, obj, o);
@@ -1561,31 +1564,40 @@ _evas_image_video_surface_set(Eo *eo_obj, Evas_Image_Data *o, Evas_Video_Surface
}
}
-EOLIAN static const Evas_Video_Surface*
-_evas_image_video_surface_get(Eo *eo_obj EINA_UNUSED, Evas_Image_Data *o)
+EAPI const Evas_Video_Surface*
+evas_object_image_video_surface_get(const Evas_Object *eo_obj)
{
+ EVAS_OBJECT_LEGACY_API(eo_obj, NULL);
+
+ Evas_Image_Data *o = eo_data_scope_get(eo_obj, EVAS_IMAGE_CLASS);
return (!o->video_surface ? NULL : &o->pixels->video);
}
-EOLIAN static void
-_evas_image_video_surface_caps_set(Eo *eo_obj, Evas_Image_Data *o, unsigned int caps)
+EAPI void
+evas_object_image_video_surface_caps_set(Evas_Object *eo_obj, unsigned int caps)
{
+ EVAS_OBJECT_LEGACY_API(eo_obj);
+
Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
+ Evas_Image_Data *o = eo_data_scope_get(eo_obj, EVAS_IMAGE_CLASS);
evas_object_async_block(obj);
_evas_image_cleanup(eo_obj, obj, o);
if (caps == o->pixels->video_caps)
- return;
+ return;
EINA_COW_PIXEL_WRITE_BEGIN(o, pixi_write)
pixi_write->video_caps = caps;
EINA_COW_PIXEL_WRITE_END(o, pixi_write)
}
-EOLIAN static unsigned int
-_evas_image_video_surface_caps_get(Eo *eo_obj EINA_UNUSED, Evas_Image_Data *o)
+EAPI unsigned int
+evas_object_image_video_surface_caps_get(const Evas_Object *eo_obj)
{
+ EVAS_OBJECT_LEGACY_API(eo_obj, 0);
+
+ Evas_Image_Data *o = eo_data_scope_get(eo_obj, EVAS_IMAGE_CLASS);
return (!o->video_surface ? 0 : o->pixels->video_caps);
}
@@ -4868,6 +4880,7 @@ evas_object_image_source_visible_get(const Evas_Object *eo)
EAPI Eina_Bool
evas_object_image_source_unset(Evas_Object *eo_obj)
{
+ EVAS_OBJECT_LEGACY_API(eo_obj, EINA_FALSE);
return efl_canvas_proxy_source_set(eo_obj, NULL);
}