discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e5d207fc256fa43e8168b849cc83dc8c5c32ab11
commit e5d207fc256fa43e8168b849cc83dc8c5c32ab11 Author: zmike <michael.blumenkra...@gmail.com> Date: Sat Mar 29 16:19:01 2014 -0400 +evas_object_image_mmap_get() --- src/lib/evas/Evas_Legacy.h | 17 +++++++++++++++++ src/lib/evas/canvas/evas_image.eo | 13 ++++++++++++- src/lib/evas/canvas/evas_object_image.c | 9 +++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h index 1508544..ea10ba2 100644 --- a/src/lib/evas/Evas_Legacy.h +++ b/src/lib/evas/Evas_Legacy.h @@ -3990,6 +3990,23 @@ EAPI void evas_object_image_file_set(Evas_Object *obj, EAPI void evas_object_image_mmap_set(Evas_Object *obj, const Eina_File *f, const char *key); /** + * Get the source mmaped file from where an image object must fetch the real + * image data (it must be an Eina_File). + * + * @param obj The given image object. + * @param f The mmaped file + * @param key The image key in @p file (if its an Eet one), or @c + * NULL, otherwise. + * + * If the file supports multiple data stored in it (as Eet files do), + * you can get the key to be used as the index of the image in + * this file. + * + * @since 1.10 + */ +EAPI void evas_object_image_mmap_get(const Evas_Object *obj, const Eina_File **f, const char **key); + +/** * Retrieve the source file from where an image object is to fetch the * real image data (it may be an Eet file, besides pure image ones). * diff --git a/src/lib/evas/canvas/evas_image.eo b/src/lib/evas/canvas/evas_image.eo index 7cec701..20f9c3d 100644 --- a/src/lib/evas/canvas/evas_image.eo +++ b/src/lib/evas/canvas/evas_image.eo @@ -775,6 +775,17 @@ class Evas_Image (Evas_Object) @since 1.8 */ } + get { + /*@ + Get the source mmaped file from where an image object must fetch the real + image data (it must be an Eina_File). + + If the file supports multiple data stored in it (as Eet files do), + you can get the key to be used as the index of the image in + this file. + + @since 1.10 */ + } values { const Eina_File *f; /*@ The mmaped file */ const char *key; /*@ The image key in @p file (if its an Eet one), or @c @@ -1151,4 +1162,4 @@ class Evas_Image (Evas_Object) Eo_Base::destructor; Eo_Base::dbg_info_get; } -} \ No newline at end of file +} diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c index 009014b..287ad1a 100644 --- a/src/lib/evas/canvas/evas_object_image.c +++ b/src/lib/evas/canvas/evas_object_image.c @@ -543,6 +543,15 @@ _evas_image_mmap_set(Eo *eo_obj, Evas_Image_Data *o, const Eina_File *f, const c } EOLIAN static void +_evas_image_mmap_get(Eo *eo_obj EINA_UNUSED, Evas_Image_Data *o, const Eina_File **f, const char **key) +{ + if (f) + *f = o->cur->mmaped_source ? o->cur->u.f : NULL; + if (key) + *key = o->cur->key; +} + +EOLIAN static void _evas_image_file_set(Eo *eo_obj, Evas_Image_Data *o, const char *file, const char *key) { Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJ_CLASS); --