Mercurial > hg > svcore
annotate transform/FeatureExtractionPluginTransform.h @ 14:b101cc2ae1ab
* Introduce potentially-separate read and write ring buffers, so we can swap
in a new set when something changes -- thus allowing us to respond quickly
when something changes during playback, without losing the long buffers
* Some fixes for display & editing
author | Chris Cannam |
---|---|
date | Fri, 27 Jan 2006 18:04:07 +0000 |
parents | d86891498eef |
children | 39ae3dee27b9 |
rev | line source |
---|---|
Chris@0 | 1 /* -*- c-basic-offset: 4 -*- vi:set ts=8 sts=4 sw=4: */ |
Chris@0 | 2 |
Chris@0 | 3 /* |
Chris@0 | 4 A waveform viewer and audio annotation editor. |
Chris@2 | 5 Chris Cannam, Queen Mary University of London, 2005-2006 |
Chris@0 | 6 |
Chris@0 | 7 This is experimental software. Not for distribution. |
Chris@0 | 8 */ |
Chris@0 | 9 |
Chris@0 | 10 #ifndef _FEATURE_EXTRACTION_PLUGIN_TRANSFORM_H_ |
Chris@0 | 11 #define _FEATURE_EXTRACTION_PLUGIN_TRANSFORM_H_ |
Chris@0 | 12 |
Chris@0 | 13 #include "Transform.h" |
Chris@0 | 14 #include "FeatureExtractionPlugin.h" |
Chris@0 | 15 |
Chris@0 | 16 class DenseTimeValueModel; |
Chris@0 | 17 |
Chris@0 | 18 class FeatureExtractionPluginTransform : public Transform |
Chris@0 | 19 { |
Chris@0 | 20 public: |
Chris@0 | 21 FeatureExtractionPluginTransform(Model *inputModel, |
Chris@0 | 22 QString plugin, |
Chris@0 | 23 QString outputName = ""); |
Chris@0 | 24 virtual ~FeatureExtractionPluginTransform(); |
Chris@0 | 25 |
Chris@0 | 26 protected: |
Chris@0 | 27 virtual void run(); |
Chris@0 | 28 |
Chris@0 | 29 FeatureExtractionPlugin *m_plugin; |
Chris@0 | 30 FeatureExtractionPlugin::OutputDescriptor *m_descriptor; |
Chris@0 | 31 int m_outputFeatureNo; |
Chris@0 | 32 |
Chris@0 | 33 void addFeature(size_t blockFrame, |
Chris@0 | 34 const FeatureExtractionPlugin::Feature &feature); |
Chris@0 | 35 |
Chris@0 | 36 void setCompletion(int); |
Chris@0 | 37 |
Chris@0 | 38 // just casts |
Chris@0 | 39 DenseTimeValueModel *getInput(); |
Chris@0 | 40 template <typename ModelClass> ModelClass *getOutput() { |
Chris@0 | 41 ModelClass *mc = dynamic_cast<ModelClass *>(m_output); |
Chris@0 | 42 if (!mc) { |
Chris@0 | 43 std::cerr << "FeatureExtractionPluginTransform::getOutput: Output model not conformable" << std::endl; |
Chris@0 | 44 } |
Chris@0 | 45 return mc; |
Chris@0 | 46 } |
Chris@0 | 47 }; |
Chris@0 | 48 |
Chris@0 | 49 #endif |
Chris@0 | 50 |