summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-10-27 14:22:24 +0000
committerCarl Hetherington <carl@carlh.net>2010-10-27 14:22:24 +0000
commit935aeb55dd5fbce9fb9b1dd7770834b3b684a6d1 (patch)
tree7542f39e75c0f2acf614ba8a6ad5656cd74b5f7a /libs/ardour
parent8f448a78cd4263b5b9e55a2c2a8858e8cb6488b4 (diff)
Use ProgressReporter class for normalization. Report progress for individual regions. Fix crash on normalising a single region (#3510).
git-svn-id: svn://localhost/ardour2/branches/3.0@7924 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/ardour/audioregion.h2
-rw-r--r--libs/ardour/ardour/progress.h5
-rw-r--r--libs/ardour/audioregion.cc4
3 files changed, 9 insertions, 2 deletions
diff --git a/libs/ardour/ardour/audioregion.h b/libs/ardour/ardour/audioregion.h
index b919b6572c..302d1d1698 100644
--- a/libs/ardour/ardour/audioregion.h
+++ b/libs/ardour/ardour/audioregion.h
@@ -83,7 +83,7 @@ class AudioRegion : public Region
gain_t scale_amplitude() const { return _scale_amplitude; }
void normalize (float, float target_in_dB = 0.0f);
- double maximum_amplitude () const;
+ double maximum_amplitude (Progress *) const;
bool envelope_active () const { return _envelope_active; }
bool fade_in_active () const { return _fade_in_active; }
diff --git a/libs/ardour/ardour/progress.h b/libs/ardour/ardour/progress.h
index 891af22059..e252c63bd8 100644
--- a/libs/ardour/ardour/progress.h
+++ b/libs/ardour/ardour/progress.h
@@ -17,6 +17,9 @@
*/
+#ifndef __ardour_progress_h__
+#define __ardour_progress_h__
+
#include <list>
namespace ARDOUR {
@@ -49,3 +52,5 @@ private:
};
}
+
+#endif
diff --git a/libs/ardour/audioregion.cc b/libs/ardour/audioregion.cc
index e4c4b55a54..1461e1a3a4 100644
--- a/libs/ardour/audioregion.cc
+++ b/libs/ardour/audioregion.cc
@@ -45,6 +45,7 @@
#include "ardour/region_factory.h"
#include "ardour/runtime_functions.h"
#include "ardour/transient_detector.h"
+#include "ardour/progress.h"
#include "i18n.h"
#include <locale.h>
@@ -1144,7 +1145,7 @@ AudioRegion::set_scale_amplitude (gain_t g)
/** @return the maximum (linear) amplitude of the region */
double
-AudioRegion::maximum_amplitude () const
+AudioRegion::maximum_amplitude (Progress* p) const
{
framepos_t fpos = _start;
framepos_t const fend = _start + _length;
@@ -1171,6 +1172,7 @@ AudioRegion::maximum_amplitude () const
}
fpos += to_read;
+ p->set_progress (float (fpos - _start) / _length);
}
return maxamp;