[gimp] plug-ins: Only have one thumb loader for darktable



commit 2359c29895443561f02f926d86d95e9ba578a240
Author: Tobias Ellinghaus <me houz org>
Date:   Tue May 3 15:10:32 2016 +0200

    plug-ins: Only have one thumb loader for darktable

 plug-ins/file-darktable/file-darktable.c |   55 ++++++-----
 plug-ins/file-darktable/file-formats.h   |  154 +++++-------------------------
 2 files changed, 53 insertions(+), 156 deletions(-)
---
diff --git a/plug-ins/file-darktable/file-darktable.c b/plug-ins/file-darktable/file-darktable.c
index cfb7194..187f92e 100644
--- a/plug-ins/file-darktable/file-darktable.c
+++ b/plug-ins/file-darktable/file-darktable.c
@@ -33,6 +33,8 @@
 
 #include "file-formats.h"
 
+#define LOAD_THUMB_PROC "file-raw-load-thumb"
+
 static void     query                (void);
 static void     run                  (const gchar      *name,
                                       gint              nparams,
@@ -130,6 +132,19 @@ query (void)
   if (! have_darktable)
     return;
 
+  gimp_install_procedure (LOAD_THUMB_PROC,
+                          "Load thumbnail from a raw image via darktable",
+                          "This plug-in loads a thumbnail from a raw image by calling darktable-cli.",
+                          "Tobias Ellinghaus",
+                          "Tobias Ellinghaus",
+                          "2016",
+                          NULL,
+                          NULL,
+                          GIMP_PLUGIN,
+                          G_N_ELEMENTS (thumb_args),
+                          G_N_ELEMENTS (thumb_return_vals),
+                          thumb_args, thumb_return_vals);
+
   for (i = 0; i < G_N_ELEMENTS (file_formats); i++)
     {
       const FileFormat *format = &file_formats[i];
@@ -149,30 +164,12 @@ query (void)
 
       gimp_register_file_handler_mime (format->load_proc,
                                        format->mime_type);
-      if (format->magic)
-        gimp_register_magic_load_handler (format->load_proc,
-                                          format->extensions,
-                                          "",
-                                          format->magic);
-      else
-        gimp_register_load_handler (format->load_proc,
-                                    format->extensions,
-                                    "");
-
-      gimp_install_procedure (format->load_thumb_proc,
-                              format->load_thumb_blurb,
-                              format->load_thumb_help,
-                              "Tobias Ellinghaus",
-                              "Tobias Ellinghaus",
-                              "2016",
-                              NULL,
-                              NULL,
-                              GIMP_PLUGIN,
-                              G_N_ELEMENTS (thumb_args),
-                              G_N_ELEMENTS (thumb_return_vals),
-                              thumb_args, thumb_return_vals);
+      gimp_register_magic_load_handler (format->load_proc,
+                                        format->extensions,
+                                        "",
+                                        format->magic);
 
-      gimp_register_thumbnail_loader (format->load_proc, format->load_thumb_proc);
+      gimp_register_thumbnail_loader (format->load_proc, LOAD_THUMB_PROC);
     }
 }
 
@@ -222,8 +219,7 @@ run (const gchar      *name,
 
           break;
         }
