diff options
author | Carl Hetherington <carl@carlh.net> | 2010-09-20 00:58:25 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-09-20 00:58:25 +0000 |
commit | a2885a430bbb69a72f901d227cacce979f121020 (patch) | |
tree | 191ae276dbbd2e456a0d8edabccd19fee486572c /libs/ardour/strip_silence.cc | |
parent | a212e7eec999e696dde6d4747b783fb6098bdb47 (diff) |
Add progress bar to strip silence dialogue. Fixes #3103.
git-svn-id: svn://localhost/ardour2/branches/3.0@7809 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/strip_silence.cc')
-rw-r--r-- | libs/ardour/strip_silence.cc | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/libs/ardour/strip_silence.cc b/libs/ardour/strip_silence.cc index a7d7ab073f..a7308b06ab 100644 --- a/libs/ardour/strip_silence.cc +++ b/libs/ardour/strip_silence.cc @@ -24,6 +24,7 @@ #include "ardour/region_factory.h" #include "ardour/session.h" #include "ardour/dB.h" +#include "ardour/progress.h" using namespace ARDOUR; @@ -41,7 +42,7 @@ StripSilence::StripSilence (Session & s, double threshold, nframes_t minimum_len } int -StripSilence::run (boost::shared_ptr<Region> r) +StripSilence::run (boost::shared_ptr<Region> r, Progress* progress) { results.clear (); @@ -88,6 +89,9 @@ StripSilence::run (boost::shared_ptr<Region> r) in_silence = false; } + int n = 0; + int const N = silence.size (); + while (s != silence.end()) { framecnt_t interval_duration; @@ -119,6 +123,11 @@ StripSilence::run (boost::shared_ptr<Region> r) ++s; end = s->first; in_silence = !in_silence; + + if (progress) { + progress->set_progress (float (n) / N); + } + ++n; } return 0; |