Author: abrander
Date: 2009-06-01 19:00:57 +0200 (Mon, 01 Jun 2009)
New Revision: 2495
Modified:
trunk/librawstudio/rs-filter.c
trunk/librawstudio/rs-filter.h
trunk/plugins/basic-render/basic-render.c
trunk/plugins/cache/cache.c
trunk/plugins/crop/crop.c
trunk/plugins/demosaic/demosaic.c
trunk/plugins/denoise/denoise.c
trunk/plugins/exposure-mask/exposure-mask.c
trunk/plugins/input-file/input-file.c
trunk/plugins/lensfun/lensfun.c
trunk/plugins/output-jpegfile/output-jpegfile.c
trunk/plugins/output-pngfile/output-pngfile.c
trunk/plugins/output-tifffile/output-tifffile.c
trunk/plugins/resample/resample.c
trunk/plugins/rotate/rotate.c
trunk/src/rs-batch.c
trunk/src/rs-preview-widget.c
Log:
Added RS_FILTER_PARAM argument to rs_filter_get_image() (and all filters).
Modified: trunk/librawstudio/rs-filter.c
===================================================================
--- trunk/librawstudio/rs-filter.c 2009-06-01 14:38:38 UTC (rev 2494)
+++ trunk/librawstudio/rs-filter.c 2009-06-01 17:00:57 UTC (rev 2495)
@@ -142,10 +142,11 @@
/**
* Get the output image from a RSFilter
* @param filter A RSFilter
+ * @param param A RS_FILTER_PARAM defining parameters for a image request
* @return A RS_IMAGE16, this must be unref'ed
*/
RS_IMAGE16 *
-rs_filter_get_image(RSFilter *filter)
+rs_filter_get_image(RSFilter *filter, RS_FILTER_PARAM *param)
{
filter_debug("rs_filter_get_image(%s [%p])", RS_FILTER_NAME(filter),
filter);
@@ -163,9 +164,9 @@
count++;
if (RS_FILTER_GET_CLASS(filter)->get_image)
- image = RS_FILTER_GET_CLASS(filter)->get_image(filter);
+ image = RS_FILTER_GET_CLASS(filter)->get_image(filter, param);
else
- image = rs_filter_get_image(filter->previous);
+ image = rs_filter_get_image(filter->previous, param);
elapsed = g_timer_elapsed(gt, NULL) - last_elapsed;
@@ -194,10 +195,11 @@
/**
* Get 8 bit output image from a RSFilter
* @param filter A RSFilter
+ * @param param A RS_FILTER_PARAM defining parameters for a image request
* @return A RS_IMAGE16, this must be unref'ed
*/
GdkPixbuf *
-rs_filter_get_image8(RSFilter *filter)
+rs_filter_get_image8(RSFilter *filter, RS_FILTER_PARAM *param)
{
filter_debug("rs_filter_get_image8(%s [%p])", RS_FILTER_NAME(filter),
filter);
@@ -215,9 +217,9 @@
count++;
if (RS_FILTER_GET_CLASS(filter)->get_image8)
- image = RS_FILTER_GET_CLASS(filter)->get_image8(filter);
+ image = RS_FILTER_GET_CLASS(filter)->get_image8(filter, param);
else if (filter->previous)
- image = rs_filter_get_image8(filter->previous);
+ image = rs_filter_get_image8(filter->previous, param);
elapsed = g_timer_elapsed(gt, NULL) - last_elapsed;
Modified: trunk/librawstudio/rs-filter.h
===================================================================
--- trunk/librawstudio/rs-filter.h 2009-06-01 14:38:38 UTC (rev 2494)
+++ trunk/librawstudio/rs-filter.h 2009-06-01 17:00:57 UTC (rev 2495)
@@ -76,6 +76,9 @@
RS_FILTER_CHANGED_ICC_PROFILE = 1<<2
} RSFilterChangedMask;
+typedef struct {
+} RS_FILTER_PARAM;
+
typedef struct _RSFilter RSFilter;
typedef struct _RSFilterClass RSFilterClass;
@@ -88,8 +91,8 @@
struct _RSFilterClass {
GObjectClass parent_class;
const gchar *name;
- RS_IMAGE16 *(*get_image)(RSFilter *filter);
- GdkPixbuf *(*get_image8)(RSFilter *filter);
+ RS_IMAGE16 *(*get_image)(RSFilter *filter, RS_FILTER_PARAM *param);
+ GdkPixbuf *(*get_image8)(RSFilter *filter, RS_FILTER_PARAM *param);
RSIccProfile *(*get_icc_profile)(RSFilter *filter);
gint (*get_width)(RSFilter *filter);
gint (*get_height)(RSFilter *filter);
@@ -124,17 +127,19 @@
/**
* Get the output image from a RSFilter
* @param filter A RSFilter
+ * @param param A RS_FILTER_PARAM defining parameters for a image request
* @return A RS_IMAGE16, this must be unref'ed
*/
-extern RS_IMAGE16 *rs_filter_get_image(RSFilter *filter);
+extern RS_IMAGE16 *rs_filter_get_image(RSFilter *filter, RS_FILTER_PARAM
*param);
/**
* Get 8 bit output image from a RSFilter
* @param filter A RSFilter
+ * @param param A RS_FILTER_PARAM defining parameters for a image request
* @return A RS_IMAGE16, this must be unref'ed
*/
GdkPixbuf *
-rs_filter_get_image8(RSFilter *filter);
+rs_filter_get_image8(RSFilter *filter, RS_FILTER_PARAM *param);
/**
* Get the ICC profile from a filter
Modified: trunk/plugins/basic-render/basic-render.c
===================================================================
--- trunk/plugins/basic-render/basic-render.c 2009-06-01 14:38:38 UTC (rev
2494)
+++ trunk/plugins/basic-render/basic-render.c 2009-06-01 17:00:57 UTC (rev
2495)
@@ -120,8 +120,8 @@
static gpointer thread_func_sse8(gpointer _thread_info);
static gpointer thread_func_sse8_cms(gpointer _thread_info);
#endif /* __i386__ || __x86_64__ */
-static RS_IMAGE16 *get_image(RSFilter *filter);
-static GdkPixbuf *get_image8(RSFilter *filter);
+static RS_IMAGE16 *get_image(RSFilter *filter, RS_FILTER_PARAM *param);
+static GdkPixbuf *get_image8(RSFilter *filter, RS_FILTER_PARAM *param);
static RSIccProfile *get_icc_profile(RSFilter *filter);
static RSFilterClass *rs_basic_render_parent_class = NULL;
@@ -923,7 +923,7 @@
#endif /* __i386__ || __x86_64__ */
static RS_IMAGE16 *
-get_image(RSFilter *filter)
+get_image(RSFilter *filter, RS_FILTER_PARAM *param)
{
RSBasicRenderClass *klass = RS_BASIC_RENDER_GET_CLASS(filter);
guint i, y_offset, y_per_thread, threaded_h;
@@ -932,7 +932,7 @@
RS_IMAGE16 *input;
RS_IMAGE16 *output = NULL;
- input = rs_filter_get_image(filter->previous);
+ input = rs_filter_get_image(filter->previous, param);
if (!RS_IS_IMAGE16(input))
return input;
@@ -976,7 +976,7 @@
}
static GdkPixbuf *
-get_image8(RSFilter *filter)
+get_image8(RSFilter *filter, RS_FILTER_PARAM *param)
{
RSBasicRenderClass *klass = RS_BASIC_RENDER_GET_CLASS(filter);
guint i, y_offset, y_per_thread, threaded_h;
@@ -985,7 +985,7 @@
RS_IMAGE16 *input;
GdkPixbuf *output = NULL;
- input = rs_filter_get_image(filter->previous);
+ input = rs_filter_get_image(filter->previous, param);
if (!RS_IS_IMAGE16(input))
return NULL;
Modified: trunk/plugins/cache/cache.c
===================================================================
--- trunk/plugins/cache/cache.c 2009-06-01 14:38:38 UTC (rev 2494)
+++ trunk/plugins/cache/cache.c 2009-06-01 17:00:57 UTC (rev 2495)
@@ -52,8 +52,8 @@
static void get_property (GObject *object, guint property_id, GValue *value,
GParamSpec *pspec);
static void set_property (GObject *object, guint property_id, const GValue
*value, GParamSpec *pspec);
-static RS_IMAGE16 *get_image(RSFilter *filter);
-static GdkPixbuf *get_image8(RSFilter *filter);
+static RS_IMAGE16 *get_image(RSFilter *filter, RS_FILTER_PARAM *param);
+static GdkPixbuf *get_image8(RSFilter *filter, RS_FILTER_PARAM *param);
static void previous_changed(RSFilter *filter, RSFilter *parent,
RSFilterChangedMask mask);
G_MODULE_EXPORT void
@@ -124,23 +124,23 @@
}
static RS_IMAGE16 *
-get_image(RSFilter *filter)
+get_image(RSFilter *filter, RS_FILTER_PARAM *param)
{
RSCache *cache = RS_CACHE(filter);
if (!cache->image)
- cache->image = rs_filter_get_image(filter->previous);
+ cache->image = rs_filter_get_image(filter->previous, param);
return (cache->image) ? g_object_ref(cache->image) : NULL;
}
static GdkPixbuf *
-get_image8(RSFilter *filter)
+get_image8(RSFilter *filter, RS_FILTER_PARAM *param)
{
RSCache *cache = RS_CACHE(filter);
if (!cache->image8)
- cache->image8 = rs_filter_get_image8(filter->previous);
+ cache->image8 = rs_filter_get_image8(filter->previous, param);
return (cache->image8) ? g_object_ref(cache->image8) : NULL;
}
Modified: trunk/plugins/crop/crop.c
===================================================================
--- trunk/plugins/crop/crop.c 2009-06-01 14:38:38 UTC (rev 2494)
+++ trunk/plugins/crop/crop.c 2009-06-01 17:00:57 UTC (rev 2495)
@@ -53,7 +53,7 @@
static void get_property (GObject *object, guint property_id, GValue *value,
GParamSpec *pspec);
static void set_property (GObject *object, guint property_id, const GValue
*value, GParamSpec *pspec);
-static RS_IMAGE16 *get_image(RSFilter *filter);
+static RS_IMAGE16 *get_image(RSFilter *filter, RS_FILTER_PARAM *param);
static gint get_width(RSFilter *filter);
static gint get_height(RSFilter *filter);
@@ -177,7 +177,7 @@
}
static RS_IMAGE16 *
-get_image(RSFilter *filter)
+get_image(RSFilter *filter, RS_FILTER_PARAM *param)
{
g_assert(RS_IS_FILTER(filter));
RSCrop *crop = RS_CROP(filter);
@@ -194,7 +194,7 @@
gint width = x2 - x1 + 1;
gint height = y2 - y1 + 1;
- input = rs_filter_get_image(filter->previous);
+ input = rs_filter_get_image(filter->previous, param);
if (!RS_IS_IMAGE16(input))
return input;
Modified: trunk/plugins/demosaic/demosaic.c
===================================================================
--- trunk/plugins/demosaic/demosaic.c 2009-06-01 14:38:38 UTC (rev 2494)
+++ trunk/plugins/demosaic/demosaic.c 2009-06-01 17:00:57 UTC (rev 2495)
@@ -70,7 +70,7 @@
static void get_property (GObject *object, guint property_id, GValue *value,
GParamSpec *pspec);
static void set_property (GObject *object, guint property_id, const GValue
*value, GParamSpec *pspec);
-static RS_IMAGE16 *get_image(RSFilter *filter);
+static RS_IMAGE16 *get_image(RSFilter *filter, RS_FILTER_PARAM *param);
static inline int fc_INDI (const unsigned int filters, const int row, const
int col);
static void border_interpolate_INDI (RS_IMAGE16 *image, const unsigned int
filters, int colors, int border);
static void lin_interpolate_INDI(RS_IMAGE16 *image, const unsigned int
filters, const int colors);
@@ -149,7 +149,7 @@
static RS_IMAGE16 *
-get_image(RSFilter *filter)
+get_image(RSFilter *filter, RS_FILTER_PARAM *param)
{
RSDemosaic *demosaic = RS_DEMOSAIC(filter);
RS_IMAGE16 *input;
@@ -159,7 +159,7 @@
gushort *src;
gushort *dest;
- input = rs_filter_get_image(filter->previous);
+ input = rs_filter_get_image(filter->previous, param);
if (!RS_IS_IMAGE16(input))
return input;
Modified: trunk/plugins/denoise/denoise.c
===================================================================
--- trunk/plugins/denoise/denoise.c 2009-06-01 14:38:38 UTC (rev 2494)
+++ trunk/plugins/denoise/denoise.c 2009-06-01 17:00:57 UTC (rev 2495)
@@ -55,7 +55,7 @@
static void get_property (GObject *object, guint property_id, GValue *value,
GParamSpec *pspec);
static void set_property (GObject *object, guint property_id, const GValue
*value, GParamSpec *pspec);
-static RS_IMAGE16 *get_image(RSFilter *filter);
+static RS_IMAGE16 *get_image(RSFilter *filter, RS_FILTER_PARAM *param);
static RSFilterClass *rs_denoise_parent_class = NULL;
@@ -172,12 +172,12 @@
}
static RS_IMAGE16 *
-get_image(RSFilter *filter)
+get_image(RSFilter *filter, RS_FILTER_PARAM *param)
{
RSDenoise *denoise = RS_DENOISE(filter);
RS_IMAGE16 *input;
RS_IMAGE16 *output;
- input = rs_filter_get_image(filter->previous);
+ input = rs_filter_get_image(filter->previous, param);
// if (!RS_IS_FILTER(input))
// return input;
Modified: trunk/plugins/exposure-mask/exposure-mask.c
===================================================================
--- trunk/plugins/exposure-mask/exposure-mask.c 2009-06-01 14:38:38 UTC (rev
2494)
+++ trunk/plugins/exposure-mask/exposure-mask.c 2009-06-01 17:00:57 UTC (rev
2495)
@@ -48,7 +48,7 @@
static void get_property (GObject *object, guint property_id, GValue *value,
GParamSpec *pspec);
static void set_property (GObject *object, guint property_id, const GValue
*value, GParamSpec *pspec);
-static GdkPixbuf *get_image8(RSFilter *filter);
+static GdkPixbuf *get_image8(RSFilter *filter, RS_FILTER_PARAM *param);
static RSFilterClass *rs_exposure_mask_parent_class = NULL;
@@ -116,7 +116,7 @@
}
static GdkPixbuf *
-get_image8(RSFilter *filter)
+get_image8(RSFilter *filter, RS_FILTER_PARAM *param)
{
RSExposureMask *exposure_mask = RS_EXPOSURE_MASK(filter);
GdkPixbuf *input;
@@ -127,7 +127,7 @@
guchar *out_pixel;
gint channels;
- input = rs_filter_get_image8(filter->previous);
+ input = rs_filter_get_image8(filter->previous, param);
if (exposure_mask->exposure_mask)
{
Modified: trunk/plugins/input-file/input-file.c
===================================================================
--- trunk/plugins/input-file/input-file.c 2009-06-01 14:38:38 UTC (rev
2494)
+++ trunk/plugins/input-file/input-file.c 2009-06-01 17:00:57 UTC (rev
2495)
@@ -47,7 +47,7 @@
static void get_property (GObject *object, guint property_id, GValue *value,
GParamSpec *pspec);
static void set_property (GObject *object, guint property_id, const GValue
*value, GParamSpec *pspec);
-static RS_IMAGE16 *get_image(RSFilter *filter);
+static RS_IMAGE16 *get_image(RSFilter *filter, RS_FILTER_PARAM *param);
static gint get_width(RSFilter *filter);
static gint get_height(RSFilter *filter);
@@ -125,7 +125,7 @@
}
static RS_IMAGE16 *
-get_image(RSFilter *filter)
+get_image(RSFilter *filter, RS_FILTER_PARAM *param)
{
RSInputFile *input = RS_INPUT_FILE(filter);
Modified: trunk/plugins/lensfun/lensfun.c
===================================================================
--- trunk/plugins/lensfun/lensfun.c 2009-06-01 14:38:38 UTC (rev 2494)
+++ trunk/plugins/lensfun/lensfun.c 2009-06-01 17:00:57 UTC (rev 2495)
@@ -61,7 +61,7 @@
static void get_property (GObject *object, guint property_id, GValue *value,
GParamSpec *pspec);
static void set_property (GObject *object, guint property_id, const GValue
*value, GParamSpec *pspec);
-static RS_IMAGE16 *get_image(RSFilter *filter);
+static RS_IMAGE16 *get_image(RSFilter *filter, RS_FILTER_PARAM *param);
static void inline rs_image16_nearest_full(RS_IMAGE16 *in, gushort *out,
gfloat *pos);
static void inline rs_image16_bilinear_full(RS_IMAGE16 *in, gushort *out,
gfloat *pos);
@@ -233,7 +233,7 @@
return NULL;
}
static RS_IMAGE16 *
-get_image(RSFilter *filter)
+get_image(RSFilter *filter, RS_FILTER_PARAM *param)
{
RSLensfun *lensfun = RS_LENSFUN(filter);
RS_IMAGE16 *input;
@@ -241,7 +241,7 @@
const gchar *make = NULL;
const gchar *model = NULL;
- input = rs_filter_get_image(filter->previous);
+ input = rs_filter_get_image(filter->previous, param);
gint i, j;
lfDatabase *ldb = lf_db_new ();
Modified: trunk/plugins/output-jpegfile/output-jpegfile.c
===================================================================
--- trunk/plugins/output-jpegfile/output-jpegfile.c 2009-06-01 14:38:38 UTC
(rev 2494)
+++ trunk/plugins/output-jpegfile/output-jpegfile.c 2009-06-01 17:00:57 UTC
(rev 2495)
@@ -190,7 +190,7 @@
FILE * outfile;
JSAMPROW row_pointer[1];
RSIccProfile *profile = rs_filter_get_icc_profile(filter);
- GdkPixbuf *pixbuf = rs_filter_get_image8(filter);
+ GdkPixbuf *pixbuf = rs_filter_get_image8(filter, NULL);
cinfo.err = jpeg_std_error(&jerr);
jpeg_create_compress(&cinfo);
Modified: trunk/plugins/output-pngfile/output-pngfile.c
===================================================================
--- trunk/plugins/output-pngfile/output-pngfile.c 2009-06-01 14:38:38 UTC
(rev 2494)
+++ trunk/plugins/output-pngfile/output-pngfile.c 2009-06-01 17:00:57 UTC
(rev 2495)
@@ -119,7 +119,7 @@
execute(RSOutput *output, RSFilter *filter)
{
RSPngfile *pngfile = RS_PNGFILE(output);
- GdkPixbuf *pixbuf = rs_filter_get_image8(filter);
+ GdkPixbuf *pixbuf = rs_filter_get_image8(filter, NULL);
return gdk_pixbuf_save(pixbuf, pngfile->filename, "png", NULL, NULL);
}
Modified: trunk/plugins/output-tifffile/output-tifffile.c
===================================================================
--- trunk/plugins/output-tifffile/output-tifffile.c 2009-06-01 14:38:38 UTC
(rev 2494)
+++ trunk/plugins/output-tifffile/output-tifffile.c 2009-06-01 17:00:57 UTC
(rev 2495)
@@ -191,7 +191,7 @@
{
gint width = rs_filter_get_width(filter);
gint col;
- RS_IMAGE16 *image = rs_filter_get_image(filter);
+ RS_IMAGE16 *image = rs_filter_get_image(filter, NULL);
gushort *line = g_new(gushort, width*3);
g_assert(image->channels == 3);
@@ -216,7 +216,7 @@
}
else
{
- GdkPixbuf *pixbuf = rs_filter_get_image8(filter);
+ GdkPixbuf *pixbuf = rs_filter_get_image8(filter, NULL);
TIFFSetField(tiff, TIFFTAG_BITSPERSAMPLE, 8);
for(row=0;row<gdk_pixbuf_get_height(pixbuf);row++)
Modified: trunk/plugins/resample/resample.c
===================================================================
--- trunk/plugins/resample/resample.c 2009-06-01 14:38:38 UTC (rev 2494)
+++ trunk/plugins/resample/resample.c 2009-06-01 17:00:57 UTC (rev 2495)
@@ -64,7 +64,7 @@
static void get_property (GObject *object, guint property_id, GValue *value,
GParamSpec *pspec);
static void set_property (GObject *object, guint property_id, const GValue
*value, GParamSpec *pspec);
-static RS_IMAGE16 *get_image(RSFilter *filter);
+static RS_IMAGE16 *get_image(RSFilter *filter, RS_FILTER_PARAM *param);
static gint get_width(RSFilter *filter);
static gint get_height(RSFilter *filter);
static void ResizeH(ResampleInfo *info);
@@ -183,7 +183,7 @@
}
static RS_IMAGE16 *
-get_image(RSFilter *filter)
+get_image(RSFilter *filter, RS_FILTER_PARAM *param)
{
RSResample *resample = RS_RESAMPLE(filter);
RS_IMAGE16 *afterHorizontal;
@@ -192,7 +192,7 @@
gint input_width = rs_filter_get_width(filter->previous);
gint input_height = rs_filter_get_height(filter->previous);
- input = rs_filter_get_image(filter->previous);
+ input = rs_filter_get_image(filter->previous, param);
if (!RS_IS_IMAGE16(input))
return input;
Modified: trunk/plugins/rotate/rotate.c
===================================================================
--- trunk/plugins/rotate/rotate.c 2009-06-01 14:38:38 UTC (rev 2494)
+++ trunk/plugins/rotate/rotate.c 2009-06-01 17:00:57 UTC (rev 2495)
@@ -60,7 +60,7 @@
static void get_property (GObject *object, guint property_id, GValue *value,
GParamSpec *pspec);
static void set_property (GObject *object, guint property_id, const GValue
*value, GParamSpec *pspec);
static void previous_changed(RSFilter *filter, RSFilter *parent,
RSFilterChangedMask mask);
-static RS_IMAGE16 *get_image(RSFilter *filter);
+static RS_IMAGE16 *get_image(RSFilter *filter, RS_FILTER_PARAM *param);
static gint get_width(RSFilter *filter);
static gint get_height(RSFilter *filter);
static void inline bilinear(RS_IMAGE16 *in, gushort *out, gint x, gint y);
@@ -175,7 +175,7 @@
}
static RS_IMAGE16 *
-get_image(RSFilter *filter)
+get_image(RSFilter *filter, RS_FILTER_PARAM *param)
{
RSRotate *rotate = RS_ROTATE(filter);
RS_IMAGE16 *input;
@@ -184,7 +184,7 @@
gint row, col;
gint destoffset;
- input = rs_filter_get_image(filter->previous);
+ input = rs_filter_get_image(filter->previous, param);
if (!RS_IS_IMAGE16(input))
return input;
Modified: trunk/src/rs-batch.c
===================================================================
--- trunk/src/rs-batch.c 2009-06-01 14:38:38 UTC (rev 2494)
+++ trunk/src/rs-batch.c 2009-06-01 17:00:57 UTC (rev 2495)
@@ -492,7 +492,7 @@
g_object_set(fresample, "width", width, "height",
height, NULL);
/* Render preview image */
- pixbuf = rs_filter_get_image8(fend);
+ pixbuf = rs_filter_get_image8(fend, NULL);
if (pixbuf)
{
gtk_image_set_from_pixbuf(GTK_IMAGE(preview),
pixbuf);
Modified: trunk/src/rs-preview-widget.c
===================================================================
--- trunk/src/rs-preview-widget.c 2009-06-01 14:38:38 UTC (rev 2494)
+++ trunk/src/rs-preview-widget.c 2009-06-01 17:00:57 UTC (rev 2495)
@@ -1187,7 +1187,8 @@
for(i=0;i<preview->views;i++)
{
- GdkPixbuf *buffer =
rs_filter_get_image8(preview->filter_end[i]);
+ /* FIXME: Deal with ROI */
+ GdkPixbuf *buffer =
rs_filter_get_image8(preview->filter_end[i], NULL);
if (!buffer)
break;
@@ -2167,7 +2168,8 @@
if ((view<0) || (view>(preview->views-1)))
return FALSE;
- RS_IMAGE16 *image = rs_filter_get_image(preview->filter_end[view]);
+ /* FIXME: Deal with ROI */
+ RS_IMAGE16 *image = rs_filter_get_image(preview->filter_end[view],
NULL);
/* Get the real coordinates */
cbdata->pixel = rs_image16_get_pixel(image, screen_x, screen_y, TRUE);
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit