]> Pileus Git - ~andy/gtk/blobdiff - gdk-pixbuf/io-wbmp.c
Cleanups
[~andy/gtk] / gdk-pixbuf / io-wbmp.c
index bfbfb4c36eb4ac8c5b067f9a649fb43898fad01e..94a6f61e11e1a154c978211a15c6b04700cd6234 100644 (file)
@@ -1,3 +1,4 @@
+/* -*- mode: C; c-file-style: "linux" -*- */
 /* GdkPixbuf library - Wireless Bitmap image loader
  *
  * Copyright (C) 2000 Red Hat, Inc.
@@ -42,16 +43,16 @@ Known bugs:
 /* Progressive loading */
 
 struct wbmp_progressive_state {
-  ModulePreparedNotifyFunc prepared_func;
-  ModuleUpdatedNotifyFunc updated_func;
+  GdkPixbufModulePreparedFunc prepared_func;
+  GdkPixbufModuleUpdatedFunc updated_func;
   gpointer user_data;
 
-  gboolean need_type : 1;
-  gboolean need_header : 1;
-  gboolean need_width : 1;
-  gboolean need_height : 1;
-  gboolean needmore : 1;
-  gboolean call_progressive_updates : 1;
+  guint need_type : 1;
+  guint need_header : 1;
+  guint need_width : 1;
+  guint need_height : 1;
+  guint needmore : 1;
+  guint call_progressive_updates : 1;
 
   guchar last_buf[16]; /* Just needs to be big enough to hold the largest datum requestable via 'getin' */
   guint last_len;
@@ -63,8 +64,9 @@ struct wbmp_progressive_state {
 };
 
 static gpointer
-gdk_pixbuf__wbmp_image_begin_load(ModulePreparedNotifyFunc prepared_func,
-                                 ModuleUpdatedNotifyFunc updated_func,
+gdk_pixbuf__wbmp_image_begin_load(GdkPixbufModuleSizeFunc size_func, 
+                                  GdkPixbufModulePreparedFunc prepared_func,
+                                 GdkPixbufModuleUpdatedFunc updated_func,
                                   gpointer user_data,
                                   GError **error);
 
@@ -74,41 +76,6 @@ static gboolean gdk_pixbuf__wbmp_image_load_increment(gpointer data,
                                                       guint size,
                                                       GError **error);
 
-
-/* Shared library entry point --> This should be removed when
-   generic_image_load enters gdk-pixbuf-io. */
-static GdkPixbuf *gdk_pixbuf__wbmp_image_load(FILE * f, GError **error)
-{
-       size_t length;
-       char membuf[4096];
-       struct wbmp_progressive_state *State;
-
-       GdkPixbuf *pb;
-
-       State = gdk_pixbuf__wbmp_image_begin_load(NULL, NULL, NULL,
-                                                  error);
-
-        if (State == NULL)
-          return NULL;
-        
-       while (feof(f) == 0) {
-               length = fread(membuf, 1, 4096, f);
-               if (!gdk_pixbuf__wbmp_image_load_increment(State, membuf, length, 
-                                                          error)) {
-                 gdk_pixbuf__wbmp_image_stop_load (State, NULL);
-                 return NULL;
-               }
-
-       }
-       if (State->pixbuf != NULL)
-               g_object_ref(State->pixbuf);
-
-       pb = State->pixbuf;
-
-       gdk_pixbuf__wbmp_image_stop_load(State, NULL);
-       return pb;
-}
-
 /* 
  * func - called when we have pixmap created (but no image data)
  * user_data - passed as arg 1 to func
@@ -116,8 +83,9 @@ static GdkPixbuf *gdk_pixbuf__wbmp_image_load(FILE * f, GError **error)
  */
 
 static gpointer
-gdk_pixbuf__wbmp_image_begin_load(ModulePreparedNotifyFunc prepared_func,
-                                  ModuleUpdatedNotifyFunc updated_func,
+gdk_pixbuf__wbmp_image_begin_load(GdkPixbufModuleSizeFunc size_func, 
+                                  GdkPixbufModulePreparedFunc prepared_func,
+                                  GdkPixbufModuleUpdatedFunc updated_func,
                                   gpointer user_data,
                                   GError **error)
 {
@@ -198,7 +166,7 @@ static gboolean
 get_mbi(struct wbmp_progressive_state *context, const guchar **buf, guint *buf_size, int *val)
 {
   guchar intbuf[16];
-  int i, n;
+  int n;
   gboolean rv;
 
   *val = 0;
@@ -372,10 +340,34 @@ static gboolean gdk_pixbuf__wbmp_image_load_increment(gpointer data,
 }
 
 void
-gdk_pixbuf__wbmp_fill_vtable (GdkPixbufModule *module)
+MODULE_ENTRY (wbmp, fill_vtable) (GdkPixbufModule *module)
+{
+       module->begin_load = gdk_pixbuf__wbmp_image_begin_load;
+       module->stop_load = gdk_pixbuf__wbmp_image_stop_load;
+       module->load_increment = gdk_pixbuf__wbmp_image_load_increment;
+}
+
+void
+MODULE_ENTRY (wbmp, fill_info) (GdkPixbufFormat *info)
 {
-  module->load = gdk_pixbuf__wbmp_image_load;
-  module->begin_load = gdk_pixbuf__wbmp_image_begin_load;
-  module->stop_load = gdk_pixbuf__wbmp_image_stop_load;
-  module->load_increment = gdk_pixbuf__wbmp_image_load_increment;
+       static GdkPixbufModulePattern signature[] = {
+               { " ", "z", 1 }, 
+               { NULL, NULL, 0 }
+       };
+       static gchar * mime_types[] = {
+               "image/vnd.wap.wbmp",
+               NULL
+       };
+       static gchar * extensions[] = {
+               "wbmp",
+               NULL
+       };
+
+       info->name = "wbmp";
+       info->signature = signature;
+       info->description = N_("The WBMP image format");
+       info->mime_types = mime_types;
+       info->extensions = extensions;
+       info->flags = GDK_PIXBUF_FORMAT_THREADSAFE;
+       info->license = "LGPL";
 }