Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2015-06-12 15:34:20 +0300
committerCampbell Barton <ideasman42@gmail.com>2015-06-12 16:29:56 +0300
commit4fae3620d0494ccc128c5e169c4a579449e28220 (patch)
treec8fb1cf00413146791381a0f435fe7ecc5cb1215 /source/blender/blenkernel/intern
parent850bb80aefd833b14eeb6d39f07f05238ddb696f (diff)
De-duplicate stamp callback
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r--source/blender/blenkernel/intern/image.c60
1 files changed, 31 insertions, 29 deletions
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index 09934c872f7..90aa09430ae 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -2079,41 +2079,43 @@ void BKE_render_result_stamp_info(Scene *scene, Object *camera, struct RenderRes
}
}
-
-void BKE_imbuf_stamp_info(RenderResult *rr, struct ImBuf *ibuf)
+void BKE_stamp_info_callback(void *data, const struct StampData *stamp_data, StampCallback callback)
{
- struct StampData *stamp_data = rr->stamp_data;
+ if (!callback || !stamp_data) {
+ return;
+ }
+
+#define CALL(member, value_str) \
+ if (stamp_data->member[0]) { \
+ callback(data, value_str, stamp_data->member); \
+ } ((void)0)
- if (!ibuf || !stamp_data) return;
+ CALL(file, "File");
+ CALL(note, "Note");
+ CALL(date, "Date");
+ CALL(marker, "Marker");
+ CALL(time, "Time");
+ CALL(frame, "Frame");
+ CALL(camera, "Camera");
+ CALL(cameralens, "Lens");
+ CALL(scene, "Scene");
+ CALL(strip, "Strip");
+ CALL(rendertime, "RenderTime");
- if (stamp_data->file[0]) IMB_metadata_change_field(ibuf, "File", stamp_data->file);
- if (stamp_data->note[0]) IMB_metadata_change_field(ibuf, "Note", stamp_data->note);
- if (stamp_data->date[0]) IMB_metadata_change_field(ibuf, "Date", stamp_data->date);
- if (stamp_data->marker[0]) IMB_metadata_change_field(ibuf, "Marker", stamp_data->marker);
- if (stamp_data->time[0]) IMB_metadata_change_field(ibuf, "Time", stamp_data->time);
- if (stamp_data->frame[0]) IMB_metadata_change_field(ibuf, "Frame", stamp_data->frame);
- if (stamp_data->camera[0]) IMB_metadata_change_field(ibuf, "Camera", stamp_data->camera);
- if (stamp_data->cameralens[0]) IMB_metadata_change_field(ibuf, "Lens", stamp_data->cameralens);
- if (stamp_data->scene[0]) IMB_metadata_change_field(ibuf, "Scene", stamp_data->scene);
- if (stamp_data->strip[0]) IMB_metadata_change_field(ibuf, "Strip", stamp_data->strip);
- if (stamp_data->rendertime[0]) IMB_metadata_change_field(ibuf, "RenderTime", stamp_data->rendertime);
+#undef CALL
}
-void BKE_stamp_info_callback(void *data, const struct StampData *stamp_data, StampCallback callback)
+/* wrap for callback only */
+static void metadata_change_field(void *data, const char *propname, const char *propvalue)
{
- if (!callback || !stamp_data) return;
-
- if (stamp_data->file[0]) callback(data, "File", stamp_data->file);
- if (stamp_data->note[0]) callback(data, "Note", stamp_data->note);
- if (stamp_data->date[0]) callback(data, "Date", stamp_data->date);
- if (stamp_data->marker[0]) callback(data, "Marker", stamp_data->marker);
- if (stamp_data->time[0]) callback(data, "Time", stamp_data->time);
- if (stamp_data->frame[0]) callback(data, "Frame", stamp_data->frame);
- if (stamp_data->camera[0]) callback(data, "Camera", stamp_data->camera);
- if (stamp_data->cameralens[0]) callback(data, "Lens", stamp_data->cameralens);
- if (stamp_data->scene[0]) callback(data, "Scene", stamp_data->scene);
- if (stamp_data->strip[0]) callback(data, "Strip", stamp_data->strip);
- if (stamp_data->rendertime[0]) callback(data, "RenderTime", stamp_data->rendertime);
+ IMB_metadata_change_field(data, propname, propvalue);
+}
+
+void BKE_imbuf_stamp_info(RenderResult *rr, struct ImBuf *ibuf)
+{
+ struct StampData *stamp_data = rr->stamp_data;
+
+ BKE_stamp_info_callback(ibuf, stamp_data, metadata_change_field);
}