Author: abrander
Date: 2009-06-02 01:26:16 +0200 (Tue, 02 Jun 2009)
New Revision: 2500
Modified:
trunk/librawstudio/rs-filter.c
trunk/librawstudio/rs-filter.h
Log:
Added rs_filter_set_enabled() and rs_filter_get_enabled().
Modified: trunk/librawstudio/rs-filter.c
===================================================================
--- trunk/librawstudio/rs-filter.c 2009-06-01 21:51:46 UTC (rev 2499)
+++ trunk/librawstudio/rs-filter.c 2009-06-01 23:26:16 UTC (rev 2500)
@@ -62,6 +62,7 @@
filter_debug("rs_filter_init(%p)", self);
self->previous = NULL;
self->next_filters = NULL;
+ self->enabled = TRUE;
}
/**
@@ -163,7 +164,7 @@
gt = g_timer_new();
count++;
- if (RS_FILTER_GET_CLASS(filter)->get_image)
+ if (RS_FILTER_GET_CLASS(filter)->get_image && filter->enabled)
image = RS_FILTER_GET_CLASS(filter)->get_image(filter, param);
else
image = rs_filter_get_image(filter->previous, param);
@@ -216,7 +217,7 @@
gt = g_timer_new();
count++;
- if (RS_FILTER_GET_CLASS(filter)->get_image8)
+ if (RS_FILTER_GET_CLASS(filter)->get_image8 && filter->enabled)
image = RS_FILTER_GET_CLASS(filter)->get_image8(filter, param);
else if (filter->previous)
image = rs_filter_get_image8(filter->previous, param);
@@ -299,3 +300,40 @@
return height;
}
+
+/**
+ * Set enabled state of a RSFilter
+ * @param filter A RSFilter
+ * @param enabled TRUE to enable filter, FALSE to disable
+ * @return Previous state
+ */
+gboolean
+rs_filter_set_enabled(RSFilter *filter, gboolean enabled)
+{
+ gboolean previous_state;
+
+ g_assert(RS_IS_FILTER(filter));
+
+ previous_state = filter->enabled;
+
+ if (filter->enabled != enabled)
+ {
+ filter->enabled = enabled;
+ rs_filter_changed(filter, RS_FILTER_CHANGED_PIXELDATA);
+ }
+
+ return previous_state;
+}
+
+/**
+ * Get enabled state of a RSFilter
+ * @param filter A RSFilter
+ * @return TRUE if filter is enabled, FALSE if disabled
+ */
+gboolean
+rs_filter_get_enabled(RSFilter *filter)
+{
+ g_assert(RS_IS_FILTER(filter));
+
+ return filter->enabled;
+}
Modified: trunk/librawstudio/rs-filter.h
===================================================================
--- trunk/librawstudio/rs-filter.h 2009-06-01 21:51:46 UTC (rev 2499)
+++ trunk/librawstudio/rs-filter.h 2009-06-01 23:26:16 UTC (rev 2500)
@@ -87,6 +87,7 @@
GObject parent;
RSFilter *previous;
GSList *next_filters;
+ gboolean enabled;
};
struct _RSFilterClass {
@@ -163,6 +164,21 @@
*/
extern gint rs_filter_get_height(RSFilter *filter);
+/**
+ * Set enabled state of a RSFilter
+ * @param filter A RSFilter
+ * @param enabled TRUE to enable filter, FALSE to disable
+ * @return Previous state
+ */
+extern gboolean rs_filter_set_enabled(RSFilter *filter, gboolean enabled);
+
+/**
+ * Get enabled state of a RSFilter
+ * @param filter A RSFilter
+ * @return TRUE if filter is enabled, FALSE if disabled
+ */
+extern gboolean rs_filter_get_enabled(RSFilter *filter);
+
G_END_DECLS
#endif /* RS_FILTER_H */
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit