X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Ftransform%2Ftransform.c;h=ea00729756770b0fbb1ae681c3b1eb93c26c8b64;hb=82b9f3d116ce0c982291a2dfdd15cd8a1c4cc16e;hp=3e787e91fb6bc67a35b671bfbd08c32f0ef47666;hpb=988357ca2f0cb0d0e066111c12b9c0de74a53a1b;p=libsigrok.git diff --git a/src/transform/transform.c b/src/transform/transform.c index 3e787e91..ea007297 100644 --- a/src/transform/transform.c +++ b/src/transform/transform.c @@ -18,11 +18,14 @@ * along with this program. If not, see . */ +#include #include -#include "libsigrok.h" +#include #include "libsigrok-internal.h" +/** @cond PRIVATE */ #define LOG_PREFIX "transform" +/** @endcond */ /** * @file @@ -39,9 +42,15 @@ */ /** @cond PRIVATE */ -/* @endcond */ +extern SR_PRIV struct sr_transform_module transform_nop; +extern SR_PRIV struct sr_transform_module transform_scale; +extern SR_PRIV struct sr_transform_module transform_invert; +/** @endcond */ static const struct sr_transform_module *transform_module_list[] = { + &transform_nop, + &transform_scale, + &transform_invert, NULL, }; @@ -213,7 +222,8 @@ SR_API const struct sr_transform *sr_transform_new(const struct sr_transform_mod /* Pass option along. */ gvt = g_variant_get_type(mod_opts[i].def); if (!g_variant_is_of_type(value, gvt)) { - sr_err("Invalid type for '%s' option.", key); + sr_err("Invalid type for '%s' option.", + (char *)key); g_free(t); return NULL; } @@ -231,7 +241,8 @@ SR_API const struct sr_transform *sr_transform_new(const struct sr_transform_mod g_hash_table_iter_init(&iter, options); while (g_hash_table_iter_next(&iter, &key, &value)) { if (!g_hash_table_lookup(new_opts, key)) { - sr_err("Transform module '%s' has no option '%s'.", tmod->id, key); + sr_err("Transform module '%s' has no option '%s'.", + tmod->id, (char *)key); g_hash_table_destroy(new_opts); g_free(t); return NULL; @@ -247,6 +258,9 @@ SR_API const struct sr_transform *sr_transform_new(const struct sr_transform_mod if (new_opts) g_hash_table_destroy(new_opts); + /* Add the transform to the session's list of transforms. */ + sdi->session->transforms = g_slist_append(sdi->session->transforms, t); + return t; }