Enlightenment CVS committal

Author  : doursse
Project : e17
Module  : proto/edvi

Dir     : e17/proto/edvi/src/plugins/epsilon


Modified Files:
        epsilon_thumbnailer.c 


Log Message:
* configure.in:
fix autoconf warnings
* Makefile.am:
more files in maintainer rule
* edvi.pc.in:
fix cflags
* src/bin/edvi_esmart_test.c: (main):
* src/bin/edvi_evas_test.c: (main):
* src/bin/edvi_ewl_test.c: (main), (_change_page_cb):
* src/bin/ewl_test_dvi.c: (dvi_load):
* src/lib/Edvi.h:
* src/lib/edvi_document.c: (edvi_document_new):
* src/lib/edvi_document.h:
* src/lib/edvi_enum.h:
* src/lib/edvi_main.h:
* src/lib/edvi_page.c: (_edvi_format_string_get), (edvi_page_new),
(edvi_page_render), (edvi_page_page_set), (edvi_page_page_get),
(edvi_page_size_get), (edvi_page_mag_get), (edvi_page_format_set),
(edvi_page_format_get), (edvi_page_orientation_get):
* src/lib/edvi_page.h:
* src/lib/edvi_private.h:
* src/lib/esmart_dvi.c: (esmart_dvi_init), (esmart_dvi_file_set),
(esmart_dvi_page_set), (esmart_dvi_page_get),
(esmart_dvi_size_get), (esmart_dvi_orientation_set),
(esmart_dvi_orientation_get), (esmart_dvi_mag_set),
(esmart_dvi_mag_get), (esmart_dvi_page_next),
(esmart_dvi_page_previous), (esmart_dvi_render),
(esmart_dvi_dvi_document_get), (esmart_dvi_dvi_page_get),
(_smart_clip_unset):
* src/lib/esmart_dvi.h:
* src/lib/etk_dvi.c: (etk_dvi_file_set), (etk_dvi_page_set),
(etk_dvi_page_get), (etk_dvi_size_get), (etk_dvi_orientation_set),
(etk_dvi_mag_set), (etk_dvi_mag_get), (etk_dvi_page_next),
(etk_dvi_page_previous), (etk_dvi_dvi_document_get),
(etk_dvi_dvi_page_get), (_etk_dvi_constructor),
(_etk_dvi_destructor), (_etk_dvi_realize_cb),
(_etk_dvi_unrealize_cb), (_etk_dvi_load):
* src/lib/etk_dvi.h:
* src/lib/ewl_dvi.c: (ewl_dvi_new), (ewl_dvi_init),
(ewl_dvi_file_set), (ewl_dvi_file_get), (ewl_dvi_page_set),
(ewl_dvi_page_get), (ewl_dvi_dvi_size_get),
(ewl_dvi_orientation_set), (ewl_dvi_orientation_get),
(ewl_dvi_mag_set), (ewl_dvi_mag_get), (ewl_dvi_page_next),
(ewl_dvi_page_previous), (ewl_dvi_dvi_document_get),
(ewl_dvi_dvi_page_get), (ewl_dvi_reveal_cb), (ewl_dvi_obscure_cb),
(ewl_dvi_configure_cb), (ewl_dvi_destroy_cb):
* src/lib/ewl_dvi.h:
updates to fit Epdf API
* src/plugins/epsilon/epsilon_thumbnailer.c:
(epsilon_generate_thumb):
update to the newest Epsilon API
* src/plugins/ewl/ewl_dvi.c: (create_test):
use ewl_model_ecore_list_instance instead of ewl_model_ecore_list_get

===================================================================
RCS file: /cvs/e/e17/proto/edvi/src/plugins/epsilon/epsilon_thumbnailer.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- epsilon_thumbnailer.c       1 Mar 2008 22:59:51 -0000       1.2
+++ epsilon_thumbnailer.c       13 Jul 2008 10:11:57 -0000      1.3
@@ -1,60 +1,15 @@
 #include <stdlib.h>
