From cbeb09ee0a31a8bec670864b03d4f743f968d1b1 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 28 Jan 2008 01:18:25 +0000 Subject: Add slv2_plugin_get_num_ports_of_class. git-svn-id: http://svn.drobilla.net/lad/slv2@1116 a436a847-0d15-0410-975c-d299462d15a1 --- src/plugin.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'src/plugin.c') diff --git a/src/plugin.c b/src/plugin.c index 437bcb6..4745135 100644 --- a/src/plugin.c +++ b/src/plugin.c @@ -473,6 +473,41 @@ slv2_plugin_get_num_ports(SLV2Plugin p) } +uint32_t +slv2_plugin_get_num_ports_of_class(SLV2Plugin p, + SLV2Value class_1, ...) +{ + uint32_t ret = 0; + va_list args; + + for (unsigned i=0; i < slv2_plugin_get_num_ports(p); ++i) { + SLV2Port port = raptor_sequence_get_at(p->ports, i); + if (!slv2_port_is_a(p, port, class_1)) + continue; + + va_start(args, class_1); + + bool matches = true; + for (SLV2Value class_i = NULL; (class_i = va_arg(args, SLV2Value)) != NULL ; ) { + if (!slv2_port_is_a(p, port, class_i)) { + va_end(args); + matches = false; + break; + } + } + + if (matches) { + printf("HIT: %s\n", slv2_value_as_string(slv2_port_get_name(p, port))); + ++ret; + } + + va_end(args); + } + + return ret; +} + + bool slv2_plugin_has_latency(SLV2Plugin p) { -- cgit v1.2.1