Mercurial > hg > vamp-test-plugin
diff VampTestPlugin.cpp @ 20:cfff2b6ff0fd
Add timestamp output and frequency-domain version
author | Chris Cannam |
---|---|
date | Wed, 14 Jan 2015 10:55:32 +0000 |
parents | 534b001d8e8f |
children | 8984ab4a0213 |
line wrap: on
line diff
--- a/VampTestPlugin.cpp Wed Dec 03 10:40:07 2014 +0000 +++ b/VampTestPlugin.cpp Wed Jan 14 10:55:32 2015 +0000 @@ -10,8 +10,9 @@ using Vamp::RealTime; -VampTestPlugin::VampTestPlugin(float inputSampleRate) : +VampTestPlugin::VampTestPlugin(float inputSampleRate, bool freq) : Plugin(inputSampleRate), + m_frequencyDomain(freq), m_produceOutput(true), m_n(0), m_channels(1), @@ -30,13 +31,21 @@ string VampTestPlugin::getIdentifier() const { - return "vamp-test-plugin"; + if (m_frequencyDomain) { + return "vamp-test-plugin-freq"; + } else { + return "vamp-test-plugin"; + } } string VampTestPlugin::getName() const { - return "Vamp Test Plugin"; + if (m_frequencyDomain) { + return "Vamp Test Plugin (Frequency-Domain Input)"; + } else { + return "Vamp Test Plugin"; + } } string @@ -54,7 +63,7 @@ int VampTestPlugin::getPluginVersion() const { - return 2; + return 3; } string @@ -66,7 +75,7 @@ VampTestPlugin::InputDomain VampTestPlugin::getInputDomain() const { - return TimeDomain; + return m_frequencyDomain ? FrequencyDomain : TimeDomain; } size_t @@ -282,6 +291,19 @@ m_outputNumbers[d.identifier] = n++; list.push_back(d); + d.identifier = "input-timestamp"; + d.name = "Input timestamp"; + d.description = "One-sample-per-step features with one value, containing the time in seconds converted from the timestamp of the corresponding process input block."; + d.unit = "s"; + d.hasFixedBinCount = true; + d.binCount = 1; + d.hasKnownExtents = false; + d.isQuantized = false; + d.sampleType = OutputDescriptor::OneSamplePerStep; + d.hasDuration = false; + m_outputNumbers[d.identifier] = n++; + list.push_back(d); + return list; } @@ -499,6 +521,10 @@ f.values.push_back(sum); } fs[m_outputNumbers["input-summary"]].push_back(f); + + f.values.clear(); + f.values.push_back(float(timestamp / RealTime(1, 0))); + fs[m_outputNumbers["input-timestamp"]].push_back(f); return fs; }