From a612857eb6024f75f11094d09def4ccbe621b7b4 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 2 May 2007 13:09:03 +0000 Subject: [PATCH] make session restore work by using explicit data types when creating new playlists ... poses question - how did this ever compile before? git-svn-id: svn://localhost/ardour2/branches/midi@1774 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/editor_ops.cc | 16 +++++++--------- gtk2_ardour/gain_meter.cc | 3 +-- libs/ardour/audio_diskstream.cc | 4 ++-- libs/ardour/audio_track.cc | 2 +- libs/ardour/midi_diskstream.cc | 2 +- 5 files changed, 12 insertions(+), 15 deletions(-) diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 917f93243e..95e0b5d255 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -2823,21 +2823,19 @@ Editor::cut_copy_regions (CutCopyOp op) boost::shared_ptr r = (*x)->region(); boost::shared_ptr _xx; - + + assert (r != 0); + switch (op) { case Cut: - if (!r) break; - - _xx = RegionFactory::create ((*x)->region()); - npl->add_region (_xx, (*x)->region()->position() - first_position); - pl->remove_region (((*x)->region())); + _xx = RegionFactory::create (r); + npl->add_region (_xx, r->position() - first_position); + pl->remove_region (r); break; case Copy: - if (!r) break; - /* copy region before adding, so we're not putting same object into two different playlists */ - npl->add_region (RegionFactory::create ((*x)->region()), (*x)->region()->position() - first_position); + npl->add_region (RegionFactory::create (r, r->position() - first_position); break; case Clear: diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc index fa13234c46..303bbcb1a9 100644 --- a/gtk2_ardour/gain_meter.cc +++ b/gtk2_ardour/gain_meter.cc @@ -454,8 +454,7 @@ GainMeter::setup_meters () int GainMeter::get_gm_width () { - Gtk::Requisition sz; - hbox.size_request (sz); + Gtk::Requisition sz = hbox.size_request (); return sz.width; } diff --git a/libs/ardour/audio_diskstream.cc b/libs/ardour/audio_diskstream.cc index 4a4a4fa5c9..3b66d2a187 100644 --- a/libs/ardour/audio_diskstream.cc +++ b/libs/ardour/audio_diskstream.cc @@ -243,7 +243,7 @@ AudioDiskstream::find_and_use_playlist (const string& name) boost::shared_ptr playlist; if ((playlist = boost::dynamic_pointer_cast (_session.playlist_by_name (name))) == 0) { - playlist = boost::dynamic_pointer_cast (PlaylistFactory::create (_session, name)); + playlist = boost::dynamic_pointer_cast (PlaylistFactory::create (DataType::AUDIO, _session, name)); } if (!playlist) { @@ -280,7 +280,7 @@ AudioDiskstream::use_new_playlist () newname = Playlist::bump_name (_name, _session); } - if ((playlist = boost::dynamic_pointer_cast (PlaylistFactory::create (_session, newname, hidden()))) != 0) { + if ((playlist = boost::dynamic_pointer_cast (PlaylistFactory::create (DataType::AUDIO, _session, newname, hidden()))) != 0) { playlist->set_orig_diskstream_id (id()); return use_playlist (playlist); diff --git a/libs/ardour/audio_track.cc b/libs/ardour/audio_track.cc index 111bd9f4a9..45ea853df4 100644 --- a/libs/ardour/audio_track.cc +++ b/libs/ardour/audio_track.cc @@ -818,7 +818,7 @@ AudioTrack::freeze (InterThreadInfo& itt) } } - new_playlist = PlaylistFactory::create (_session, new_playlist_name, false); + new_playlist = PlaylistFactory::create (DataType::AUDIO, _session, new_playlist_name, false); region_name = new_playlist_name; /* create a new region from all filesources, keep it private */ diff --git a/libs/ardour/midi_diskstream.cc b/libs/ardour/midi_diskstream.cc index 06b75211f7..af4b18e3f7 100644 --- a/libs/ardour/midi_diskstream.cc +++ b/libs/ardour/midi_diskstream.cc @@ -222,7 +222,7 @@ MidiDiskstream::find_and_use_playlist (const string& name) boost::shared_ptr playlist; if ((playlist = boost::dynamic_pointer_cast (_session.playlist_by_name (name))) == 0) { - playlist = boost::dynamic_pointer_cast (PlaylistFactory::create (_session, name)); + playlist = boost::dynamic_pointer_cast (PlaylistFactory::create (DataType::MIDI, _session, name)); } if (!playlist) {