diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-01-25 05:35:46 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-01-25 05:35:46 +0000 |
commit | d3f64c28489d2358498b9d7dcfc6fa4228ebd63e (patch) | |
tree | 8195496c9330bb4fb279d282598da6dc5c98a361 /libs/ardour/audiosource.cc | |
parent | 28e6ad009158ddaea80fd5d800befcbf58ce47ee (diff) |
meet rhythm ferret: cute, furry and always on time (ardour build now requires fftw3 & fftw3f, no exceptions, ever)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2959 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/audiosource.cc')
-rw-r--r-- | libs/ardour/audiosource.cc | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/libs/ardour/audiosource.cc b/libs/ardour/audiosource.cc index a71c927f62..68bfff10ee 100644 --- a/libs/ardour/audiosource.cc +++ b/libs/ardour/audiosource.cc @@ -27,10 +27,12 @@ #include <ctime> #include <cmath> #include <iomanip> +#include <fstream> #include <algorithm> #include <vector> #include <glibmm/fileutils.h> +#include <glibmm/miscutils.h> #include <pbd/xml++.h> #include <pbd/pthread_utils.h> @@ -38,6 +40,7 @@ #include <ardour/audiosource.h> #include <ardour/cycle_timer.h> #include <ardour/session.h> +#include <ardour/transient_detector.h> #include "i18n.h" @@ -917,3 +920,50 @@ AudioSource::update_length (nframes_t pos, nframes_t cnt) } } +int +AudioSource::load_transients (const string& path) +{ + ifstream file (path.c_str()); + + if (!file) { + return -1; + } + + transients.clear (); + + stringstream strstr; + double val; + + while (file.good()) { + file >> val; + + if (!file.fail()) { + nframes64_t frame = (nframes64_t) floor (val * _session.frame_rate()); + transients.push_back (frame); + } + } + + return 0; +} + +string +AudioSource::get_transients_path () const +{ + vector<string> parts; + string s; + + /* old sessions may not have the analysis directory */ + + _session.ensure_subdirs (); + + s = _session.analysis_dir (); + parts.push_back (s); + + s = _id.to_s(); + s += '.'; + s += X_("transients"); + parts.push_back (s); + + return Glib::build_filename (parts); +} + |