gegl r2168 - in trunk: . gegl/buffer



Author: ok
Date: Mon Apr 14 23:06:50 2008
New Revision: 2168
URL: http://svn.gnome.org/viewvc/gegl?rev=2168&view=rev

Log:
s/Message/Command/g s/message/command/g, added some macros to
gegl_provider that works as wrappers to use the commands directly
as if they were functions.
* gegl/buffer/gegl-buffer-private.h:
* gegl/buffer/gegl-buffer-save.c:
* gegl/buffer/gegl-buffer.c:
* gegl/buffer/gegl-handler-cache.c:
* gegl/buffer/gegl-handler-empty.c:
* gegl/buffer/gegl-handler-log.c:
* gegl/buffer/gegl-handler-zoom.c:
* gegl/buffer/gegl-handler.c:
* gegl/buffer/gegl-handler.h:
* gegl/buffer/gegl-handlers.c:
* gegl/buffer/gegl-handlers.h:
* gegl/buffer/gegl-provider.c:
* gegl/buffer/gegl-provider.h:
* gegl/buffer/gegl-storage.c:
* gegl/buffer/gegl-tile-disk.c:
* gegl/buffer/gegl-tile-gio.c:
* gegl/buffer/gegl-tile-mem.c:
* gegl/buffer/gegl-tile.c:


Modified:
   trunk/ChangeLog
   trunk/gegl/buffer/gegl-buffer-private.h
   trunk/gegl/buffer/gegl-buffer-save.c
   trunk/gegl/buffer/gegl-buffer.c
   trunk/gegl/buffer/gegl-handler-cache.c
   trunk/gegl/buffer/gegl-handler-empty.c
   trunk/gegl/buffer/gegl-handler-log.c
   trunk/gegl/buffer/gegl-handler-zoom.c
   trunk/gegl/buffer/gegl-handler.c
   trunk/gegl/buffer/gegl-handler.h
   trunk/gegl/buffer/gegl-handlers.c
   trunk/gegl/buffer/gegl-handlers.h
   trunk/gegl/buffer/gegl-provider.c
   trunk/gegl/buffer/gegl-provider.h
   trunk/gegl/buffer/gegl-storage.c
   trunk/gegl/buffer/gegl-tile-disk.c
   trunk/gegl/buffer/gegl-tile-gio.c
   trunk/gegl/buffer/gegl-tile-mem.c
   trunk/gegl/buffer/gegl-tile.c

Modified: trunk/gegl/buffer/gegl-buffer-private.h
==============================================================================
--- trunk/gegl/buffer/gegl-buffer-private.h	(original)
+++ trunk/gegl/buffer/gegl-buffer-private.h	Mon Apr 14 23:06:50 2008
@@ -56,7 +56,7 @@
   gint              min_x; /* the extent of tile indices that has been */
   gint              min_y; /* produced by _get_tile for this buffer */
   gint              max_x; /* this is used in gegl_buffer_void to narrow */
-  gint              max_y; /* down the tiles kill messages are sent for */
+  gint              max_y; /* down the tiles kill commands are sent for */
   gint              max_z;
 };
 

Modified: trunk/gegl/buffer/gegl-buffer-save.c
==============================================================================
--- trunk/gegl/buffer/gegl-buffer-save.c	(original)
+++ trunk/gegl/buffer/gegl-buffer-save.c	Mon Apr 14 23:06:50 2008
@@ -231,8 +231,7 @@
                   gint tx = gegl_tile_indice (tiledx / factor, tile_width);
                   gint ty = gegl_tile_indice (tiledy / factor, tile_height);
 
-                  if (gegl_provider_message (GEGL_PROVIDER (buffer),
-                                             GEGL_TILE_EXIST, tx, ty, z, NULL))
+                  if (gegl_provider_exist (GEGL_PROVIDER (buffer), tx, ty, z))
                     {
                       tx += info->x_tile_shift / factor;
                       ty += info->y_tile_shift / factor;

Modified: trunk/gegl/buffer/gegl-buffer.c
==============================================================================
--- trunk/gegl/buffer/gegl-buffer.c	(original)
+++ trunk/gegl/buffer/gegl-buffer.c	Mon Apr 14 23:06:50 2008
@@ -461,13 +461,13 @@
 }
 
 static GeglTile *
