summaryrefslogtreecommitdiff
path: root/libs/canvas/wave_view.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2014-05-27 00:33:15 +0200
committerRobin Gareus <robin@gareus.org>2014-05-27 16:37:01 +0200
commit432611113d9190a002d6dd053e3c9c66c5bc731f (patch)
tree07c5db54a1031ab46c802ce0ed511c880e51d30e /libs/canvas/wave_view.cc
parent458d4dc6de6e26c8cf45d197f1db29c19767e6db (diff)
directly apply waveform clip-level changes
Diffstat (limited to 'libs/canvas/wave_view.cc')
-rw-r--r--libs/canvas/wave_view.cc14
1 files changed, 12 insertions, 2 deletions
diff --git a/libs/canvas/wave_view.cc b/libs/canvas/wave_view.cc
index 664dea351f..9e0ddc7ee3 100644
--- a/libs/canvas/wave_view.cc
+++ b/libs/canvas/wave_view.cc
@@ -73,6 +73,7 @@ WaveView::WaveView (Group* parent, boost::shared_ptr<ARDOUR::AudioRegion> region
, _sample_end (-1)
{
VisualPropertiesChanged.connect_same_thread (invalidation_connection, boost::bind (&WaveView::handle_visual_property_change, this));
+ ClipLevelChanged.connect_same_thread (invalidation_connection, boost::bind (&WaveView::handle_clip_level_change, this));
}
WaveView::~WaveView ()
@@ -105,6 +106,12 @@ WaveView::handle_visual_property_change ()
}
void
+WaveView::handle_clip_level_change ()
+{
+ invalidate_image ();
+}
+
+void
WaveView::set_fill_color (Color c)
{
if (c != _fill_color) {
@@ -165,8 +172,11 @@ alt_log_meter (float power)
void
WaveView::set_clip_level (double dB)
{
- _clip_level = dB_to_coefficient (dB);
- ClipLevelChanged ();
+ const double clip_level = dB_to_coefficient (dB);
+ if (clip_level != _clip_level) {
+ _clip_level = clip_level;
+ ClipLevelChanged ();
+ }
}
struct LineTips {