summaryrefslogtreecommitdiff
path: root/libs/ardour/strip_silence.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-09-20 00:58:25 +0000
committerCarl Hetherington <carl@carlh.net>2010-09-20 00:58:25 +0000
commita2885a430bbb69a72f901d227cacce979f121020 (patch)
tree191ae276dbbd2e456a0d8edabccd19fee486572c /libs/ardour/strip_silence.cc
parenta212e7eec999e696dde6d4747b783fb6098bdb47 (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.cc11
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;