-      else if (format->load_thumb_proc
-               && ! strcmp (name, format->load_thumb_proc))
+      else if (! strcmp (name, LOAD_THUMB_PROC))
         {
           gint width  = 0;
           gint height = 0;
@@ -285,6 +281,8 @@ load_image (const gchar  *filename,
   gchar  *filename_out    = gimp_temp_name ("exr");
   gchar  *export_filename = g_strdup_printf ("lua/export_on_exit/export_filename=%s", filename_out);
 
+  gchar *darktable_stdout = NULL;
+
   /* linear sRGB for now as GIMP uses that internally in many places anyway */
   gchar *argv[] =
     {
@@ -307,12 +305,12 @@ load_image (const gchar  *filename,
   if (g_spawn_sync (NULL,
                     argv,
                     NULL,
-                    G_SPAWN_STDOUT_TO_DEV_NULL |
+//                     G_SPAWN_STDOUT_TO_DEV_NULL |
                     G_SPAWN_STDERR_TO_DEV_NULL |
                     G_SPAWN_SEARCH_PATH,
                     NULL,
                     NULL,
-                    NULL,
+                    &darktable_stdout,
                     NULL,
                     NULL,
                     error))
@@ -322,6 +320,9 @@ load_image (const gchar  *filename,
         gimp_image_set_filename (image_ID, filename);
     }
 
+// if (darktable_stdout) printf ("%s\n", darktable_stdout);
+  g_free(darktable_stdout);
+
   g_unlink (filename_out);
   g_free (lua_cmd);
   g_free (filename_out);
diff --git a/plug-ins/file-darktable/file-formats.h b/plug-ins/file-darktable/file-formats.h
index 1b7d751..79ac2a0 100644
--- a/plug-ins/file-darktable/file-formats.h
+++ b/plug-ins/file-darktable/file-formats.h
@@ -32,10 +32,6 @@ struct _FileFormat
   const gchar *load_proc;
   const gchar *load_blurb;
   const gchar *load_help;
-
-  const gchar *load_thumb_proc;
-  const gchar *load_thumb_blurb;
-  const gchar *load_thumb_help;
 };
 
 /* some magic numbers taken from http://www.garykessler.net/library/file_sigs.html
@@ -55,11 +51,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-canon-load",
     "Load files in the Canon raw formats via darktable",
-    "This plug-in loads files in Canon's raw formats by calling darktable.",
-
-    "file-raw-canon-load-thumb",
-    "Load thumbnail from a Canon raw image via darktable",
-    "This plug-in loads a thumbnail from Canon's raw images by calling darktable-cli."
+    "This plug-in loads files in Canon's raw formats by calling darktable."
   },
 
   {
@@ -70,11 +62,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-nikon-load",
     "Load files in the Nikon raw formats via darktable",
-    "This plug-in loads files in Nikon's raw formats by calling darktable.",
-
-    "file-raw-nef-load-thumb",
-    "Load thumbnail from a Nikon raw image via darktable",
-    "This plug-in loads a thumbnail from Nikon's raw images by calling darktable-cli."
+    "This plug-in loads files in Nikon's raw formats by calling darktable."
   },
 
   {
@@ -85,11 +73,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-hasselblad-load",
     "Load files in the Hasselblad raw formats via darktable",
-    "This plug-in loads files in Hasselblad's raw formats by calling darktable.",
-
-    "file-hasselblad-load-thumb",
-    "Load thumbnail from a Hasselblad raw image via darktable",
-    "This plug-in loads a thumbnail from Hasselblad raw images by calling darktable-cli."
+    "This plug-in loads files in Hasselblad's raw formats by calling darktable."
   },
 
   {
@@ -100,11 +84,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-sony-load",
     "Load files in the Sony raw formats via darktable",
-    "This plug-in loads files in Sony's raw formats by calling darktable.",
-
-    "file-raw-sony-load-thumb",
-    "Load thumbnail from a Sony raw image via darktable",
-    "This plug-in loads a thumbnail from Sony raw images by calling darktable-cli."
+    "This plug-in loads files in Sony's raw formats by calling darktable."
   },
 
   {
@@ -115,11 +95,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-bay-load",
     "Load files in the BAY raw format via darktable",
-    "This plug-in loads files in Casio's raw BAY format by calling darktable.",
-
-    "file-raw-bay-load-thumb",
-    "Load thumbnail from a BAY raw image via darktable",
-    "This plug-in loads a thumbnail from Casio's raw BAY images by calling darktable-cli."
+    "This plug-in loads files in Casio's raw BAY format by calling darktable."
   },
 
   {
@@ -130,11 +106,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-cine-load",
     "Load files in the CINE raw format via darktable",
-    "This plug-in loads files in Phantom Software's raw CINE format by calling darktable.",
-
-    "file-raw-cine-load-thumb",
-    "Load thumbnail from a CINE raw image via darktable",
-    "This plug-in loads a thumbnail from Phantom Software's raw CINE images by calling darktable-cli."
+    "This plug-in loads files in Phantom Software's raw CINE format by calling darktable."
   },
 
   {
@@ -145,11 +117,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-sinar-load",
     "Load files in the Sinar raw formats via darktable",
-    "This plug-in loads files in Sinar's raw formats by calling darktable.",
-
-    "file-raw-sinar-load-thumb",
-    "Load thumbnail from a Sinar raw image via darktable",
-    "This plug-in loads a thumbnail from Sinar raw images by calling darktable-cli."
+    "This plug-in loads files in Sinar's raw formats by calling darktable."
   },
 
   {
@@ -161,11 +129,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-kodak-load",
     "Load files in the Kodak raw formats via darktable",
-    "This plug-in loads files in Kodak's raw formats by calling darktable.",
-
-    "file-raw-kodak-load-thumb",
-    "Load thumbnail from a Kodak raw image via darktable",
-    "This plug-in loads a thumbnail from Kodak raw images by calling darktable-cli."
+    "This plug-in loads files in Kodak's raw formats by calling darktable."
   },
 
   {
@@ -176,11 +140,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-dng-load",
     "Load files in the DNG raw format via darktable",
-    "This plug-in loads files in the Adobe Digital Negative DNG format by calling darktable.",
-
-    "file-raw-dng-load-thumb",
-    "Load thumbnail from a DNG raw image via darktable",
-    "This plug-in loads a thumbnail from Adobe's Digital Negative DNG images by calling darktable-cli."
+    "This plug-in loads files in the Adobe Digital Negative DNG format by calling darktable."
   },
 
   {
@@ -191,11 +151,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-erf-load",
     "Load files in the ERF raw format via darktable",
-    "This plug-in loads files in Epson's raw ERF format by calling darktable.",
-
-    "file-raw-erf-load-thumb",
-    "Load thumbnail from an ERF raw image via darktable",
-    "This plug-in loads a thumbnail from Epson's raw ERF images by calling darktable-cli."
+    "This plug-in loads files in Epson's raw ERF format by calling darktable."
   },
 
   {
@@ -206,11 +162,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-phaseone-load",
     "Load files in the Phase One raw formats via darktable",
-    "This plug-in loads files in Phase One's raw formats by calling darktable.",
-
-    "file-raw-phaseone-load-thumb",
-    "Load thumbnail from a Phase One raw image via darktable",
-    "This plug-in loads a thumbnail from Phase One's raw images by calling darktable-cli."
+    "This plug-in loads files in Phase One's raw formats by calling darktable."
   },
 
   {
@@ -221,11 +173,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-minolta-load",
     "Load files in the Minolta raw formats via darktable",
-    "This plug-in loads files in Minolta's raw formats by calling darktable.",
-
-    "file-raw-minolta-load-thumb",
-    "Load thumbnail from a Minolta raw image via darktable",
-    "This plug-in loads a thumbnail from Minolta raw images by calling darktable-cli."
+    "This plug-in loads files in Minolta's raw formats by calling darktable."
   },
 
   {
@@ -235,11 +183,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-mef-load",
     "Load files in the MEF raw format via darktable",
-    "This plug-in loads files in Mamiya's raw MEF format by calling darktable.",
-
-    "file-raw-mef-load-thumb",
-    "Load thumbnail from a MEF raw image via darktable",
-    "This plug-in loads a thumbnail from Mamiya's raw MEF images by calling darktable-cli."
+    "This plug-in loads files in Mamiya's raw MEF format by calling darktable."
   },
 
   {
@@ -250,11 +194,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-mos-load",
     "Load files in the MOS raw format via darktable",
-    "This plug-in loads files in Leaf's raw MOS format by calling darktable.",
-
-    "file-raw-mos-load-thumb",
-    "Load thumbnail from a MOS raw image via darktable",
-    "This plug-in loads a thumbnail from Leaf's raw MOS images by calling darktable-cli."
+    "This plug-in loads files in Leaf's raw MOS format by calling darktable."
   },
 
   {
@@ -265,11 +205,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-orf-load",
     "Load files in the ORF raw format via darktable",
-    "This plug-in loads files in Olympus' raw ORF format by calling darktable.",
-
-    "file-raw-orf-load-thumb",
-    "Load thumbnail from an ORF raw image via darktable",
-    "This plug-in loads a thumbnail from Olympus' raw ORF images by calling darktable-cli."
+    "This plug-in loads files in Olympus' raw ORF format by calling darktable."
   },
 
   {
@@ -280,11 +216,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-pef-load",
     "Load files in the PEF raw format via darktable",
-    "This plug-in loads files in Pentax' raw PEF format by calling darktable.",
-
-    "file-raw-pef-load-thumb",
-    "Load thumbnail from a PEF raw image via darktable",
-    "This plug-in loads a thumbnail from Pentax' raw PEF images by calling darktable-cli."
+    "This plug-in loads files in Pentax' raw PEF format by calling darktable."
   },
 
   {
@@ -295,11 +227,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-pxn-load",
     "Load files in the PXN raw format via darktable",
-    "This plug-in loads files in Logitech's raw PXN format by calling darktable.",
-
-    "file-raw-pxn-load-thumb",
-    "Load thumbnail from a PXN raw image via darktable",
-    "This plug-in loads a thumbnail from Logitech's raw PXN images by calling darktable-cli."
+    "This plug-in loads files in Logitech's raw PXN format by calling darktable."
   },
 
   {
@@ -310,11 +238,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-qtk-load",
     "Load files in the QTK raw format via darktable",
-    "This plug-in loads files in Apple's QuickTake QTK raw format by calling darktable.",
-
-    "file-raw-qtk-load-thumb",
-    "Load thumbnail from a QTK raw image via darktable",
-    "This plug-in loads a thumbnail from Apple's QuickTake QTK raw images by calling darktable-cli."
+    "This plug-in loads files in Apple's QuickTake QTK raw format by calling darktable."
   },
 
   {
@@ -325,11 +249,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-raf-load",
     "Load files in the RAF raw format via darktable",
-    "This plug-in loads files in Fujifilm's raw RAF format by calling darktable.",
-
-    "file-raw-raf-load-thumb",
-    "Load thumbnail from a RAF raw image via darktable",
-    "This plug-in loads a thumbnail from Fujifilm's raw RAF images by calling darktable-cli."
+    "This plug-in loads files in Fujifilm's raw RAF format by calling darktable."
   },
 
   {
@@ -340,11 +260,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-panasonic-load",
     "Load files in the Panasonic raw formats via darktable",
-    "This plug-in loads files in Panasonic's raw formats by calling darktable.",
-
-    "file-raw-panasonic-load-thumb",
-    "Load thumbnail from a Panasonic raw image via darktable",
-    "This plug-in loads a thumbnail from Panasonic's raw images by calling darktable-cli."
+    "This plug-in loads files in Panasonic's raw formats by calling darktable."
   },
 
   {
@@ -355,11 +271,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-rdc-load",
     "Load files in the RDC raw format via darktable",
-    "This plug-in loads files in Digital Foto Maker's raw RDC format by calling darktable.",
-
-    "file-raw-rdc-load-thumb",
-    "Load thumbnail from a RDC raw image via darktable",
-    "This plug-in loads a thumbnail from Digital Foto Maker's raw RDC images by calling darktable-cli."
+    "This plug-in loads files in Digital Foto Maker's raw RDC format by calling darktable."
   },
 
   {
@@ -370,11 +282,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-rwl-load",
     "Load files in the RWL raw format via darktable",
-    "This plug-in loads files in Leica's raw RWL format by calling darktable.",
-
-    "file-raw-rwl-load-thumb",
-    "Load thumbnail from a RWL raw image via darktable",
-    "This plug-in loads a thumbnail from Leica's raw RWL images by calling darktable-cli."
+    "This plug-in loads files in Leica's raw RWL format by calling darktable."
   },
 
   {
@@ -385,11 +293,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-srw-load",
     "Load files in the SRW raw format via darktable",
-    "This plug-in loads files in Samsung's raw SRW format by calling darktable.",
-
-    "file-raw-srw-load-thumb",
-    "Load thumbnail from a SRW raw image via darktable",
-    "This plug-in loads a thumbnail from Samsung's raw SRW images by calling darktable-cli."
+    "This plug-in loads files in Samsung's raw SRW format by calling darktable."
   },
 
   {
@@ -400,11 +304,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-x3f-load",
     "Load files in the X3F raw format via darktable",
-    "This plug-in loads files in Sigma's raw X3F format by calling darktable.",
-
-    "file-raw-x3f-load-thumb",
-    "Load thumbnail from a X3F raw image via darktable",
-    "This plug-in loads a thumbnail from Sigma's raw X3F images by calling darktable-cli."
+    "This plug-in loads files in Sigma's raw X3F format by calling darktable."
   },
 
   {
@@ -415,11 +315,7 @@ static const FileFormat file_formats[] =
 
     "file-raw-ari-load",
     "Load files in the ARI raw format via darktable",
-    "This plug-in loads files in Arriflex' raw ARI format by calling darktable.",
-
-    "file-raw-ari-load-thumb",
-    "Load thumbnail from an ARI raw image via darktable",
-    "This plug-in loads a thumbnail from Arriflex' raw ARI images by calling darktable-cli."
+    "This plug-in loads files in Arriflex' raw ARI format by calling darktable."
   }
 
 };


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