-get_tile (GeglProvider *tile_store,
+get_tile (GeglProvider *buffer,
           gint          x,
           gint          y,
           gint          z)
 {
-  GeglHandlers *handlers = (GeglHandlers*)(tile_store);
-  GeglProvider *provider = ((GeglHandler*)tile_store)->provider;
+  GeglHandlers *handlers = (GeglHandlers*)(buffer);
+  GeglProvider *provider = ((GeglHandler*)buffer)->provider;
   GeglTile     *tile   = NULL;
 
   if (handlers->chain != NULL)
@@ -480,27 +480,27 @@
 
   if (tile)
     {
-      GeglBuffer *buffer = (GeglBuffer*)(tile_store);
+      GeglBuffer *buf = (GeglBuffer*)(buffer);
       tile->x = x;
       tile->y = y;
       tile->z = z;
 
-      if (x < buffer->min_x)
-        buffer->min_x = x;
-      if (y < buffer->min_y)
-        buffer->min_y = y;
-      if (x > buffer->max_x)
-        buffer->max_x = x;
-      if (y > buffer->max_y)
-        buffer->max_y = y;
-      if (z > buffer->max_z)
-        buffer->max_z = z;
+      if (x < buf->min_x)
+        buf->min_x = x;
+      if (y < buf->min_y)
+        buf->min_y = y;
+      if (x > buf->max_x)
+        buf->max_x = x;
+      if (y > buf->max_y)
+        buf->max_y = y;
+      if (z > buf->max_z)
+        buf->max_z = z;
 
       /* storing information in tile, to enable the dispose function of the
        * tile instance to "hook" back to the storage with correct coordinates.
        */
       {
-        tile->storage   = buffer->storage;
+        tile->storage   = buf->storage;
         tile->storage_x = x;
         tile->storage_y = y;
         tile->storage_z = z;
@@ -510,6 +510,20 @@
   return tile;
 }
 
+
+static gpointer
+command (GeglProvider   *buffer,
+         GeglTileCommand command,
+         gint            x,
+         gint            y,
+         gint            z,
+         gpointer        data)
+{
+  if (command == GEGL_TILE_GET)
+    return get_tile (buffer, x, y, z);
+  return gegl_handler_chain_up (GEGL_HANDLER(buffer), command, x, y, z, data);
+}
+
 static void
 gegl_buffer_class_init (GeglBufferClass *class)
 {
@@ -521,7 +535,7 @@
   gobject_class->constructor  = gegl_buffer_constructor;
   gobject_class->set_property = set_property;
   gobject_class->get_property = get_property;
-  tile_provider_class->get_tile  = get_tile;
+  tile_provider_class->command = command;
 
   g_object_class_install_property (gobject_class, PROP_PX_SIZE,
                                    g_param_spec_int ("px-size", "pixel-size", "size of a single pixel in bytes.",
@@ -613,30 +627,6 @@
   allocated_buffers++;
 }
 
-#if 0
-gboolean
-gegl_buffer_void_tile (GeglBuffer *buffer,
-                       gint        x,
-                       gint        y)
-{
-  gint z = 0;
-
-  g_return_val_if_fail (GEGL_IS_BUFFER (buffer), NULL);
-
-  return gegl_provider_message (GEGL_PROVIDER (buffer),
-                                  GEGL_TILE_VOID, x, y, z, NULL);
-}
-
-/* returns TRUE if something was done */
-gboolean
-gegl_buffer_idle (GeglBuffer *buffer)
-{
-  g_return_val_if_fail (GEGL_IS_BUFFER (buffer), FALSE);
-
-  return gegl_provider_message (GEGL_PROVIDER (buffer),
-                                GEGL_TILE_IDLE, 0, 0, 0, NULL);
-}
-#endif
 
 /***************************************************************************/
 
@@ -681,7 +671,7 @@
 
                   if (z != 0 ||
                       tx >= buffer->min_x)
-                  gegl_provider_message (GEGL_PROVIDER (buffer),
+                  gegl_provider_command (GEGL_PROVIDER (buffer),
                                          GEGL_TILE_VOID, tx, ty, z, NULL);
 
                   if (z != 0 ||

Modified: trunk/gegl/buffer/gegl-handler-cache.c
==============================================================================
--- trunk/gegl/buffer/gegl-handler-cache.c	(original)
+++ trunk/gegl/buffer/gegl-handler-cache.c	Mon Apr 14 23:06:50 2008
@@ -126,8 +126,8 @@
 
 
 static gpointer
-message (GeglProvider    *tile_store,
-         GeglTileMessage  message,
+command (GeglProvider    *tile_store,
+         GeglTileCommand  command,
          gint             x,
          gint             y,
          gint             z,
@@ -136,11 +136,18 @@
   GeglHandler      *handler = GEGL_HANDLER (tile_store);
   GeglHandlerCache *cache   = GEGL_HANDLER_CACHE (handler);
 
-  if (message == GEGL_TILE_IS_CACHED)
+  /* FIXME: replace with switch */
+
+  if (command == GEGL_TILE_GET)
+    {
+      return get_tile (tile_store, x, y, z);
+    }
+  
+  if (command == GEGL_TILE_IS_CACHED)
     {
       return (gpointer)gegl_handler_cache_has_tile (cache, x, y, z);
     }
-  if (message == GEGL_TILE_EXIST)
+  if (command == GEGL_TILE_EXIST)
     {
       gboolean is_cached = gegl_handler_cache_has_tile (cache, x, y, z);
       if (is_cached)
@@ -150,18 +157,18 @@
       /* otherwise pass on the request */
     }
 
-  if (message == GEGL_TILE_IDLE)
+  if (command == GEGL_TILE_IDLE)
     {
       gboolean action = gegl_handler_cache_wash (cache);
       if (action)
         return (gpointer)action;
     }
-  if (message == GEGL_TILE_VOID)
+  if (command == GEGL_TILE_VOID)
     {
       gegl_handler_cache_void (cache, x, y, z);
       return NULL;
     }
-  return gegl_handler_chain_up (handler, message, x, y, z, data);
+  return gegl_handler_chain_up (handler, command, x, y, z, data);
 }
 
 static void
@@ -223,8 +230,7 @@
   gobject_class->finalize     = finalize;
   gobject_class->dispose      = dispose;
 
-  provider_class->get_tile = get_tile;
-  provider_class->message  = message;
+  provider_class->command  = command;
 
   g_object_class_install_property (gobject_class, PROP_SIZE,
                                    g_param_spec_int ("size",

Modified: trunk/gegl/buffer/gegl-handler-empty.c
==============================================================================
--- trunk/gegl/buffer/gegl-handler-empty.c	(original)
+++ trunk/gegl/buffer/gegl-handler-empty.c	Mon Apr 14 23:06:50 2008
@@ -130,6 +130,20 @@
 }
 
 
+static gpointer
+command (GeglProvider   *buffer,
+         GeglTileCommand command,
+         gint            x,
+         gint            y,
+         gint            z,
+         gpointer        data)
+{
+  if (command == GEGL_TILE_GET)
+    return get_tile (buffer, x, y, z);
+  return gegl_handler_chain_up (GEGL_HANDLER(buffer), command, x, y, z, data);
+}
+
+
 static void
 gegl_handler_empty_class_init (GeglHandlerEmptyClass *klass)
 {
@@ -140,8 +154,7 @@
   gobject_class->finalize     = finalize;
   gobject_class->set_property = set_property;
   gobject_class->get_property = get_property;
-
-  provider_class->get_tile = get_tile;
+  provider_class->command = command;
 
   g_object_class_install_property (gobject_class, PROP_BACKEND,
                                    g_param_spec_object ("backend",

Modified: trunk/gegl/buffer/gegl-handler-log.c
==============================================================================
--- trunk/gegl/buffer/gegl-handler-log.c	(original)
+++ trunk/gegl/buffer/gegl-handler-log.c	Mon Apr 14 23:06:50 2008
@@ -24,32 +24,28 @@
 
 G_DEFINE_TYPE (GeglHandlerLog, gegl_handler_log, GEGL_TYPE_HANDLER)
 
-static GeglTile *
-get_tile (GeglProvider *gegl_provider,
-          gint          x,
-          gint          y,
-          gint          z)
-{
-  GeglProvider *provider = GEGL_HANDLER (gegl_provider)->provider;
-  GeglTile      *tile   = NULL;
-
-  g_print ("(get %p %i,%i,%i)", (void *) gegl_provider, x, y, z);
-
-  if (provider)
-    tile = gegl_provider_get_tile (provider, x, y, z);
-
-  return tile;
-}
 
-static char *messages[] =
+static char *commands[] =
 {
-  "idle", "set",  "is_cached", "exist", "void", "void tl", "void tr", "void bl",
-  "void br", "undo start group", "last message", "eeek", NULL
+  "idle",
+  "set",
+  "get",
+  "is_cached",
+  "exist",
+  "void",
+  "void tl", 
+  "void tr", 
+  "void bl",
+  "void br",
+  "undo start group",
+  "last command",
+  "eeek",
+  NULL
 };
 
 static gpointer
-message (GeglProvider  *gegl_provider,
-         GeglTileMessage message,
+command (GeglProvider  *gegl_provider,
+         GeglTileCommand command,
          gint            x,
          gint            y,
          gint            z,
@@ -58,15 +54,15 @@
   GeglHandler *handler = GEGL_HANDLER (gegl_provider);
   gpointer     result = NULL;
 
-  result = gegl_handler_chain_up (handler, message, x, y, z, data);
+  result = gegl_handler_chain_up (handler, command, x, y, z, data);
 
-  switch (message)
+  switch (command)
     {
       case GEGL_TILE_IDLE:
         break;
       default:
         g_print ("(%s %p %p %i,%i,%i => %s)", 
-          messages[message], (void *) gegl_provider, data, x, y, z,
+          commands[command], (void *) gegl_provider, data, x, y, z,
           result?"1":"0");
     }
   return result;
@@ -77,8 +73,7 @@
 {
   GeglProviderClass *provider_class = GEGL_PROVIDER_CLASS (klass);
 
-  provider_class->get_tile = get_tile;
-  provider_class->message  = message;
+  provider_class->command  = command;
 }
 
 static void

Modified: trunk/gegl/buffer/gegl-handler-zoom.c
==============================================================================
--- trunk/gegl/buffer/gegl-handler-zoom.c	(original)
+++ trunk/gegl/buffer/gegl-handler-zoom.c	Mon Apr 14 23:06:50 2008
@@ -328,26 +328,28 @@
 }
 
 static gpointer
-message (GeglProvider  *tile_store,
-         GeglTileMessage message,
+command (GeglProvider  *tile_store,
+         GeglTileCommand command,
          gint            x,
          gint            y,
          gint            z,
          gpointer        data)
 {
   GeglHandler *handler  = GEGL_HANDLER (tile_store);
-  GeglProvider *provider = handler->provider;
+  /*GeglProvider *provider = handler->provider;*/
 
-  if (message == GEGL_TILE_VOID_TL ||
-      message == GEGL_TILE_VOID_TR ||
-      message == GEGL_TILE_VOID_BL ||
-      message == GEGL_TILE_VOID_BR)
+  if (command == GEGL_TILE_GET)
+    return get_tile (tile_store, x, y, z);
+  if (command == GEGL_TILE_VOID_TL ||
+      command == GEGL_TILE_VOID_TR ||
+      command == GEGL_TILE_VOID_BL ||
+      command == GEGL_TILE_VOID_BR)
     {
-      GeglTile *tile = gegl_provider_get_tile (provider, x, y, z);
+      GeglTile *tile = gegl_provider_get_tile (tile_store, x, y, z);
 
       if (!tile)
         return FALSE;
-      switch (message)
+      switch (command)
         {
           case GEGL_TILE_VOID_TL:
             tile->flags |= GEGL_TILE_DIRT_TL;
@@ -371,8 +373,8 @@
       g_object_unref (tile);
       return FALSE;
     }
-  /* pass the message on */
-  return gegl_handler_chain_up (handler, message, x, y, z, data);
+  /* pass the command on */
+  return gegl_handler_chain_up (handler, command, x, y, z, data);
 }
 
 
@@ -450,8 +452,7 @@
   gobject_class->set_property = set_property;
   gobject_class->get_property = get_property;
 
-  provider_class->get_tile = get_tile;
-  provider_class->message  = message;
+  provider_class->command  = command;
 
   g_object_class_install_property (gobject_class, PROP_STORAGE,
                                    g_param_spec_object ("storage",

Modified: trunk/gegl/buffer/gegl-handler.c
==============================================================================
--- trunk/gegl/buffer/gegl-handler.c	(original)
+++ trunk/gegl/buffer/gegl-handler.c	Mon Apr 14 23:06:50 2008
@@ -49,25 +49,9 @@
   G_OBJECT_CLASS (gegl_handler_parent_class)->dispose (object);
 }
 
-static GeglTile *
-get_tile (GeglProvider *gegl_provider,
-          gint           x,
-          gint           y,
-          gint           z)
-{
-  GeglHandler *handler = (GeglHandler*)(gegl_provider);
-  GeglTile      *tile  = NULL;
-
-  if (handler->provider)
-    tile = gegl_provider_get_tile (handler->provider, x, y, z);
-  if (tile != NULL)
-    return tile;
-  return tile;
-}
-
 static gpointer
-message (GeglProvider   *gegl_provider,
-         GeglTileMessage message,
+command (GeglProvider   *gegl_provider,
+         GeglTileCommand command,
          gint            x,
          gint            y,
          gint            z,
@@ -75,7 +59,7 @@
 {
   GeglHandler *handler = (GeglHandler*)gegl_provider;
 
-  return gegl_handler_chain_up (handler, message, x, y, z, data);
+  return gegl_handler_chain_up (handler, command, x, y, z, data);
 }
 
 static void
@@ -136,7 +120,7 @@
 }
 
 gpointer   gegl_handler_chain_up (GeglHandler     *handler,
-                                  GeglTileMessage  message,
+                                  GeglTileCommand  command,
                                   gint             x,
                                   gint             y,
                                   gint             z,
@@ -144,7 +128,7 @@
 {
   GeglProvider *provider = gegl_handler_get_provider (handler);
   if (provider)
-    return gegl_provider_message (provider, message, x, y, z, data);
+    return gegl_provider_command (provider, command, x, y, z, data);
   return NULL;
 }
 
@@ -158,8 +142,7 @@
   gobject_class->get_property = get_property;
   gobject_class->dispose      = dispose;
 
-  provider_class->get_tile = get_tile;
-  provider_class->message  = message;
+  provider_class->command  = command;
 
   g_object_class_install_property (gobject_class, PROP_SOURCE,
                                    g_param_spec_object ("provider",

Modified: trunk/gegl/buffer/gegl-handler.h
==============================================================================
--- trunk/gegl/buffer/gegl-handler.h	(original)
+++ trunk/gegl/buffer/gegl-handler.h	Mon Apr 14 23:06:50 2008
@@ -49,7 +49,7 @@
 
 
 gpointer   gegl_handler_chain_up (GeglHandler     *handler,
-                                  GeglTileMessage  message,
+                                  GeglTileCommand  command,
                                   gint             x,
                                   gint             y,
                                   gint             z,

Modified: trunk/gegl/buffer/gegl-handlers.c
==============================================================================
--- trunk/gegl/buffer/gegl-handlers.c	(original)
+++ trunk/gegl/buffer/gegl-handlers.c	Mon Apr 14 23:06:50 2008
@@ -84,29 +84,9 @@
   G_OBJECT_CLASS (gegl_handlers_parent_class)->finalize (object);
 }
 
-static GeglTile *
-get_tile (GeglProvider *tile_store,
-          gint          x,
-          gint          y,
-          gint          z)
-{
-  GeglHandlers  *handlers = (GeglHandlers *) tile_store;
-  GeglProvider  *provider = ((GeglHandler *) tile_store)->provider;
-  GeglTile      *tile     = NULL;
-
-  if (handlers->chain != NULL)
-    tile = gegl_provider_get_tile ((GeglProvider *) (handlers->chain->data),
-                                     x, y, z);
-  else if (provider)
-    tile = gegl_provider_get_tile (provider, x, y, z);
-  else
-    g_assert (0);
-  return tile;
-}
-
 static gpointer
-message (GeglProvider  *tile_store,
-         GeglTileMessage message,
+command (GeglProvider  *tile_store,
+         GeglTileCommand command,
          gint            x,
          gint            y,
          gint            z,
@@ -116,10 +96,10 @@
   GeglProvider *provider = ((GeglHandler *) tile_store)->provider;
 
   if (handlers->chain != NULL)
-    return gegl_provider_message ((GeglProvider *)(handlers->chain->data),
-                                  message, x, y, z, data);
+    return gegl_provider_command ((GeglProvider *)(handlers->chain->data),
+                                  command, x, y, z, data);
   else if (provider)
-    return gegl_provider_message (provider, message, x, y, z, data);
+    return gegl_provider_command (provider, command, x, y, z, data);
   else
     g_assert (0);
 
@@ -135,8 +115,7 @@
   gobject_class    = (GObjectClass *) class;
   tile_store_class = (GeglProviderClass *) class;
 
-  tile_store_class->get_tile = get_tile;
-  tile_store_class->message  = message;
+  tile_store_class->command  = command;
 
   gobject_class->finalize = finalize;
   gobject_class->dispose  = dispose;

Modified: trunk/gegl/buffer/gegl-handlers.h
==============================================================================
--- trunk/gegl/buffer/gegl-handlers.h	(original)
+++ trunk/gegl/buffer/gegl-handlers.h	Mon Apr 14 23:06:50 2008
@@ -48,8 +48,9 @@
  * @handler: a #GeglHandler.
  *
  * Adds @handler to the list of handlers to be processed, the order handlers
- * are added in is from original provider to last processing element, messages
- * are passed from the last added to the first one in the chain.
+ * are added in is from original provider to last processing element, commands
+ * are passed from the last added to the first one in the chain, tiles
+ * and other results are passed back up
  *
  * Returns: the added handler.
  */

Modified: trunk/gegl/buffer/gegl-provider.c
==============================================================================
--- trunk/gegl/buffer/gegl-provider.c	(original)
+++ trunk/gegl/buffer/gegl-provider.c	Mon Apr 14 23:06:50 2008
@@ -21,34 +21,22 @@
 
 G_DEFINE_TYPE (GeglProvider, gegl_provider, G_TYPE_OBJECT)
 
-static GeglTile *
-get_tile (GeglProvider *gegl_provider,
-          gint           x,
-          gint           y,
-          gint           z)
-{
-  g_warning ("implementationless %s called", G_STRFUNC);
-  return NULL;
-}
-
 static gpointer
-message (GeglProvider  *gegl_provider,
-         GeglTileMessage message,
+command (GeglProvider  *gegl_provider,
+         GeglTileCommand command,
          gint            x,
          gint            y,
          gint            z,
          gpointer        data)
 {
-  g_warning ("Unhandled message: %s %i, %i, %i, %p", G_STRFUNC, message, x, y, data);
+  g_warning ("Unimplemented %s %i, %i, %i, %p", G_STRFUNC, command, x, y, data);
   return NULL;
 }
 
 static void
 gegl_provider_class_init (GeglProviderClass *klass)
-{
-  /*GObjectClass *gobject_class = G_OBJECT_CLASS (klass);*/
-  klass->get_tile = get_tile;
-  klass->message  = message;
+{  
+  klass->command  = command;
 }
 
 static void
@@ -56,30 +44,9 @@
 {
 }
 
-/**
- *  GeglTile
- *  @gegl_provider: a GeglProvider
- *  @x: horizontal index of requested tile
- *  @y: vertical index of requested tile
- *
- *  Return value: the tile requested (or NULL for sparse backends)
- */
-GeglTile *
-gegl_provider_get_tile (GeglProvider *gegl_provider,
-                          gint           x,
-                          gint           y,
-                          gint           z)
-{
-  GeglProviderClass *klass;
-
-  klass = GEGL_PROVIDER_GET_CLASS (gegl_provider);
-
-  return klass->get_tile (gegl_provider, x, y, z);
-}
-
 gpointer
-gegl_provider_message (GeglProvider    *gegl_provider,
-                       GeglTileMessage  message,
+gegl_provider_command (GeglProvider    *gegl_provider,
+                       GeglTileCommand  command,
                        gint             x,
                        gint             y,
                        gint             z,
@@ -89,6 +56,6 @@
 
   klass = GEGL_PROVIDER_GET_CLASS (gegl_provider);
 
-  return klass->message (gegl_provider, message, x, y, z, data);
+  return klass->command (gegl_provider, command, x, y, z, data);
 }
 

Modified: trunk/gegl/buffer/gegl-provider.h
==============================================================================
--- trunk/gegl/buffer/gegl-provider.h	(original)
+++ trunk/gegl/buffer/gegl-provider.h	Mon Apr 14 23:06:50 2008
@@ -33,11 +33,13 @@
 #define GEGL_IS_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),  GEGL_TYPE_PROVIDER))
 #define GEGL_PROVIDER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),  GEGL_TYPE_PROVIDER, GeglProviderClass))
 
-typedef gint GeglTileMessage;
+typedef gint GeglTileCommand;
 
-enum _GeglTileMessage
+enum _GeglTileCommand
 {
-  GEGL_TILE_SET = 0,
+  GEGL_TILE_IDLE = 0,
+  GEGL_TILE_SET,
+  GEGL_TILE_GET,
   GEGL_TILE_IS_CACHED,
   GEGL_TILE_EXIST,
   GEGL_TILE_VOID,
@@ -46,8 +48,7 @@
   GEGL_TILE_VOID_BL,
   GEGL_TILE_VOID_BR,
   GEGL_TILE_UNDO_START_GROUP,
-  GEGL_TILE_IDLE,
-  GEGL_TILE_LAST_MESSAGE
+  GEGL_TILE_LAST_COMMAND
 };
 
 struct _GeglProvider
@@ -59,13 +60,8 @@
 {
   GObjectClass  parent_class;
 
-  GeglTile     *(*get_tile) (GeglProvider  *gegl_provider,
-                             gint            x,
-                             gint            y,
-                             gint            z);
-
-  gpointer      (*message)  (GeglProvider  *gegl_provider,
-                             GeglTileMessage message,
+  gpointer      (*command)  (GeglProvider  *gegl_provider,
+                             GeglTileCommand command,
                              gint            x,
                              gint            y,
                              gint            z,
@@ -74,18 +70,39 @@
 
 GType      gegl_provider_get_type (void) G_GNUC_CONST;
 
-GeglTile * gegl_provider_get_tile (GeglProvider    *gegl_provider,
-                                   gint             x,
-                                   gint             y,
-                                   gint             z);
 
-gpointer   gegl_provider_message  (GeglProvider    *gegl_provider,
-                                   GeglTileMessage  message,
+
+gpointer   gegl_provider_command  (GeglProvider    *gegl_provider,
+                                   GeglTileCommand  command,
                                    gint             x,
                                    gint             y,
                                    gint             z,
                                    gpointer         data);
 
+#define gegl_provider_idle(provider) \
+   gegl_provider_command(provider,GEGL_TILE_IDLE,0,0,0,NULL)
+#define gegl_provider_set_tile(provider,x,y,z,tile) \
+   (gboolean)gegl_provider_command(provider,GEGL_TILE_SET,x,y,z,tile)
+#define gegl_provider_get_tile(provider,x,y,z) \
+   (GeglTile*)gegl_provider_command(provider,GEGL_TILE_GET,x,y,z,NULL)
+#define gegl_provider_is_cached(provider,x,y,z) \
+   (gboolean)gegl_provider_command(provider,GEGL_TILE_IS_CACHED,x,y,z,NULL)
+#define gegl_provider_exist(provider,x,y,z) \
+   (gboolean)gegl_provider_command(provider,GEGL_TILE_EXIST,x,y,z,NULL)
+#define gegl_provider_void(provider,x,y,z) \
+   gegl_provider_command(provider,GEGL_TILE_VOID,x,y,z,NULL)
+#define gegl_provider_void_tl(provider,x,y,z) \
+   gegl_provider_command(provider,GEGL_TILE_VOID_TL,x,y,z,NULL)
+#define gegl_provider_void_tr(provider,x,y,z) \
+   gegl_provider_command(provider,GEGL_TILE_VOID_TR,x,y,z,NULL)
+#define gegl_provider_void_bl(provider,x,y,z) \
+   gegl_provider_command(provider,GEGL_TILE_VOID_BL,x,y,z,NULL)
+#define gegl_provider_void_br(provider,x,y,z) \
+   gegl_provider_command(provider,GEGL_TILE_VOID_BR,x,y,z,NULL)
+#define gegl_provider_undo_start_group(provider,x,y,z) \
+   gegl_provider_command(provider,GEGL_TILE_UNDO_START_GROUP,x,y,z,NULL)
+
+ 
 G_END_DECLS
 
 #endif

Modified: trunk/gegl/buffer/gegl-storage.c
==============================================================================
--- trunk/gegl/buffer/gegl-storage.c	(original)
+++ trunk/gegl/buffer/gegl-storage.c	Mon Apr 14 23:06:50 2008
@@ -160,8 +160,7 @@
       return FALSE;
     }
 
-  gegl_provider_message (GEGL_PROVIDER (storage),
-                         GEGL_TILE_IDLE, 0, 0, 0, NULL);
+  gegl_provider_idle (GEGL_PROVIDER (storage));                        
 
   return TRUE;
 }

Modified: trunk/gegl/buffer/gegl-tile-disk.c
==============================================================================
--- trunk/gegl/buffer/gegl-tile-disk.c	(original)
+++ trunk/gegl/buffer/gegl-tile-disk.c	Mon Apr 14 23:06:50 2008
@@ -336,15 +336,17 @@
 };
 
 static gpointer
-message (GeglProvider  *tile_store,
-         GeglTileMessage message,
+command (GeglProvider  *tile_store,
+         GeglTileCommand command,
          gint            x,
          gint            y,
          gint            z,
          gpointer        data)
 {
-  switch (message)
+  switch (command)
     {
+      case GEGL_TILE_GET:
+        return get_tile (tile_store, x, y, z);
       case GEGL_TILE_SET:
         return set_tile (tile_store, data, x, y, z);
 
@@ -358,8 +360,8 @@
         return exist_tile (tile_store, data, x, y, z);
 
       default:
-        g_assert (message < GEGL_TILE_LAST_MESSAGE &&
-                  message >= 0);
+        g_assert (command < GEGL_TILE_LAST_COMMAND &&
+                  command >= 0);
     }
   return FALSE;
 }
@@ -505,8 +507,7 @@
   gobject_class->constructor  = gegl_tile_disk_constructor;
   gobject_class->finalize     = finalize;
 
-  gegl_provider_class->get_tile = get_tile;
-  gegl_provider_class->message  = message;
+  gegl_provider_class->command  = command;
 
 
   g_object_class_install_property (gobject_class, PROP_PATH,

Modified: trunk/gegl/buffer/gegl-tile-gio.c
==============================================================================
--- trunk/gegl/buffer/gegl-tile-gio.c	(original)
+++ trunk/gegl/buffer/gegl-tile-gio.c	Mon Apr 14 23:06:50 2008
@@ -251,15 +251,18 @@
 };
 
 static gpointer
-message (GeglProvider  *tile_store,
-         GeglTileMessage message,
+command (GeglProvider  *tile_store,
+         GeglTileCommand command,
          gint            x,
          gint            y,
          gint            z,
          gpointer        data)
 {
-  switch (message)
+  switch (command)
     {
+      case GEGL_TILE_GET:
+        return get_tile (tile_store, x, y, z);
+
       case GEGL_TILE_SET:
         return set_tile (tile_store, data, x, y, z);
 
@@ -274,8 +277,8 @@
         return (gpointer)exist_tile (tile_store, data, x, y, z);
 
       default:
-        g_assert (message < GEGL_TILE_LAST_MESSAGE &&
-                  message >= 0);
+        g_assert (command < GEGL_TILE_LAST_COMMAND &&
+                  command >= 0);
     }
   return NULL;
 }
@@ -362,8 +365,7 @@
   gobject_class->constructor  = gegl_tile_gio_constructor;
   gobject_class->finalize     = finalize;
 
-  gegl_provider_class->get_tile = get_tile;
-  gegl_provider_class->message  = message;
+  gegl_provider_class->command  = command;
 
 
   g_object_class_install_property (gobject_class, PROP_PATH,

Modified: trunk/gegl/buffer/gegl-tile-mem.c
==============================================================================
--- trunk/gegl/buffer/gegl-tile-mem.c	(original)
+++ trunk/gegl/buffer/gegl-tile-mem.c	Mon Apr 14 23:06:50 2008
@@ -227,15 +227,18 @@
 };
 
 static gpointer
-message (GeglProvider  *tile_store,
-         GeglTileMessage message,
+command (GeglProvider  *tile_store,
+         GeglTileCommand command,
          gint            x,
          gint            y,
          gint            z,
          gpointer        data)
 {
-  switch (message)
+  switch (command)
     {
+      case GEGL_TILE_GET:
+        return get_tile (tile_store, x, y, z);
+
       case GEGL_TILE_SET:
         set_tile (tile_store, data, x, y, z);
         return NULL;
@@ -251,8 +254,8 @@
         return (gpointer)exist_tile (tile_store, data, x, y, z);
 
       default:
-        g_assert (message < GEGL_TILE_LAST_MESSAGE &&
-                  message >= 0);
+        g_assert (command < GEGL_TILE_LAST_COMMAND &&
+                  command >= 0);
     }
   return FALSE;
 }
@@ -362,8 +365,7 @@
   gobject_class->constructor  = gegl_tile_mem_constructor;
   gobject_class->finalize     = finalize;
 
-  gegl_provider_class->get_tile = get_tile;
-  gegl_provider_class->message  = message;
+  gegl_provider_class->command  = command;
 }
 
 static void

Modified: trunk/gegl/buffer/gegl-tile.c
==============================================================================
--- trunk/gegl/buffer/gegl-tile.c	(original)
+++ trunk/gegl/buffer/gegl-tile.c	Mon Apr 14 23:06:50 2008
@@ -31,6 +31,7 @@
 #include "gegl-buffer.h"
 #include "gegl-buffer-private.h"
 #include "gegl-tile.h"
+#include "gegl-provider.h"
 
 
 G_DEFINE_TYPE (GeglTile, gegl_tile, G_TYPE_OBJECT)
@@ -283,39 +284,29 @@
       x /= 2;
       y /= 2;
 
-      gegl_provider_message (GEGL_PROVIDER (tile->storage),
-                               GEGL_TILE_VOID,
-                               x, y, z, NULL);
+      gegl_provider_void (GEGL_PROVIDER (tile->storage), x, y, z);
 #if 0
       /* FIXME: reenable this code */
       if (!ver)
         {
           if (!hor)
             {
-              gegl_provider_message (GEGL_PROVIDER (tile->storage),
-                                       GEGL_TILE_VOID_TL,
-                                       x, y, z, NULL);
+              gegl_provider_void_tl (GEGL_PROVIDER (tile->storage), x,y,z);
             }
           else
             {
-              gegl_provider_message (GEGL_PROVIDER (tile->storage),
-                                       GEGL_TILE_VOID_TR,
-                                       x, y, z, NULL);
+              gegl_provider_void_tr (GEGL_PROVIDER (tile->storage), x,y,z);              
             }
         }
       else
         {
           if (!hor)
             {
-              gegl_provider_message (GEGL_PROVIDER (tile->storage),
-                                       GEGL_TILE_VOID_BL,
-                                       x, y, z, NULL);
+              gegl_provider_void_bl (GEGL_PROVIDER (tile->storage), x,y,z);              
             }
           else
             {
-              gegl_provider_message (GEGL_PROVIDER (tile->storage),
-                                       GEGL_TILE_VOID_BR,
-                                       x, y, z, NULL);
+			  gegl_provider_void_br (GEGL_PROVIDER (tile->storage), x,y,z);
             }
         }
 #endif
@@ -406,13 +397,12 @@
 {
   if (tile->storage == NULL)
     return FALSE;
-  return GPOINTER_TO_INT (gegl_provider_message (GEGL_PROVIDER (tile->storage),
-                          GEGL_TILE_SET, tile->storage_x,
-                          tile->storage_y,
-                          tile->storage_z, tile));
+  return gegl_provider_set_tile (GEGL_PROVIDER (tile->storage),
+                                 tile->storage_x,
+                                 tile->storage_y,
+                                 tile->storage_z, tile);
 }
 
-
 /* compute the tile indice of a coordinate
  * the stride is the width/height of tiles along the axis of coordinate
  */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]