fix construction of new xfades from legacy xfades, and add a few comments here and...
[ardour.git] / libs / ardour / ardour / transient_detector.h
index c65bae3ed5be4055c73f0d068a05da523f00b3df..322e4cbc7583f69929c7b30a5d300a50cef35bf9 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
 #ifndef __ardour_transient_detector_h__
 #define __ardour_transient_detector_h__
 
-#include <ardour/audioanalyser.h>
+#include "ardour/audioanalyser.h"
 
 namespace ARDOUR {
 
 class AudioSource;
+class Readable;
 class Session;
 
 class TransientDetector : public AudioAnalyser
 {
+public:
+       TransientDetector (float sample_rate);
+       ~TransientDetector();
 
-  public:
-    TransientDetector (float sample_rate);
-    ~TransientDetector();
+       static std::string operational_identifier();
 
-    void set_threshold (float);
-    void set_sensitivity (float);
+       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);
+       float get_threshold () const;
+       float get_sensitivity () const;
 
- protected:
-    std::vector<nframes64_t>* current_results;
-    int use_features (Vamp::Plugin::FeatureSet&, std::ostream*);
+       int run (const std::string& path, Readable*, uint32_t channel, AnalysisFeatureList& results);
+       void update_positions (Readable* src, 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;
+       float threshold;
 };
 
 } /* namespace */