From 458c588e2c7dfe7c0e62647fb5e0d0c06cdf8f04 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 16 Feb 2009 05:13:05 +0000 Subject: Don't bind playlist_modified with a shared_ptr parameter. Clean up. git-svn-id: svn://localhost/ardour2/branches/3.0@4599 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/audio_streamview.cc | 25 +++++++++---- gtk2_ardour/audio_streamview.h | 1 + gtk2_ardour/automation_time_axis.cc | 37 ++++++++------------ gtk2_ardour/midi_channel_selector.cc | 13 +++---- gtk2_ardour/midi_channel_selector.h | 2 +- gtk2_ardour/midi_scroomer.cc | 2 -- gtk2_ardour/midi_time_axis.cc | 22 ++++++------ gtk2_ardour/route_time_axis.cc | 1 - gtk2_ardour/streamview.cc | 68 ++++++++++++++++++++++++------------ gtk2_ardour/streamview.h | 1 + libs/ardour/smf_source.cc | 1 - 11 files changed, 98 insertions(+), 75 deletions(-) diff --git a/gtk2_ardour/audio_streamview.cc b/gtk2_ardour/audio_streamview.cc index 320bc1f195..d205e400d2 100644 --- a/gtk2_ardour/audio_streamview.cc +++ b/gtk2_ardour/audio_streamview.cc @@ -248,11 +248,9 @@ void AudioStreamView::playlist_modified_weak (boost::weak_ptr ds) { boost::shared_ptr sp (ds.lock()); - if (!sp) { - return; + if (sp) { + playlist_modified (sp); } - - playlist_modified (sp); } void @@ -270,16 +268,29 @@ AudioStreamView::playlist_modified (boost::shared_ptr ds) } } +void +AudioStreamView::playlist_changed_weak (boost::weak_ptr ds) +{ + boost::shared_ptr sp (ds.lock()); + if (sp) { + playlist_changed (sp); + } +} + void AudioStreamView::playlist_changed (boost::shared_ptr ds) { - ENSURE_GUI_THREAD (bind (mem_fun (*this, &AudioStreamView::playlist_changed), ds)); + ENSURE_GUI_THREAD (bind ( + mem_fun (*this, &AudioStreamView::playlist_changed_weak), + boost::weak_ptr (ds))); StreamView::playlist_changed(ds); boost::shared_ptr apl = boost::dynamic_pointer_cast(ds->playlist()); - if (apl) - playlist_connections.push_back (apl->NewCrossfade.connect (mem_fun (*this, &AudioStreamView::add_crossfade))); + if (apl) { + playlist_connections.push_back (apl->NewCrossfade.connect ( + mem_fun (*this, &AudioStreamView::add_crossfade))); + } } void diff --git a/gtk2_ardour/audio_streamview.h b/gtk2_ardour/audio_streamview.h index 85055249c5..d7f0c2571e 100644 --- a/gtk2_ardour/audio_streamview.h +++ b/gtk2_ardour/audio_streamview.h @@ -93,6 +93,7 @@ class AudioStreamView : public StreamView void redisplay_diskstream (); void playlist_modified_weak (boost::weak_ptr); void playlist_modified (boost::shared_ptr); + void playlist_changed_weak (boost::weak_ptr); void playlist_changed (boost::shared_ptr); void add_crossfade (boost::shared_ptr); diff --git a/gtk2_ardour/automation_time_axis.cc b/gtk2_ardour/automation_time_axis.cc index d46a3cdbaa..93418201ec 100644 --- a/gtk2_ardour/automation_time_axis.cc +++ b/gtk2_ardour/automation_time_axis.cc @@ -381,10 +381,8 @@ AutomationTimeAxisView::set_height (uint32_t h) { bool changed = (height != (uint32_t) h) || first_call_to_set_height; bool changed_between_small_and_normal = ( - (height < hNormal && h >= hNormal) || - (height >= hNormal || - h < hNormal) - ); + (height < hNormal && h >= hNormal) + || (height >= hNormal || h < hNormal) ); TimeAxisView* state_parent = get_parent_with_state (); assert(state_parent); @@ -515,20 +513,24 @@ AutomationTimeAxisView::build_display_menu () auto_state_menu->set_name ("ArdourContextMenu"); MenuList& as_items = auto_state_menu->items(); - as_items.push_back (CheckMenuElem (_("Manual"), - bind (mem_fun(*this, &AutomationTimeAxisView::set_automation_state), (AutoState) Off))); + as_items.push_back (CheckMenuElem (_("Manual"), bind ( + mem_fun(*this, &AutomationTimeAxisView::set_automation_state), + (AutoState) Off))); auto_off_item = dynamic_cast(&as_items.back()); - as_items.push_back (CheckMenuElem (_("Play"), - bind (mem_fun(*this, &AutomationTimeAxisView::set_automation_state), (AutoState) Play))); + as_items.push_back (CheckMenuElem (_("Play"), bind ( + mem_fun(*this, &AutomationTimeAxisView::set_automation_state), + (AutoState) Play))); auto_play_item = dynamic_cast(&as_items.back()); - as_items.push_back (CheckMenuElem (_("Write"), - bind (mem_fun(*this, &AutomationTimeAxisView::set_automation_state), (AutoState) Write))); + as_items.push_back (CheckMenuElem (_("Write"), bind ( + mem_fun(*this, &AutomationTimeAxisView::set_automation_state), + (AutoState) Write))); auto_write_item = dynamic_cast(&as_items.back()); - as_items.push_back (CheckMenuElem (_("Touch"), - bind (mem_fun(*this, &AutomationTimeAxisView::set_automation_state), (AutoState) Touch))); + as_items.push_back (CheckMenuElem (_("Touch"), bind ( + mem_fun(*this, &AutomationTimeAxisView::set_automation_state), + (AutoState) Touch))); auto_touch_item = dynamic_cast(&as_items.back()); items.push_back (MenuElem (_("State"), *auto_state_menu)); @@ -860,17 +862,6 @@ AutomationTimeAxisView::exited () _line->track_exited(); } -/*void -AutomationTimeAxisView::set_colors () -{ - for (list::iterator i=ghosts.begin(); i != ghosts.end(); i++ ) { - (*i)->set_colors(); - } - - if (_line) - _line->set_colors(); - }*/ - void AutomationTimeAxisView::color_handler () { diff --git a/gtk2_ardour/midi_channel_selector.cc b/gtk2_ardour/midi_channel_selector.cc index 1b5baff7d5..12eea5bb12 100644 --- a/gtk2_ardour/midi_channel_selector.cc +++ b/gtk2_ardour/midi_channel_selector.cc @@ -28,13 +28,14 @@ using namespace Gtk; using namespace sigc; using namespace ARDOUR; -MidiChannelSelector::MidiChannelSelector(int no_rows, int no_columns, int start_row, int start_column) : Table(no_rows, no_columns, true) - , _recursion_counter(0) +MidiChannelSelector::MidiChannelSelector(int n_rows, int n_columns, int start_row, int start_column) + : Table(n_rows, n_columns, true) + , _recursion_counter(0) { - assert(no_rows >= 4); - assert(no_rows >= start_row + 4); - assert(no_columns >=4); - assert(no_columns >= start_column + 4); + assert(n_rows >= 4); + assert(n_rows >= start_row + 4); + assert(n_columns >=4); + assert(n_columns >= start_column + 4); property_column_spacing() = 0; property_row_spacing() = 0; diff --git a/gtk2_ardour/midi_channel_selector.h b/gtk2_ardour/midi_channel_selector.h index a72bea0cf1..7485f96257 100644 --- a/gtk2_ardour/midi_channel_selector.h +++ b/gtk2_ardour/midi_channel_selector.h @@ -33,7 +33,7 @@ class MidiChannelSelector : public Gtk::Table { public: - MidiChannelSelector(int no_rows = 4, int no_columns = 4, int start_row = 0, int start_column = 0); + MidiChannelSelector(int n_rows = 4, int n_columns = 4, int start_row = 0, int start_column = 0); virtual ~MidiChannelSelector() = 0; sigc::signal mode_changed; diff --git a/gtk2_ardour/midi_scroomer.cc b/gtk2_ardour/midi_scroomer.cc index f3bafb7584..0299e8d2d5 100644 --- a/gtk2_ardour/midi_scroomer.cc +++ b/gtk2_ardour/midi_scroomer.cc @@ -166,8 +166,6 @@ MidiScroomer::on_size_request(Gtk::Requisition* r) { r->width = 12; r->height = 100; - //r->width = 32; - //r->height = 512; } void diff --git a/gtk2_ardour/midi_time_axis.cc b/gtk2_ardour/midi_time_axis.cc index 2c852fb211..3df63d11f7 100644 --- a/gtk2_ardour/midi_time_axis.cc +++ b/gtk2_ardour/midi_time_axis.cc @@ -88,7 +88,8 @@ using namespace Editing; static const uint32_t MIDI_CONTROLS_BOX_MIN_HEIGHT = 162; static const uint32_t KEYBOARD_MIN_HEIGHT = 140; -MidiTimeAxisView::MidiTimeAxisView (PublicEditor& ed, Session& sess, boost::shared_ptr rt, Canvas& canvas) +MidiTimeAxisView::MidiTimeAxisView (PublicEditor& ed, Session& sess, + boost::shared_ptr rt, Canvas& canvas) : AxisView(sess) // virtually inherited , RouteTimeAxisView(ed, sess, rt, canvas) , _ignore_signals(false) @@ -150,10 +151,9 @@ MidiTimeAxisView::MidiTimeAxisView (PublicEditor& ed, Session& sess, boost::shar MIDI::Name::MidiPatchManager& patch_manager = MIDI::Name::MidiPatchManager::instance(); - for (MIDI::Name::MasterDeviceNames::Models::const_iterator model = patch_manager.all_models().begin(); - model != patch_manager.all_models().end(); - ++model) { - _model_selector.append_text(model->c_str()); + MIDI::Name::MasterDeviceNames::Models::const_iterator m = patch_manager.all_models().begin(); + for (; m != patch_manager.all_models().end(); ++m) { + _model_selector.append_text(m->c_str()); } _model_selector.signal_changed().connect(mem_fun(*this, &MidiTimeAxisView::model_changed)); @@ -178,7 +178,8 @@ MidiTimeAxisView::MidiTimeAxisView (PublicEditor& ed, Session& sess, boost::shar boost::shared_ptr diskstream = midi_track()->midi_diskstream(); // restore channel selector settings - _channel_selector.set_channel_mode(diskstream->get_channel_mode(), diskstream->get_channel_mask()); + _channel_selector.set_channel_mode(diskstream->get_channel_mode(), + diskstream->get_channel_mask()); _channel_selector.mode_changed.connect( mem_fun(*midi_track()->midi_diskstream(), &MidiDiskstream::set_channel_mode)); @@ -207,7 +208,8 @@ void MidiTimeAxisView::model_changed() _custom_device_mode_selector.clear_items(); - for (std::list::const_iterator i = device_modes.begin(); i != device_modes.end(); ++i) { + for (std::list::const_iterator i = device_modes.begin(); + i != device_modes.end(); ++i) { cerr << "found custom device mode " << *i << " thread_id: " << pthread_self() << endl; _custom_device_mode_selector.append_text(*i); } @@ -217,7 +219,8 @@ void MidiTimeAxisView::model_changed() void MidiTimeAxisView::custom_device_mode_changed() { - _midi_patch_settings_changed.emit(_model_selector.get_active_text(), _custom_device_mode_selector.get_active_text()); + _midi_patch_settings_changed.emit(_model_selector.get_active_text(), + _custom_device_mode_selector.get_active_text()); } MidiStreamView* @@ -556,6 +559,3 @@ MidiTimeAxisView::route_active_changed () } } - - - diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc index 543082dd50..7895a25a8c 100644 --- a/gtk2_ardour/route_time_axis.cc +++ b/gtk2_ardour/route_time_axis.cc @@ -350,7 +350,6 @@ RouteTimeAxisView::set_edit_group_from_menu (RouteGroup *eg) void RouteTimeAxisView::playlist_changed () - { label_view (); diff --git a/gtk2_ardour/streamview.cc b/gtk2_ardour/streamview.cc index 5810d10eaf..83cdc61afc 100644 --- a/gtk2_ardour/streamview.cc +++ b/gtk2_ardour/streamview.cc @@ -72,14 +72,21 @@ StreamView::StreamView (RouteTimeAxisView& tv, ArdourCanvas::Group* group) canvas_rect->property_outline_what() = (guint32) (0x2|0x8); // outline RHS and bottom - canvas_rect->signal_event().connect (bind (mem_fun (_trackview.editor(), &PublicEditor::canvas_stream_view_event), canvas_rect, &_trackview)); + canvas_rect->signal_event().connect (bind ( + mem_fun (_trackview.editor(), &PublicEditor::canvas_stream_view_event), + canvas_rect, &_trackview)); if (_trackview.is_track()) { - _trackview.track()->DiskstreamChanged.connect (mem_fun (*this, &StreamView::diskstream_changed)); - _trackview.session().TransportStateChange.connect (mem_fun (*this, &StreamView::transport_changed)); - _trackview.session().TransportLooped.connect (mem_fun (*this, &StreamView::transport_looped)); - _trackview.get_diskstream()->RecordEnableChanged.connect (mem_fun (*this, &StreamView::rec_enable_changed)); - _trackview.session().RecordStateChanged.connect (mem_fun (*this, &StreamView::sess_rec_enable_changed)); + _trackview.track()->DiskstreamChanged.connect ( + mem_fun (*this, &StreamView::diskstream_changed)); + _trackview.session().TransportStateChange.connect ( + mem_fun (*this, &StreamView::transport_changed)); + _trackview.session().TransportLooped.connect ( + mem_fun (*this, &StreamView::transport_looped)); + _trackview.get_diskstream()->RecordEnableChanged.connect ( + mem_fun (*this, &StreamView::rec_enable_changed)); + _trackview.session().RecordStateChanged.connect ( + mem_fun (*this, &StreamView::sess_rec_enable_changed)); } ColorsChanged.connect (mem_fun (*this, &StreamView::color_handler)); @@ -207,18 +214,9 @@ StreamView::display_diskstream (boost::shared_ptr ds) { playlist_change_connection.disconnect(); playlist_changed (ds); - playlist_change_connection = ds->PlaylistChanged.connect (bind (mem_fun (*this, &StreamView::playlist_changed), ds)); -} - -void -StreamView::playlist_modified_weak (boost::weak_ptr ds) -{ - boost::shared_ptr sp (ds.lock()); - if (!sp) { - return; - } - - playlist_modified (sp); + playlist_change_connection = ds->PlaylistChanged.connect (bind ( + mem_fun (*this, &StreamView::playlist_changed_weak), + boost::weak_ptr (ds))); } void @@ -278,6 +276,15 @@ StreamView::layer_regions() } } +void +StreamView::playlist_modified_weak (boost::weak_ptr ds) +{ + boost::shared_ptr sp (ds.lock()); + if (sp) { + playlist_modified (sp); + } +} + void StreamView::playlist_modified (boost::shared_ptr ds) { @@ -293,15 +300,26 @@ StreamView::playlist_modified (boost::shared_ptr ds) } } +void +StreamView::playlist_changed_weak (boost::weak_ptr ds) +{ + boost::shared_ptr sp (ds.lock()); + if (sp) { + playlist_changed (sp); + } +} + void StreamView::playlist_changed (boost::shared_ptr ds) { - /* XXX: binding to a shared_ptr, is this ok? */ - ENSURE_GUI_THREAD (bind (mem_fun (*this, &StreamView::playlist_changed), ds)); + ENSURE_GUI_THREAD (bind ( + mem_fun (*this, &StreamView::playlist_changed_weak), + boost::weak_ptr (ds))); /* disconnect from old playlist */ - for (vector::iterator i = playlist_connections.begin(); i != playlist_connections.end(); ++i) { + for (vector::iterator i = playlist_connections.begin(); + i != playlist_connections.end(); ++i) { (*i).disconnect(); } @@ -319,7 +337,9 @@ StreamView::playlist_changed (boost::shared_ptr ds) /* catch changes */ - playlist_connections.push_back (ds->playlist()->Modified.connect (bind (mem_fun (*this, &StreamView::playlist_modified_weak), ds))); + playlist_connections.push_back (ds->playlist()->Modified.connect (bind ( + mem_fun (*this, &StreamView::playlist_modified_weak), + ds))); } void @@ -328,7 +348,9 @@ StreamView::diskstream_changed () boost::shared_ptr t; if ((t = _trackview.track()) != 0) { - Gtkmm2ext::UI::instance()->call_slot (bind (mem_fun (*this, &StreamView::display_diskstream), t->diskstream())); + Gtkmm2ext::UI::instance()->call_slot (bind ( + mem_fun (*this, &StreamView::display_diskstream), + t->diskstream())); } else { Gtkmm2ext::UI::instance()->call_slot (mem_fun (*this, &StreamView::undisplay_diskstream)); } diff --git a/gtk2_ardour/streamview.h b/gtk2_ardour/streamview.h index 0cbb4447d5..16a637d674 100644 --- a/gtk2_ardour/streamview.h +++ b/gtk2_ardour/streamview.h @@ -126,6 +126,7 @@ protected: void diskstream_changed (); void layer_regions (); + virtual void playlist_changed_weak (boost::weak_ptr); virtual void playlist_changed (boost::shared_ptr); virtual void playlist_modified_weak (boost::weak_ptr); virtual void playlist_modified (boost::shared_ptr); diff --git a/libs/ardour/smf_source.cc b/libs/ardour/smf_source.cc index b43b628ce2..ab0c290191 100644 --- a/libs/ardour/smf_source.cc +++ b/libs/ardour/smf_source.cc @@ -612,7 +612,6 @@ SMFSource::load_model(bool lock, bool force_reload) } if (_model && !force_reload) { - cerr << _name << " not reloading model " << _model.get() << endl; return; } -- cgit v1.2.3