diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-02-19 18:09:08 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-02-19 18:09:08 +0000 |
commit | fa701b8c065251d242342b86a54d91826d2290a0 (patch) | |
tree | 106865e709c61a1d3af045a26a757b22ba423c3e /gtk2_ardour/audio_region_editor.cc | |
parent | 728bedf9b917287ea76b98860dec04e72472230c (diff) |
change PropertyChange from a bitfield into a real object, with all the many widespread changes that causes
git-svn-id: svn://localhost/ardour2/branches/3.0@6701 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/audio_region_editor.cc')
-rw-r--r-- | gtk2_ardour/audio_region_editor.cc | 52 |
1 files changed, 38 insertions, 14 deletions
diff --git a/gtk2_ardour/audio_region_editor.cc b/gtk2_ardour/audio_region_editor.cc index 668ed8ed52..e246c04391 100644 --- a/gtk2_ardour/audio_region_editor.cc +++ b/gtk2_ardour/audio_region_editor.cc @@ -152,10 +152,19 @@ AudioRegionEditor::AudioRegionEditor (Session* s, boost::shared_ptr<AudioRegion> show_all(); name_changed (); - bounds_changed (PropertyChange (StartChanged|LengthChanged|PositionChanged|Region::SyncOffsetChanged)); + + PropertyChange change; + + change.add (ARDOUR::Properties::start); + change.add (ARDOUR::Properties::length); + change.add (ARDOUR::Properties::position); + change.add (ARDOUR::Properties::sync_position); + + bounds_changed (change); + gain_changed (); - _region->StateChanged.connect (state_connection, ui_bind (&AudioRegionEditor::region_changed, this, _1), gui_context()); + _region->PropertyChanged.connect (state_connection, ui_bind (&AudioRegionEditor::region_changed, this, _1), gui_context()); spin_arrow_grab = false; @@ -167,17 +176,24 @@ AudioRegionEditor::~AudioRegionEditor () } void -AudioRegionEditor::region_changed (PBD::PropertyChange what_changed) +AudioRegionEditor::region_changed (const PBD::PropertyChange& what_changed) { - if (what_changed & NameChanged) { + if (what_changed.contains (ARDOUR::Properties::name)) { name_changed (); } - if (what_changed & PropertyChange (BoundsChanged|StartChanged|Region::SyncOffsetChanged)) { + PropertyChange interesting_stuff; + + interesting_stuff.add (ARDOUR::Properties::position); + interesting_stuff.add (ARDOUR::Properties::length); + interesting_stuff.add (ARDOUR::Properties::start); + interesting_stuff.add (ARDOUR::Properties::sync_position); + + if (what_changed.contains (interesting_stuff)) { bounds_changed (what_changed); } - if (what_changed & AudioRegion::ScaleAmplitudeChanged) { + if (what_changed.contains (ARDOUR::Properties::scale_amplitude)) { gain_changed (); } } @@ -326,35 +342,35 @@ AudioRegionEditor::name_changed () } void -AudioRegionEditor::bounds_changed (PropertyChange what_changed) +AudioRegionEditor::bounds_changed (const PropertyChange& what_changed) { - if ((what_changed & PropertyChange (PositionChanged|LengthChanged)) == PropertyChange (PositionChanged|LengthChanged)) { + if (what_changed.contains (ARDOUR::Properties::position) && what_changed.contains (ARDOUR::Properties::length)) { position_clock.set (_region->position(), true); end_clock.set (_region->position() + _region->length() - 1, true); length_clock.set (_region->length(), true); - } else if (what_changed & PropertyChange (PositionChanged)) { + } else if (what_changed.contains (ARDOUR::Properties::position)) { position_clock.set (_region->position(), true); end_clock.set (_region->position() + _region->length() - 1, true); - } else if (what_changed & PropertyChange (LengthChanged)) { + } else if (what_changed.contains (ARDOUR::Properties::length)) { end_clock.set (_region->position() + _region->length() - 1, true); length_clock.set (_region->length(), true); } - if ((what_changed & Region::SyncOffsetChanged) || (what_changed & PositionChanged)) { + if (what_changed.contains (ARDOUR::Properties::sync_position) || what_changed.contains (ARDOUR::Properties::position)) { int dir; nframes_t off = _region->sync_offset (dir); if (dir == -1) { off = -off; } - if (what_changed & Region::SyncOffsetChanged) { + if (what_changed.contains (ARDOUR::Properties::sync_position)) { sync_offset_relative_clock.set (off, true); } sync_offset_absolute_clock.set (off + _region->position (), true); } - if (what_changed & StartChanged) { + if (what_changed.contains (ARDOUR::Properties::start)) { start_clock.set (_region->start(), true); } } @@ -412,6 +428,14 @@ AudioRegionEditor::sync_offset_relative_clock_changed () bool AudioRegionEditor::on_delete_event (GdkEventAny* ev) { - bounds_changed (PropertyChange (StartChanged|LengthChanged|PositionChanged|Region::SyncOffsetChanged)); + PropertyChange change; + + change.add (ARDOUR::Properties::start); + change.add (ARDOUR::Properties::length); + change.add (ARDOUR::Properties::position); + change.add (ARDOUR::Properties::sync_position); + + bounds_changed (change); + return RegionEditor::on_delete_event (ev); } |