X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Ftransform%2Ftransform.c;h=6334ed218b900e03b165db058da0eac263f8739a;hb=0aaaee2dd325c81b31ac2c285f4bbe0990b9cc8a;hp=3e787e91fb6bc67a35b671bfbd08c32f0ef47666;hpb=988357ca2f0cb0d0e066111c12b9c0de74a53a1b;p=libsigrok.git diff --git a/src/transform/transform.c b/src/transform/transform.c index 3e787e91..6334ed21 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 */ +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; }