annotate transform/FeatureExtractionPluginTransform.h @ 40:b2d1a61ab916

* A bit more work on main window / document / commands stuff. This is still pretty unstable. * Enable CSV file reader also to read files with other separators (e.g. .lab files with space separators) * Show "(R)" on waveform display when resampling during playback * Add ability to import additional audio files (can't process them yet) * Fixes to spectrogram cache for multiple views * Fix to avoid floating-point exception in sparse model when resolution not set yet
author Chris Cannam
date Mon, 06 Mar 2006 17:20:25 +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