diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2006-11-11 03:22:41 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2006-11-11 03:22:41 +0000 |
commit | 55b143d013166cf5c869f589b4f1ee3539ac5f09 (patch) | |
tree | 016712040db0921dde049067e86c9481f4a1c6d3 /gtk2_ardour/route_time_axis.cc | |
parent | 90263f9a6dcec5de1bf6cd305d194118333a81ef (diff) |
fix reload of region gain envelopes, freeze works from start ... end instead of zero ... end; prep for bouncing-before-tape-mode
git-svn-id: svn://localhost/ardour2/trunk@1105 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/route_time_axis.cc')
-rw-r--r-- | gtk2_ardour/route_time_axis.cc | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc index ab8ebb32b5..7ae1f860fc 100644 --- a/gtk2_ardour/route_time_axis.cc +++ b/gtk2_ardour/route_time_axis.cc @@ -480,8 +480,6 @@ RouteTimeAxisView::set_track_mode (TrackMode mode) RadioMenuItem* item; RadioMenuItem* other_item; - cerr << "STM, mode = " << mode; - switch (mode) { case ARDOUR::Normal: item = normal_track_mode_item; @@ -498,10 +496,28 @@ RouteTimeAxisView::set_track_mode (TrackMode mode) } if (item->get_active () && track()->mode() != mode) { - if (track()->set_mode (mode)) { - Glib::signal_idle().connect (bind (sigc::ptr_fun (__reset_item), other_item)); + _set_track_mode (track(), mode, other_item); + } +} + +void +RouteTimeAxisView::_set_track_mode (Track* track, TrackMode mode, RadioMenuItem* reset_item) +{ + bool needs_bounce; + + if (!track->can_use_mode (mode, needs_bounce)) { + + if (!needs_bounce) { + /* cannot be done */ + Glib::signal_idle().connect (bind (sigc::ptr_fun (__reset_item), reset_item)); + return; + } else { + cerr << "would bounce this one\n"; + return; } } + + track->set_mode (mode); } void |