diff --git a/plug-ins/file-darktable/file-darktable.c b/plug-ins/file-darktable/file-darktable.c index cfb7194d6d..187f92e13a 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_register_magic_load_handler (format->load_proc, + format->extensions, + "", + format->magic); - 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_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 1b7d751b61..79ac2a0645 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." } };