ADD @since 1.1 !!

Vincent

On Wed, 1 Jun 2011, Enlightenment SVN wrote:

> Log:
> evas: add evas_object_image_extension_can_load_get.
>
>  This functions let you check if a file could be opened by
>  Evas_Object_Image. It is threadsafe, and you should use it
>  from another thread as often as possible :-)
>
>
>
> Author:       cedric
> Date:         2011-06-01 07:32:08 -0700 (Wed, 01 Jun 2011)
> New Revision: 59872
> Trac:         http://trac.enlightenment.org/e/changeset/59872
>
> Modified:
>  trunk/evas/ChangeLog trunk/evas/src/lib/Evas.h 
> trunk/evas/src/lib/canvas/evas_main.c 
> trunk/evas/src/lib/engines/common/evas_image.h 
> trunk/evas/src/lib/engines/common/evas_image_load.c
>
> Modified: trunk/evas/ChangeLog
> ===================================================================
> --- trunk/evas/ChangeLog      2011-06-01 14:25:15 UTC (rev 59871)
> +++ trunk/evas/ChangeLog      2011-06-01 14:32:08 UTC (rev 59872)
> @@ -387,3 +387,9 @@
> 2011-05-29  Vincent Torri
>
>       * Fix compilation when --disable-async-preload is passed to configure.
> +
> +2011-06-01  Cedric Bail
> +
> +     * Add +evas_object_image_extension_can_load_get and
> +     evas_object_image_extension_can_load_fast_get that check if a file
> +     may be opened by Evas_Object_Image.
>
> Modified: trunk/evas/src/lib/Evas.h
> ===================================================================
> --- trunk/evas/src/lib/Evas.h 2011-06-01 14:25:15 UTC (rev 59871)
> +++ trunk/evas/src/lib/Evas.h 2011-06-01 14:32:08 UTC (rev 59872)
> @@ -5237,6 +5237,28 @@
> EAPI Eina_Bool                evas_object_image_source_unset           
> (Evas_Object *obj) EINA_ARG_NONNULL(1);
>
> /**
> + * Check if a file extention may be supported by @ref Evas_Object_Image.
> + *
> + * @param file The file to check
> + * @return EINA_TRUE if we may be able to opeen it, EINA_FALSE if it's 
> unlikely.
> + *
> + * If file is a Eina_Stringshare, use directly @ref 
> evas_object_image_extension_can_load_fast_get.
> + *
> + * This functions is threadsafe.
> + */
> +EAPI Eina_Bool evas_object_image_extension_can_load_get(const char *file);
> +
> +/**
> + * Check if a file extention may be supported by @ref Evas_Object_Image.
> + *
> + * @param file The file to check, it should be an Eina_Stringshare.
> + * @return EINA_TRUE if we may be able to opeen it, EINA_FALSE if it's 
> unlikely.
> + *
> + * This functions is threadsafe.
> + */
> +EAPI Eina_Bool evas_object_image_extension_can_load_fast_get(const char 
> *file);
> +
> +/**
>  * @defgroup Evas_Object_Text Text Object Functions
>  *
>  * Functions that operate on single line, single style text objects.
>
> Modified: trunk/evas/src/lib/canvas/evas_main.c
> ===================================================================
> --- trunk/evas/src/lib/canvas/evas_main.c     2011-06-01 14:25:15 UTC (rev 
> 59871)
> +++ trunk/evas/src/lib/canvas/evas_main.c     2011-06-01 14:32:08 UTC (rev 
> 59872)
> @@ -510,6 +510,25 @@
>    eina_list_free(list);
> }
>
> +EAPI Eina_Bool
> +evas_object_image_extension_can_load_get(const char *file)
> +{
> +   const char *tmp;
> +   Eina_Bool result;
> +
> +   tmp = eina_stringshare_add(file);
> +   result = evas_common_extension_can_load_get(tmp);
> +   eina_stringshare_del(tmp);
> +
> +   return result;
> +}
> +
> +EAPI Eina_Bool
> +evas_object_image_extension_can_load_fast_get(const char *file)
> +{
> +   return evas_common_extension_can_load_get(file);
> +}
> +
> EAPI void
> evas_pointer_output_xy_get(const Evas *e, int *x, int *y)
> {
>
> Modified: trunk/evas/src/lib/engines/common/evas_image.h
> ===================================================================
> --- trunk/evas/src/lib/engines/common/evas_image.h    2011-06-01 14:25:15 UTC 
> (rev 59871)
> +++ trunk/evas/src/lib/engines/common/evas_image.h    2011-06-01 14:32:08 UTC 
> (rev 59872)
> @@ -57,4 +57,6 @@
>
> void _evas_common_rgba_image_post_surface(Image_Entry *ie);
>
> +EAPI Eina_Bool evas_common_extension_can_load_get(const char *file);
> +
> #endif /* _EVAS_IMAGE_H */
>
> Modified: trunk/evas/src/lib/engines/common/evas_image_load.c
> ===================================================================
> --- trunk/evas/src/lib/engines/common/evas_image_load.c       2011-06-01 
> 14:25:15 UTC (rev 59871)
> +++ trunk/evas/src/lib/engines/common/evas_image_load.c       2011-06-01 
> 14:32:08 UTC (rev 59872)
> @@ -8,61 +8,65 @@
>
> struct ext_loader_s
> {
> +   unsigned int length;
>    const char *extension;
>    const char *loader;
> };
>
> +#define MATCHING(Ext, Module)                   \
> +  { sizeof (Ext), Ext, Module }
> +
> static const struct ext_loader_s loaders[] =
> { /* map extensions to loaders to use for good first-guess tries */
> -   { ".png", "png" },
> -   { ".jpg", "jpeg" },
> -   { ".jpeg", "jpeg" },
> -   { ".jfif", "jpeg" },
> -   { ".eet", "eet" },
> -   { ".edj", "eet" },
> -   { ".eap", "eet" },
> -   { ".edb", "edb" },
> -   { ".xpm", "xpm" },
> -   { ".tiff", "tiff" },
> -   { ".tif", "tiff" },
> -   { ".svg", "svg" },
> -   { ".svgz", "svg" },
> -   { ".svg.gz", "svg" },
> -   { ".gif", "gif" },
> -   { ".pbm", "pmaps" },
> -   { ".pgm", "pmaps" },
> -   { ".ppm", "pmaps" },
> -   { ".pnm", "pmaps" },
> -   { ".bmp", "bmp" },
> -   { ".tga", "tga" },
> -   { ".wbmp", "wbmp" },
> -   { ".ico", "ico" },
> -   { ".cur", "ico" },
> -   { ".psd", "psd" },
> -   { ".pdf", "generic" },
> -   { ".ps", "generic" },
> -   { ".xcf", "generic" },
> -   { ".xcf.gz", "generic" },
> -   { ".arw", "generic" },
> -   { ".cr2", "generic" },
> -   { ".crw", "generic" },
> -   { ".dcr", "generic" },
> -   { ".dng", "generic" },
> -   { ".k25", "generic" },
> -   { ".kdc", "generic" },
> -   { ".erf", "generic" },
> -   { ".mrw", "generic" },
> -   { ".nef", "generic" },
> -   { ".nrf", "generic" },
> -   { ".nrw", "generic" },
> -   { ".orf", "generic" },
> -   { ".raw", "generic" },
> -   { ".rw2", "generic" },
> -   { ".pef", "generic" },
> -   { ".raf", "generic" },
> -   { ".sr2", "generic" },
> -   { ".srf", "generic" },
> -   { ".x3f", "generic" }
> +   MATCHING(".png", "png"),
> +   MATCHING(".jpg", "jpeg"),
> +   MATCHING(".jpeg", "jpeg"),
> +   MATCHING(".jfif", "jpeg"),
> +   MATCHING(".eet", "eet"),
> +   MATCHING(".edj", "eet"),
> +   MATCHING(".eap", "eet"),
> +   MATCHING(".edb", "edb"),
> +   MATCHING(".xpm", "xpm"),
> +   MATCHING(".tiff", "tiff"),
> +   MATCHING(".tif", "tiff"),
> +   MATCHING(".svg", "svg"),
> +   MATCHING(".svgz", "svg"),
> +   MATCHING(".svg.gz", "svg"),
> +   MATCHING(".gif", "gif"),
> +   MATCHING(".pbm", "pmaps"),
> +   MATCHING(".pgm", "pmaps"),
> +   MATCHING(".ppm", "pmaps"),
> +   MATCHING(".pnm", "pmaps"),
> +   MATCHING(".bmp", "bmp"),
> +   MATCHING(".tga", "tga"),
> +   MATCHING(".wbmp", "wbmp"),
> +   MATCHING(".ico", "ico"),
> +   MATCHING(".cur", "ico"),
> +   MATCHING(".psd", "psd"),
> +   MATCHING(".pdf", "generic"),
> +   MATCHING(".ps", "generic"),
> +   MATCHING(".xcf", "generic"),
> +   MATCHING(".xcf.gz", "generic"),
> +   MATCHING(".arw", "generic"),
> +   MATCHING(".cr2", "generic"),
> +   MATCHING(".crw", "generic"),
> +   MATCHING(".dcr", "generic"),
> +   MATCHING(".dng", "generic"),
> +   MATCHING(".k25", "generic"),
> +   MATCHING(".kdc", "generic"),
> +   MATCHING(".erf", "generic"),
> +   MATCHING(".mrw", "generic"),
> +   MATCHING(".nef", "generic"),
> +   MATCHING(".nrf", "generic"),
> +   MATCHING(".nrw", "generic"),
> +   MATCHING(".orf", "generic"),
> +   MATCHING(".raw", "generic"),
> +   MATCHING(".rw2", "generic"),
> +   MATCHING(".pef", "generic"),
> +   MATCHING(".raf", "generic"),
> +   MATCHING(".sr2", "generic"),
> +   MATCHING(".srf", "generic"),
> +   MATCHING(".x3f", "generic")
> };
>
> static const char *loaders_name[] =
> @@ -292,3 +296,23 @@
>
>    return EVAS_LOAD_ERROR_NONE;
> }
> +
> +EAPI Eina_Bool
> +evas_common_extension_can_load_get(const char *file)
> +{
> +   unsigned int length;
> +   unsigned int i;
> +
> +   length = eina_stringshare_strlen(file) + 1;
> +   if (length < 5) return EINA_FALSE;
> +
> +   for (i = 0; i < sizeof (loaders) / sizeof (struct ext_loader_s); ++i)
> +     {
> +        if (loaders[i].length > length) continue;
> +
> +        if (!strcasecmp(loaders[i].extension, file + length - 
> loaders[i].length))
> +          return EINA_TRUE;
> +     }
> +
> +   return EINA_FALSE;
> +}
>
>
> ------------------------------------------------------------------------------
> Simplify data backup and recovery for your virtual environment with vRanger.
> Installation's a snap, and flexible recovery options mean your data is safe,
> secure and there when you need it. Data protection magic?
> Nope - It's vRanger. Get your free trial download today.
> http://p.sf.net/sfu/quest-sfdev2dev
> _______________________________________________
> enlightenment-svn mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
>
>

------------------------------------------------------------------------------
Simplify data backup and recovery for your virtual environment with vRanger. 
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Data protection magic?
Nope - It's vRanger. Get your free trial download today. 
http://p.sf.net/sfu/quest-sfdev2dev
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to