more MTC stuff, including toggleable use of torben's PI controller
[ardour.git] / libs / ardour / ardour / transient_detector.h
index c65bae3ed5be4055c73f0d068a05da523f00b3df..eb75f71c85ed5f009493417cf862f3cf7e83a35d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2008 Paul Davis 
+    Copyright (C) 2008 Paul Davis
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -20,7 +20,7 @@
 #ifndef __ardour_transient_detector_h__
 #define __ardour_transient_detector_h__
 
-#include <ardour/audioanalyser.h>
+#include "ardour/audioanalyser.h"
 
 namespace ARDOUR {
 
@@ -34,17 +34,23 @@ class TransientDetector : public AudioAnalyser
     TransientDetector (float sample_rate);
     ~TransientDetector();
 
+    static std::string operational_identifier();
+
     void set_threshold (float);
     void set_sensitivity (float);
 
     float get_threshold () const;
     float get_sensitivity () const;
-    
-    int run (const std::string& path, Readable*, uint32_t channel, std::vector<nframes64_t>& results);
 
- protected:
-    std::vector<nframes64_t>* current_results;
+    int run (const std::string& path, Readable*, uint32_t channel, AnalysisFeatureList& results);
+
+    static void cleanup_transients (AnalysisFeatureList&, float sr, float gap_msecs);
+
+  protected:
+    AnalysisFeatureList* current_results;
     int use_features (Vamp::Plugin::FeatureSet&, std::ostream*);
+
+    static std::string _op_id;
 };
 
 } /* namespace */