+#include <string.h>
 
-#include <Evas.h>
 #include <Ecore_Evas.h>
 #include <Epsilon.h>
 #include <Epsilon_Plugin.h>
 #include <Edvi.h>
 
-Imlib_Image
-epsilon_thumb_imlib_standardize ()
-{
-   Imlib_Image dst = NULL;
-   int         dw;
-   int         dh;
-   int         sw;
-   int         sh;
-   int         s = 128;
-
-   sw = imlib_image_get_width ();
-   sh = imlib_image_get_height ();
-
-   if (sw > sh)
-     {
-        dw = s;
-       dh = (s * sh) / sw;
-     }
-   else
-     {
-        dh = s;
-       dw = (s * sw) / sh;
-     }
-
-   imlib_context_set_cliprect (0, 0, dw, dh);
-
-   if ((dst = imlib_create_cropped_scaled_image (0, 0, sw, sh, dw, dh)))
-     {
-        imlib_context_set_image (dst);
-       imlib_context_set_anti_alias (1);
-       imlib_image_set_has_alpha (1);
-     }
-
-   return dst;
-}
-
-int
-clip (int val)
-{
-   if (val < 0)
-     return 0;
-
-   return (val > 255) ? 255 : val;
-}
-
-Imlib_Image
+Epsilon_Image *
 epsilon_generate_thumb (Epsilon * e)
 {
-   Imlib_Image    img = NULL;
+   Epsilon_Image *dst = NULL;
    Ecore_Evas    *ee;
    Evas          *evas;
    Evas_Object   *o;
@@ -62,6 +17,8 @@
    Edvi_Property *property;
    Edvi_Document *document;
    Edvi_Page     *page;
+   int            width;
+   int            height;
    const int     *pixels;
    char          *param_kpathsea_mode  = "cx";
 
@@ -83,30 +40,55 @@
    document = edvi_document_new (e->src, device, property);
    if (!document)
      goto no_document;
-   page = edvi_page_new (document, 1);
-   ee = ecore_evas_buffer_new(64,64);
+   page = edvi_page_new (document);
+   if (!page)
+     goto no_page;
+   edvi_page_page_set (page, 0);
+   edvi_page_size_get (page, &width, &height);
+
+   ee = ecore_evas_buffer_new(width, height);
    evas = ecore_evas_get(ee);
+
    o = evas_object_image_add (evas);
    evas_object_move (o, 0, 0);
    edvi_page_render (page, device, o);
    evas_object_show (o);
-   ecore_evas_resize (ee, edvi_page_width_get (page), edvi_page_height_get 
(page));
+
+   dst = calloc(1, sizeof(Epsilon_Image));
+   if (!dst)
+     goto no_dst;
+
+   dst->w = width;
+   dst->h = height;
+   dst->alpha = 1;
+   dst->data = malloc(dst->w * dst->h * sizeof(int));
+   if (!dst->data)
+     goto no_dst_data;
 
    pixels = ecore_evas_buffer_pixels_get (ee);
-   img = imlib_create_image_using_data (edvi_page_width_get (page),
-                                       edvi_page_height_get (page),
-                                       (DATA32 *)pixels);
+   memcpy(dst->data, pixels, dst->w * dst->h * sizeof(int));
 
-   imlib_context_set_image(img);
+   edvi_page_delete (page);
+   edvi_document_delete (document);
+   edvi_property_delete (property);
+   edvi_device_delete (device);
+   edvi_shutdown ();
 
+   ecore_evas_free(ee);
    edvi_page_delete (page);
    edvi_document_delete (document);
    edvi_property_delete (property);
    edvi_device_delete (device);
    edvi_shutdown ();
 
-   return img;
+   return dst;
 
+ no_dst_data:
+   free(dst);
+ no_dst:
+   edvi_page_delete (page);
+ no_page:
+   edvi_document_delete (document);
  no_document:
    edvi_property_delete (property);
  no_property:



-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to