diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-01-25 20:34:09 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-01-25 20:34:09 +0000 |
commit | 832aa18a813f5ed4cb8e1228c52d89ee6d8946c7 (patch) | |
tree | 7f6edd7d4cabb58ccddceac9aa18d38cc2987313 /gtk2_ardour | |
parent | 10395d2feeeac8949e9fd491173e467c9852879e (diff) |
a boatload of minor and middle-sized changes to try to speed up undo. imperfect, unfinished, but probably right to commit now
git-svn-id: svn://localhost/ardour2/branches/3.0@6561 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/add_route_dialog.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/audio_streamview.cc | 61 | ||||
-rw-r--r-- | gtk2_ardour/audio_streamview.h | 9 | ||||
-rw-r--r-- | gtk2_ardour/editor.cc | 7 | ||||
-rw-r--r-- | gtk2_ardour/editor_actions.cc | 1 | ||||
-rw-r--r-- | gtk2_ardour/editor_drag.cc | 11 | ||||
-rw-r--r-- | gtk2_ardour/editor_mouse.cc | 7 | ||||
-rw-r--r-- | gtk2_ardour/editor_regions.cc | 41 | ||||
-rw-r--r-- | gtk2_ardour/editor_regions.h | 2 | ||||
-rw-r--r-- | gtk2_ardour/editor_selection.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/enums.cc | 13 | ||||
-rw-r--r-- | gtk2_ardour/midi_tracer.h | 1 | ||||
-rw-r--r-- | gtk2_ardour/processor_box.cc | 5 | ||||
-rw-r--r-- | gtk2_ardour/streamview.cc | 56 | ||||
-rw-r--r-- | gtk2_ardour/streamview.h | 11 |
15 files changed, 114 insertions, 115 deletions
diff --git a/gtk2_ardour/add_route_dialog.cc b/gtk2_ardour/add_route_dialog.cc index a3d3deaea5..47eeb94320 100644 --- a/gtk2_ardour/add_route_dialog.cc +++ b/gtk2_ardour/add_route_dialog.cc @@ -366,7 +366,7 @@ AddRouteDialog::refill_channel_setups () chn.channels = 12; channel_setups.push_back (chn); - chn.name = X_("Custom"); + chn.name = _("Custom"); chn.channels = 0; channel_setups.push_back (chn); } diff --git a/gtk2_ardour/audio_streamview.cc b/gtk2_ardour/audio_streamview.cc index fe4d601e3f..b6abbb4b22 100644 --- a/gtk2_ardour/audio_streamview.cc +++ b/gtk2_ardour/audio_streamview.cc @@ -24,6 +24,8 @@ #include <gtkmm2ext/gtk_ui.h> +#include "pbd/stacktrace.h" + #include "ardour/audioplaylist.h" #include "ardour/audioregion.h" #include "ardour/audiofilesource.h" @@ -202,14 +204,14 @@ AudioStreamView::remove_region_view (boost::weak_ptr<Region> weak_r) { ENSURE_GUI_THREAD (*this, &AudioStreamView::remove_region_view, weak_r); - cerr << "a region went way, it appears to be ours (" << this << ")\n"; - boost::shared_ptr<Region> r (weak_r.lock()); if (!r) { return; } + cerr << "a region went way, it appears to be ours (" << this << ")\n"; + if (!_trackview.session()->deletion_in_progress()) { for (CrossfadeViewList::iterator i = crossfade_views.begin(); i != crossfade_views.end();) { @@ -244,46 +246,41 @@ AudioStreamView::undisplay_diskstream () } void -AudioStreamView::playlist_modified_weak (boost::weak_ptr<Diskstream> ds) +AudioStreamView::playlist_layered (boost::weak_ptr<Diskstream> wds) { - boost::shared_ptr<Diskstream> sp (ds.lock()); - if (sp) { - playlist_modified (sp); + boost::shared_ptr<Diskstream> ds (wds.lock()); + + if (!ds) { + return; } -} -void -AudioStreamView::playlist_modified (boost::shared_ptr<Diskstream> ds) -{ - /* we do not allow shared_ptr<T> to be bound to slots */ - ENSURE_GUI_THREAD (*this, &AudioStreamView::playlist_modified_weak, ds) + cerr << "AS, call SV::modified @ " << get_microseconds() << endl; + + StreamView::playlist_layered (wds); - StreamView::playlist_modified (ds); + cerr << "AS, done with SV::modified @ " << get_microseconds() << endl; /* make sure xfades are on top and all the regionviews are stacked correctly. */ + cerr << "AS, raise xfades @ " << get_microseconds() << endl; for (CrossfadeViewList::iterator i = crossfade_views.begin(); i != crossfade_views.end(); ++i) { i->second->get_canvas_group()->raise_to_top(); } + cerr << "AS, done with xfades @ " << get_microseconds() << endl; } void -AudioStreamView::playlist_changed_weak (boost::weak_ptr<Diskstream> ds) +AudioStreamView::playlist_switched (boost::weak_ptr<Diskstream> wds) { - boost::shared_ptr<Diskstream> sp (ds.lock()); - if (sp) { - playlist_changed (sp); - } -} + boost::shared_ptr<Diskstream> ds (wds.lock()); -void -AudioStreamView::playlist_changed (boost::shared_ptr<Diskstream> ds) -{ - ENSURE_GUI_THREAD (*this, &AudioStreamView::playlist_changed_weak, boost::weak_ptr<Diskstream> (ds)); + if (!ds) { + return; + } playlist_connections.drop_connections (); - StreamView::playlist_changed(ds); + StreamView::playlist_switched (ds); boost::shared_ptr<AudioPlaylist> apl = boost::dynamic_pointer_cast<AudioPlaylist>(ds->playlist()); @@ -293,27 +290,17 @@ AudioStreamView::playlist_changed (boost::shared_ptr<Diskstream> ds) } void -AudioStreamView::add_crossfade_weak (boost::weak_ptr<Crossfade> crossfade) +AudioStreamView::add_crossfade (boost::weak_ptr<Crossfade> wc) { - boost::shared_ptr<Crossfade> sp (crossfade.lock()); + boost::shared_ptr<Crossfade> crossfade (wc.lock()); - if (!sp) { + if (!crossfade) { return; } - add_crossfade (sp); -} - -void -AudioStreamView::add_crossfade (boost::shared_ptr<Crossfade> crossfade) -{ AudioRegionView* lview = 0; AudioRegionView* rview = 0; - /* we do not allow shared_ptr<T> to be bound to slots */ - - ENSURE_GUI_THREAD (*this, &AudioStreamView::add_crossfade_weak, boost::weak_ptr<Crossfade> (crossfade)); - /* first see if we already have a CrossfadeView for this Crossfade */ CrossfadeViewList::iterator i = crossfade_views.find (crossfade); diff --git a/gtk2_ardour/audio_streamview.h b/gtk2_ardour/audio_streamview.h index d17a67f23c..ce21c7dacb 100644 --- a/gtk2_ardour/audio_streamview.h +++ b/gtk2_ardour/audio_streamview.h @@ -88,13 +88,10 @@ class AudioStreamView : public StreamView void undisplay_diskstream (); void redisplay_diskstream (); - void playlist_modified_weak (boost::weak_ptr<ARDOUR::Diskstream>); - void playlist_modified (boost::shared_ptr<ARDOUR::Diskstream>); - void playlist_changed_weak (boost::weak_ptr<ARDOUR::Diskstream>); - void playlist_changed (boost::shared_ptr<ARDOUR::Diskstream>); + void playlist_layered (boost::weak_ptr<ARDOUR::Diskstream>); + void playlist_switched (boost::weak_ptr<ARDOUR::Diskstream>); - void add_crossfade (boost::shared_ptr<ARDOUR::Crossfade>); - void add_crossfade_weak (boost::weak_ptr<ARDOUR::Crossfade>); + void add_crossfade (boost::weak_ptr<ARDOUR::Crossfade>); void remove_crossfade (boost::shared_ptr<ARDOUR::Region>); void color_handler (); diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 3c7bd3f37c..387c61ecc6 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -2198,6 +2198,8 @@ Editor::set_state (const XMLNode& node, int /*version*/) int x, y, xoff, yoff; Gdk::Geometry g; + // return 0; + if ((prop = node.property ("id")) != 0) { _id = prop->value (); } @@ -2355,7 +2357,8 @@ Editor::set_state (const XMLNode& node, int /*version*/) } if ((prop = node.property ("region-list-sort-type"))) { - _regions->reset_sort_type (str2regionlistsorttype(prop->value()), true); + RegionListSortType st; + _regions->reset_sort_type ((RegionListSortType) string_2_enum (prop->value(), st), true); } if ((prop = node.property ("xfades-visible"))) { @@ -2458,7 +2461,7 @@ Editor::get_state () node->add_property ("show-measures", _show_measures ? "yes" : "no"); node->add_property ("follow-playhead", _follow_playhead ? "yes" : "no"); node->add_property ("xfades-visible", _xfade_visibility ? "yes" : "no"); - node->add_property ("region-list-sort-type", enum2str (_regions->sort_type ())); + node->add_property ("region-list-sort-type", enum_2_string (_regions->sort_type ())); node->add_property ("mouse-mode", enum2str(mouse_mode)); node->add_property ("internal-edit", _internal_editing ? "yes" : "no"); node->add_property ("join-object-range", join_object_range_button.get_active () ? "yes" : "no"); diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index 1b2654561c..64495fb2ff 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -340,6 +340,7 @@ Editor::register_actions () ActionManager::region_selection_sensitive_actions.push_back (act); act = ActionManager::register_action (editor_actions, "set-punch-from-edit-range", _("Set Punch from Edit Range"), sigc::mem_fun(*this, &Editor::set_punch_from_edit_range)); ActionManager::session_sensitive_actions.push_back (act); + ActionManager::region_selection_sensitive_actions.push_back (act); act = ActionManager::register_action (editor_actions, "set-punch-from-region", _("Set Punch From Region"), sigc::mem_fun(*this, &Editor::set_punch_from_region)); ActionManager::session_sensitive_actions.push_back (act); ActionManager::region_selection_sensitive_actions.push_back (act); diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index ab5aa45cb3..8f59b9e699 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -1003,20 +1003,19 @@ RegionMoveDrag::finished (GdkEvent* /*event*/, bool movement_occurred) rv->region()->set_layer (dest_layer); rv->region()->set_pending_explicit_relayer (true); } + + /* freeze playlist to avoid lots of relayering in the case of a multi-region drag */ - insert_result = modified_playlists.insert (playlist); - - if (insert_result.second) { - _editor->session()->add_command (new MementoCommand<Playlist>(*playlist, &playlist->get_state(), 0)); - } - /* freeze to avoid lots of relayering in the case of a multi-region drag */ frozen_insert_result = frozen_playlists.insert(playlist); if (frozen_insert_result.second) { playlist->freeze(); } + XMLNode& before (rv->region()->get_state()); rv->region()->set_position (where, (void*) this); + _editor->session()->add_command (new MementoCommand<Region>(*rv->region(), &before, &playlist->get_state())); + } if (changed_tracks && !_copy) { diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index c3b4528876..64d1bf39f7 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -2454,13 +2454,14 @@ Editor::mouse_brush_insert_region (RegionView* rv, nframes64_t pos) double speed = rtv->get_diskstream()->speed(); XMLNode &before = playlist->get_state(); - playlist->add_region (RegionFactory::create (rv->region()), (nframes64_t) (pos * speed)); + boost::shared_ptr<Region> new_region (RegionFactory::create (rv->region())); + playlist->add_region (new_region, (nframes64_t) (pos * speed)); XMLNode &after = playlist->get_state(); _session->add_command(new MementoCommand<Playlist>(*playlist.get(), &before, &after)); - // playlist is frozen, so we have to update manually + // playlist is frozen, so we have to update manually XXX this is disgusting - playlist->Modified(); /* EMIT SIGNAL */ + playlist->RegionAdded (new_region); /* EMIT SIGNAL */ } gint diff --git a/gtk2_ardour/editor_regions.cc b/gtk2_ardour/editor_regions.cc index 490f6991e3..58a0a5d7e7 100644 --- a/gtk2_ardour/editor_regions.cc +++ b/gtk2_ardour/editor_regions.cc @@ -24,6 +24,7 @@ #include <sstream> #include "pbd/basename.h" +#include "pbd/enumwriter.h" #include "ardour/audioregion.h" #include "ardour/audiofilesource.h" @@ -54,11 +55,13 @@ using namespace Editing; using Gtkmm2ext::Keyboard; EditorRegions::EditorRegions (Editor* e) - : EditorComponent (e), - _menu (0), - _show_automatic_regions (true), - _sort_type ((Editing::RegionListSortType) 0), - _no_redisplay (false) + : EditorComponent (e) + , _menu (0) + , _show_automatic_regions (true) + , _sort_type ((Editing::RegionListSortType) 0) + , _no_redisplay (false) + , ignore_region_list_selection_change (false) + , ignore_selected_region_change (false) { _display.set_size_request (100, -1); _display.set_name ("RegionListDisplay"); @@ -383,37 +386,42 @@ EditorRegions::region_changed (Change what_changed, boost::weak_ptr<Region> regi void EditorRegions::selection_changed () { + if (ignore_region_list_selection_change) { + return; + } + if (_display.get_selection()->count_selected_rows() > 0) { TreeIter iter; TreeView::Selection::ListHandle_Path rows = _display.get_selection()->get_selected_rows (); - _editor->deselect_all (); + _editor->get_selection().clear_regions (); for (TreeView::Selection::ListHandle_Path::iterator i = rows.begin(); i != rows.end(); ++i) { - if (iter = _model->get_iter (*i)) { // they could have clicked on a row that is just a placeholder, like "Hidden" + if (iter = _model->get_iter (*i)) { boost::shared_ptr<Region> region = (*iter)[_columns.region]; + // they could have clicked on a row that is just a placeholder, like "Hidden" + if (region) { if (region->automatic()) { + _display.get_selection()->unselect(*i); } else { _change_connection.block (true); - //editor_regions_selection_changed_connection.block(true); - + cerr << "\tpush to region selection\n"; _editor->set_selected_regionview_from_region_list (region, Selection::Add); _change_connection.block (false); - //editor_regions_selection_changed_connection.block(false); } } } } } else { - _editor->deselect_all (); + _editor->get_selection().clear_regions (); } } @@ -431,11 +439,13 @@ EditorRegions::set_selected (RegionSelection& regions) boost::shared_ptr<Region> compared_region = (*i)[_columns.region]; if (r == compared_region) { + cerr << "\tpush into region list\n"; _display.get_selection()->select(*i); break; } if (!(*i).children().empty()) { + cerr << "\tlook for " << r->name() << " among children of " << (compared_region ? compared_region->name() : string ("NO REGION")) << endl; if (set_selected_in_subrow(r, (*i), 2)) { break; } @@ -524,6 +534,8 @@ EditorRegions::update_row (boost::shared_ptr<Region> region) TreeModel::iterator i; TreeModel::Children rows = _model->children(); + + return; for (i = rows.begin(); i != rows.end(); ++i) { @@ -543,6 +555,7 @@ EditorRegions::update_row (boost::shared_ptr<Region> region) } } } + // cerr << "Returning - No match\n"; } @@ -570,6 +583,7 @@ EditorRegions::update_subrows (boost::shared_ptr<Region> region, TreeModel::Row } } } + return false; } @@ -579,7 +593,7 @@ EditorRegions::update_all_rows () if (!_session) { return; } - + TreeModel::iterator i; TreeModel::Children rows = _model->children(); @@ -1049,6 +1063,7 @@ EditorRegions::sorter (TreeModel::iterator a, TreeModel::iterator b) break; case ByEndInFile: + // cerr << "Compare " << (region1->start() + region1->length()) << " and " << (region2->start() + region2->length()) << endl; cmp = (region1->start() + region1->length()) - (region2->start() + region2->length()); break; @@ -1073,6 +1088,8 @@ EditorRegions::sorter (TreeModel::iterator a, TreeModel::iterator b) break; } + // cerr << "Comparison on " << enum_2_string (_sort_type) << " gives " << cmp << endl; + if (cmp < 0) { return -1; } else if (cmp > 0) { diff --git a/gtk2_ardour/editor_regions.h b/gtk2_ardour/editor_regions.h index 83fd91aaca..5a9c2aad5a 100644 --- a/gtk2_ardour/editor_regions.h +++ b/gtk2_ardour/editor_regions.h @@ -150,6 +150,8 @@ private: bool _no_redisplay; std::list<boost::shared_ptr<ARDOUR::Region> > tmp_region_list; PBD::ScopedConnection region_property_connection; + bool ignore_region_list_selection_change; + bool ignore_selected_region_change; }; #endif /* __gtk_ardour_editor_regions_h__ */ diff --git a/gtk2_ardour/editor_selection.cc b/gtk2_ardour/editor_selection.cc index 4c4b4f0c86..2b94a05619 100644 --- a/gtk2_ardour/editor_selection.cc +++ b/gtk2_ardour/editor_selection.cc @@ -870,6 +870,8 @@ Editor::region_selection_changed () _regions->block_change_connection (true); editor_regions_selection_changed_connection.block(true); + _regions->unselect_all (); + for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) { (*i)->set_selected_regionviews (selection->regions); } diff --git a/gtk2_ardour/enums.cc b/gtk2_ardour/enums.cc index 4820a930ac..4b20514175 100644 --- a/gtk2_ardour/enums.cc +++ b/gtk2_ardour/enums.cc @@ -40,6 +40,7 @@ setup_gtk_ardour_enums () ImportMode import_mode; EditPoint edit_point; LayerDisplay layer_display; + RegionListSortType region_list_sort_type; #define REGISTER(e) enum_writer.register_distinct (typeid(e).name(), i, s); i.clear(); s.clear() #define REGISTER_BITS(e) enum_writer.register_bits (typeid(e).name(), i, s); i.clear(); s.clear() @@ -71,4 +72,16 @@ setup_gtk_ardour_enums () REGISTER_ENUM (Overlaid); REGISTER_ENUM (Stacked); REGISTER (layer_display); + + REGISTER_ENUM (ByEndInFile); + REGISTER_ENUM (ByLength); + REGISTER_ENUM (ByName); + REGISTER_ENUM (ByPosition); + REGISTER_ENUM (BySourceFileCreationDate); + REGISTER_ENUM (BySourceFileFS); + REGISTER_ENUM (BySourceFileLength); + REGISTER_ENUM (BySourceFileName); + REGISTER_ENUM (ByStartInFile); + REGISTER_ENUM (ByTimestamp); + REGISTER (region_list_sort_type); } diff --git a/gtk2_ardour/midi_tracer.h b/gtk2_ardour/midi_tracer.h index fc6abee15c..58cdd6776e 100644 --- a/gtk2_ardour/midi_tracer.h +++ b/gtk2_ardour/midi_tracer.h @@ -1,7 +1,6 @@ #ifndef __ardour_gtk_midi_tracer_h__ #define __ardour_gtk_midi_tracer_h__ -#include <types.h> #include <gtkmm/textview.h> #include <gtkmm/scrolledwindow.h> #include <gtkmm/togglebutton.h> diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc index 07d2a4e6d4..7324541ae2 100644 --- a/gtk2_ardour/processor_box.cc +++ b/gtk2_ardour/processor_box.cc @@ -1019,10 +1019,11 @@ ProcessorBox::compute_processor_sort_keys () Label label; label.set_text (_("\ -You cannot reorder this set of processors\n\ +You cannot reorder these plugins/sends/inserts\n\ in that way because the inputs and\n\ -outputs do not work correctly.")); +outputs will not work correctly.")); + dialog.get_vbox()->set_border_width (12); dialog.get_vbox()->pack_start (label); dialog.add_button (Stock::OK, RESPONSE_ACCEPT); diff --git a/gtk2_ardour/streamview.cc b/gtk2_ardour/streamview.cc index b93606fbe8..da773ea273 100644 --- a/gtk2_ardour/streamview.cc +++ b/gtk2_ardour/streamview.cc @@ -169,20 +169,12 @@ StreamView::set_samples_per_unit (gdouble spp) } void -StreamView::add_region_view_weak (boost::weak_ptr<Region> r) +StreamView::add_region_view (boost::weak_ptr<Region> wr) { - boost::shared_ptr<Region> sp (r.lock()); - - if (sp) { - add_region_view (sp); + boost::shared_ptr<Region> r (wr.lock()); + if (!r) { + return; } -} - - -void -StreamView::add_region_view (boost::shared_ptr<Region> r) -{ - ENSURE_GUI_THREAD (*this, &StreamView::add_region_view_weak, boost::weak_ptr<Region>(r)); add_region_view_internal (r, true); @@ -229,9 +221,9 @@ StreamView::undisplay_diskstream () void StreamView::display_diskstream (boost::shared_ptr<Diskstream> ds) { - playlist_change_connection.disconnect(); - playlist_changed (ds); - ds->PlaylistChanged.connect (playlist_change_connection, boost::bind (&StreamView::playlist_changed_weak, this, boost::weak_ptr<Diskstream> (ds)), gui_context()); + playlist_switched_connection.disconnect(); + playlist_switched (ds); + ds->PlaylistChanged.connect (playlist_switched_connection, boost::bind (&StreamView::playlist_switched, this, boost::weak_ptr<Diskstream> (ds)), gui_context()); } void @@ -292,20 +284,13 @@ StreamView::layer_regions() } void -StreamView::playlist_modified_weak (boost::weak_ptr<Diskstream> ds) +StreamView::playlist_layered (boost::weak_ptr<Diskstream> wds) { - boost::shared_ptr<Diskstream> sp (ds.lock()); + boost::shared_ptr<Diskstream> ds (wds.lock()); - if (sp) { - playlist_modified (sp); + if (!ds) { + return; } -} - -void -StreamView::playlist_modified (boost::shared_ptr<Diskstream> ds) -{ - /* we do not allow shared_ptr<T> to be bound to slots */ - ENSURE_GUI_THREAD (*this, &StreamView::playlist_modified_weak, ds) /* update layers count and the y positions and heights of our regions */ if (ds->playlist()) { @@ -322,18 +307,13 @@ StreamView::playlist_modified (boost::shared_ptr<Diskstream> ds) } void -StreamView::playlist_changed_weak (boost::weak_ptr<Diskstream> ds) +StreamView::playlist_switched (boost::weak_ptr<Diskstream> wds) { - boost::shared_ptr<Diskstream> sp (ds.lock()); - if (sp) { - playlist_changed (sp); - } -} + boost::shared_ptr<Diskstream> ds (wds.lock()); -void -StreamView::playlist_changed (boost::shared_ptr<Diskstream> ds) -{ - ENSURE_GUI_THREAD (*this, &StreamView::playlist_changed_weak, boost::weak_ptr<Diskstream> (ds)); + if (!ds) { + return; + } /* disconnect from old playlist */ @@ -353,8 +333,8 @@ StreamView::playlist_changed (boost::shared_ptr<Diskstream> ds) /* catch changes */ - ds->playlist()->Modified.connect (playlist_connections, boost::bind (&StreamView::playlist_modified_weak, this, ds), gui_context()); - ds->playlist()->RegionAdded.connect (playlist_connections, ui_bind (&StreamView::add_region_view_weak, this, _1), gui_context()); + ds->playlist()->LayeringChanged.connect (playlist_connections, boost::bind (&StreamView::playlist_layered, this, boost::weak_ptr<Diskstream>(ds)), gui_context()); + ds->playlist()->RegionAdded.connect (playlist_connections, ui_bind (&StreamView::add_region_view, this, _1), gui_context()); ds->playlist()->RegionRemoved.connect (playlist_connections, ui_bind (&StreamView::remove_region_view, this, _1), gui_context()); } diff --git a/gtk2_ardour/streamview.h b/gtk2_ardour/streamview.h index b32d75d5ac..a1ebe2cc2a 100644 --- a/gtk2_ardour/streamview.h +++ b/gtk2_ardour/streamview.h @@ -99,8 +99,7 @@ public: virtual void update_contents_metrics(boost::shared_ptr<ARDOUR::Region>) {} - void add_region_view_weak (boost::weak_ptr<ARDOUR::Region> r); - void add_region_view (boost::shared_ptr<ARDOUR::Region>); + void add_region_view (boost::weak_ptr<ARDOUR::Region>); void region_layered (RegionView*); virtual void update_contents_height (); @@ -135,10 +134,8 @@ protected: void diskstream_changed (); void layer_regions (); - virtual void playlist_changed_weak (boost::weak_ptr<ARDOUR::Diskstream>); - virtual void playlist_changed (boost::shared_ptr<ARDOUR::Diskstream>); - virtual void playlist_modified_weak (boost::weak_ptr<ARDOUR::Diskstream>); - virtual void playlist_modified (boost::shared_ptr<ARDOUR::Diskstream>); + virtual void playlist_switched (boost::weak_ptr<ARDOUR::Diskstream>); + virtual void playlist_layered (boost::weak_ptr<ARDOUR::Diskstream>); virtual void color_handler () = 0; @@ -164,7 +161,7 @@ protected: uint32_t stream_base_color; ///< Background color PBD::ScopedConnectionList playlist_connections; - PBD::ScopedConnection playlist_change_connection; + PBD::ScopedConnection playlist_switched_connection; ARDOUR::layer_t _layers; LayerDisplay _layer_display; |