summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2006-08-16 01:19:06 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2006-08-16 01:19:06 +0000
commit1ae094813858a2b8cf5b08569edcb9b15d910729 (patch)
tree6480b5875c393dab24ee410c8d661590bb3c4ffb /gtk2_ardour
parentc5619a0f981161b441da1216de1f9c2e26190768 (diff)
RCU-ification of AudioEngine port list, and DiskStreams. not well tested, but basically functional. better to get this in now rather than later.
git-svn-id: svn://localhost/ardour2/trunk@828 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/ardour_ui.cc9
-rw-r--r--gtk2_ardour/ardour_ui.h2
-rw-r--r--gtk2_ardour/ardour_ui_dialogs.cc4
-rw-r--r--gtk2_ardour/audio_streamview.cc8
-rw-r--r--gtk2_ardour/audio_streamview.h2
-rw-r--r--gtk2_ardour/editor.cc8
-rw-r--r--gtk2_ardour/editor_audio_import.cc6
-rw-r--r--gtk2_ardour/editor_timefx.cc2
-rw-r--r--gtk2_ardour/playlist_selector.cc6
-rw-r--r--gtk2_ardour/plugin_selector.cc2
-rw-r--r--gtk2_ardour/route_time_axis.cc14
-rw-r--r--gtk2_ardour/route_ui.cc10
-rw-r--r--gtk2_ardour/route_ui.h2
-rw-r--r--gtk2_ardour/streamview.cc8
-rw-r--r--gtk2_ardour/streamview.h4
15 files changed, 37 insertions, 50 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index e5367d6280..bca27c7231 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -545,7 +545,7 @@ void
ARDOUR_UI::count_recenabled_diskstreams (Route& route)
{
Track* track = dynamic_cast<Track*>(&route);
- if (track && track->diskstream().record_enabled()) {
+ if (track && track->diskstream()->record_enabled()) {
rec_enabled_diskstreams++;
}
}
@@ -918,11 +918,6 @@ restart JACK with more ports."));
}
void
-ARDOUR_UI::diskstream_added (Diskstream* ds)
-{
-}
-
-void
ARDOUR_UI::do_transport_locate (jack_nframes_t new_position)
{
jack_nframes_t _preroll;
@@ -1172,7 +1167,7 @@ ARDOUR_UI::toggle_record_enable (uint32_t dstream)
Track* t;
if ((t = dynamic_cast<Track*>(r.get())) != 0) {
- t->diskstream().set_record_enabled (!t->diskstream().record_enabled());
+ t->diskstream()->set_record_enabled (!t->diskstream()->record_enabled());
}
}
if (session == 0) {
diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h
index 297c9c3c65..c8d0d70a7d 100644
--- a/gtk2_ardour/ardour_ui.h
+++ b/gtk2_ardour/ardour_ui.h
@@ -520,8 +520,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI
sigc::connection point_one_second_connection;
sigc::connection point_zero_one_second_connection;
- void diskstream_added (ARDOUR::Diskstream*);
-
gint session_menu (GdkEventButton *);
bool _will_create_new_session_automatically;
diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc
index 25f3068a81..c90480c1dd 100644
--- a/gtk2_ardour/ardour_ui_dialogs.cc
+++ b/gtk2_ardour/ardour_ui_dialogs.cc
@@ -76,10 +76,6 @@ ARDOUR_UI::connect_to_session (Session *s)
rec_button.set_sensitive (true);
shuttle_box.set_sensitive (true);
- if (session->n_diskstreams() == 0) {
- session->DiskstreamAdded.connect (mem_fun(*this, &ARDOUR_UI::diskstream_added));
- }
-
if (connection_editor) {
connection_editor->set_session (s);
}
diff --git a/gtk2_ardour/audio_streamview.cc b/gtk2_ardour/audio_streamview.cc
index 82349947c6..d650df1563 100644
--- a/gtk2_ardour/audio_streamview.cc
+++ b/gtk2_ardour/audio_streamview.cc
@@ -225,7 +225,7 @@ AudioStreamView::playlist_modified ()
}
void
-AudioStreamView::playlist_changed (Diskstream *ds)
+AudioStreamView::playlist_changed (boost::shared_ptr<Diskstream> ds)
{
ENSURE_GUI_THREAD (bind (mem_fun (*this, &AudioStreamView::playlist_changed), ds));
@@ -399,7 +399,7 @@ AudioStreamView::setup_rec_box ()
peak_ready_connections.clear();
// FIXME
- AudioDiskstream* ads = dynamic_cast<AudioDiskstream*>(_trackview.get_diskstream());
+ boost::shared_ptr<AudioDiskstream> ads = boost::dynamic_pointer_cast<AudioDiskstream>(_trackview.get_diskstream());
assert(ads);
for (uint32_t n=0; n < ads->n_channels(); ++n) {
@@ -431,8 +431,8 @@ AudioStreamView::setup_rec_box ()
AudioTrack* at;
at = _trackview.audio_track(); /* we know what it is already */
- AudioDiskstream& ds = at->audio_diskstream();
- jack_nframes_t frame_pos = ds.current_capture_start ();
+ boost::shared_ptr<AudioDiskstream> ds = at->audio_diskstream();
+ jack_nframes_t frame_pos = ds->current_capture_start ();
gdouble xstart = _trackview.editor.frame_to_pixel (frame_pos);
gdouble xend;
uint32_t fill_color;
diff --git a/gtk2_ardour/audio_streamview.h b/gtk2_ardour/audio_streamview.h
index 05ce8125f6..edda221bbd 100644
--- a/gtk2_ardour/audio_streamview.h
+++ b/gtk2_ardour/audio_streamview.h
@@ -87,7 +87,7 @@ class AudioStreamView : public StreamView
void undisplay_diskstream ();
void redisplay_diskstream ();
void playlist_modified ();
- void playlist_changed (ARDOUR::Diskstream *ds);
+ void playlist_changed (boost::shared_ptr<ARDOUR::Diskstream>);
void add_crossfade (ARDOUR::Crossfade*);
void remove_crossfade (ARDOUR::Crossfade*);
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 050ec6be90..2be8b2d73b 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -1596,7 +1596,7 @@ Editor::build_track_region_context_menu (jack_nframes_t frame)
AudioTimeAxisView* atv = dynamic_cast<AudioTimeAxisView*> (clicked_trackview);
if (atv) {
- Diskstream* ds;
+ boost::shared_ptr<Diskstream> ds;
Playlist* pl;
if ((ds = atv->get_diskstream()) && ((pl = ds->playlist()))) {
@@ -1623,7 +1623,7 @@ Editor::build_track_crossfade_context_menu (jack_nframes_t frame)
AudioTimeAxisView* atv = dynamic_cast<AudioTimeAxisView*> (clicked_trackview);
if (atv) {
- Diskstream* ds;
+ boost::shared_ptr<Diskstream> ds;
Playlist* pl;
AudioPlaylist* apl;
@@ -3020,7 +3020,7 @@ Editor::mapped_set_selected_regionview_from_click (RouteTimeAxisView& tv, uint32
Playlist* pl;
vector<Region*> results;
RegionView* marv;
- Diskstream* ds;
+ boost::shared_ptr<Diskstream> ds;
if ((ds = tv.get_diskstream()) == 0) {
/* bus */
@@ -3246,7 +3246,7 @@ Editor::set_selected_regionview_from_region_list (Region& region, Selection::Ope
Playlist* pl;
vector<Region*> results;
RegionView* marv;
- Diskstream* ds;
+ boost::shared_ptr<Diskstream> ds;
if ((ds = tatv->get_diskstream()) == 0) {
/* bus */
diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc
index 8887135374..b6fdefa4d3 100644
--- a/gtk2_ardour/editor_audio_import.cc
+++ b/gtk2_ardour/editor_audio_import.cc
@@ -317,7 +317,7 @@ Editor::finish_bringing_in_audio (AudioRegion& region, uint32_t in_chans, uint32
case ImportToTrack:
if (track) {
- Playlist* playlist = track->diskstream().playlist();
+ Playlist* playlist = track->diskstream()->playlist();
AudioRegion* copy = new AudioRegion (region);
begin_reversible_command (_("insert sndfile"));
@@ -334,7 +334,7 @@ Editor::finish_bringing_in_audio (AudioRegion& region, uint32_t in_chans, uint32
{
boost::shared_ptr<AudioTrack> at (session->new_audio_track (in_chans, out_chans, Normal));
copy = new AudioRegion (region);
- at->diskstream().playlist()->add_region (*copy, pos);
+ at->diskstream()->playlist()->add_region (*copy, pos);
break;
}
@@ -342,7 +342,7 @@ Editor::finish_bringing_in_audio (AudioRegion& region, uint32_t in_chans, uint32
{
boost::shared_ptr<AudioTrack> at (session->new_audio_track (in_chans, out_chans, Destructive));
copy = new AudioRegion (region);
- at->diskstream().playlist()->add_region (*copy, pos);
+ at->diskstream()->playlist()->add_region (*copy, pos);
break;
}
}
diff --git a/gtk2_ardour/editor_timefx.cc b/gtk2_ardour/editor_timefx.cc
index a3288ea8d0..caa9698b8c 100644
--- a/gtk2_ardour/editor_timefx.cc
+++ b/gtk2_ardour/editor_timefx.cc
@@ -188,7 +188,7 @@ Editor::do_timestretch (TimeStretchDialog& dialog)
continue;
}
- if ((playlist = t->diskstream().playlist()) == 0) {
+ if ((playlist = t->diskstream()->playlist()) == 0) {
i = tmp;
continue;
}
diff --git a/gtk2_ardour/playlist_selector.cc b/gtk2_ardour/playlist_selector.cc
index 8eaac7cb9d..68227d193c 100644
--- a/gtk2_ardour/playlist_selector.cc
+++ b/gtk2_ardour/playlist_selector.cc
@@ -90,7 +90,7 @@ void
PlaylistSelector::show_for (RouteUI* ruix)
{
vector<const char*> item;
- Diskstream* this_ds;
+ boost::shared_ptr<Diskstream> this_ds;
string str;
rui = ruix;
@@ -116,7 +116,7 @@ PlaylistSelector::show_for (RouteUI* ruix)
for (DSPL_Map::iterator x = dspl_map.begin(); x != dspl_map.end(); ++x) {
- Diskstream* ds = session->diskstream_by_id (x->first);
+ boost::shared_ptr<Diskstream> ds = session->diskstream_by_id (x->first);
if (ds == 0) {
continue;
@@ -243,7 +243,7 @@ PlaylistSelector::selection_changed ()
return;
}
- at->diskstream().use_playlist (apl);
+ at->diskstream()->use_playlist (apl);
hide ();
}
diff --git a/gtk2_ardour/plugin_selector.cc b/gtk2_ardour/plugin_selector.cc
index 2ebaaae100..6c72767b11 100644
--- a/gtk2_ardour/plugin_selector.cc
+++ b/gtk2_ardour/plugin_selector.cc
@@ -226,7 +226,7 @@ PluginSelector::set_correct_focus()
au_display.grab_focus();
return;
}
-#endif;
+#endif
}
void
diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc
index 05f832700e..e7a6df2f27 100644
--- a/gtk2_ardour/route_time_axis.cc
+++ b/gtk2_ardour/route_time_axis.cc
@@ -728,7 +728,7 @@ RouteTimeAxisView::rename_current_playlist ()
ArdourPrompter prompter (true);
string name;
- Diskstream *const ds = get_diskstream();
+ boost::shared_ptr<Diskstream> ds = get_diskstream();
if (!ds || ds->destructive())
return;
@@ -759,7 +759,7 @@ RouteTimeAxisView::use_copy_playlist (bool prompt)
{
string name;
- Diskstream *const ds = get_diskstream();
+ boost::shared_ptr<Diskstream> ds = get_diskstream();
if (!ds || ds->destructive())
return;
@@ -800,7 +800,7 @@ RouteTimeAxisView::use_new_playlist (bool prompt)
{
string name;
- Diskstream *const ds = get_diskstream();
+ boost::shared_ptr<Diskstream> ds = get_diskstream();
if (!ds || ds->destructive())
return;
@@ -838,7 +838,7 @@ RouteTimeAxisView::use_new_playlist (bool prompt)
void
RouteTimeAxisView::clear_playlist ()
{
- Diskstream *const ds = get_diskstream();
+ boost::shared_ptr<Diskstream> ds = get_diskstream();
if (!ds || ds->destructive())
return;
@@ -963,7 +963,7 @@ RouteTimeAxisView::name() const
Playlist *
RouteTimeAxisView::playlist () const
{
- Diskstream *ds;
+ boost::shared_ptr<Diskstream> ds;
if ((ds = get_diskstream()) != 0) {
return ds->playlist();
@@ -1013,7 +1013,7 @@ RouteTimeAxisView::hide_click ()
Region*
RouteTimeAxisView::find_next_region (jack_nframes_t pos, RegionPoint point, int32_t dir)
{
- Diskstream *stream;
+ boost::shared_ptr<Diskstream> stream;
Playlist *playlist;
if ((stream = get_diskstream()) != 0 && (playlist = stream->playlist()) != 0) {
@@ -1027,7 +1027,7 @@ bool
RouteTimeAxisView::cut_copy_clear (Selection& selection, CutCopyOp op)
{
Playlist* what_we_got;
- Diskstream* ds = get_diskstream();
+ boost::shared_ptr<Diskstream> ds = get_diskstream();
Playlist* playlist;
bool ret = false;
diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc
index 998385f66b..b2fdcaf7d4 100644
--- a/gtk2_ardour/route_ui.cc
+++ b/gtk2_ardour/route_ui.cc
@@ -74,7 +74,7 @@ RouteUI::RouteUI (boost::shared_ptr<ARDOUR::Route> rt, ARDOUR::Session& sess, co
if (is_track()) {
boost::shared_ptr<Track> t = boost::dynamic_pointer_cast<Track>(_route);
- t->diskstream().RecordEnableChanged.connect (mem_fun (*this, &RouteUI::route_rec_enable_changed));
+ t->diskstream()->RecordEnableChanged.connect (mem_fun (*this, &RouteUI::route_rec_enable_changed));
_session.RecordStateChanged.connect (mem_fun (*this, &RouteUI::session_rec_enable_changed));
@@ -733,7 +733,7 @@ void
RouteUI::route_removed ()
{
ENSURE_GUI_THREAD(mem_fun (*this, &RouteUI::route_removed));
-
+ cerr << "Route UI @ " << this << " destroyed by impending end of route\n";
delete this;
}
@@ -905,15 +905,15 @@ RouteUI::audio_track() const
return dynamic_cast<AudioTrack*>(_route.get());
}
-Diskstream*
+boost::shared_ptr<Diskstream>
RouteUI::get_diskstream () const
{
boost::shared_ptr<Track> t;
if ((t = boost::dynamic_pointer_cast<Track>(_route)) != 0) {
- return &t->diskstream();
+ return t->diskstream();
} else {
- return 0;
+ return boost::shared_ptr<Diskstream> ((Diskstream*) 0);
}
}
diff --git a/gtk2_ardour/route_ui.h b/gtk2_ardour/route_ui.h
index 7415eddad6..8a257028e9 100644
--- a/gtk2_ardour/route_ui.h
+++ b/gtk2_ardour/route_ui.h
@@ -57,7 +57,7 @@ class RouteUI : public virtual AxisView
ARDOUR::Track* track() const;
ARDOUR::AudioTrack* audio_track() const;
- ARDOUR::Diskstream* get_diskstream() const;
+ boost::shared_ptr<ARDOUR::Diskstream> get_diskstream() const;
string name() const;
diff --git a/gtk2_ardour/streamview.cc b/gtk2_ardour/streamview.cc
index d1d163d7a2..733e27c4ab 100644
--- a/gtk2_ardour/streamview.cc
+++ b/gtk2_ardour/streamview.cc
@@ -206,7 +206,7 @@ StreamView::undisplay_diskstream ()
}
void
-StreamView::display_diskstream (Diskstream *ds)
+StreamView::display_diskstream (boost::shared_ptr<Diskstream> ds)
{
playlist_change_connection.disconnect();
playlist_changed (ds);
@@ -224,7 +224,7 @@ StreamView::playlist_modified ()
}
void
-StreamView::playlist_changed (Diskstream *ds)
+StreamView::playlist_changed (boost::shared_ptr<Diskstream> ds)
{
ENSURE_GUI_THREAD (bind (mem_fun (*this, &StreamView::playlist_changed), ds));
@@ -263,9 +263,7 @@ StreamView::diskstream_changed ()
Track *t;
if ((t = _trackview.track()) != 0) {
- Diskstream& ds = t->diskstream();
- /* XXX grrr: when will SigC++ allow me to bind references? */
- Gtkmm2ext::UI::instance()->call_slot (bind (mem_fun (*this, &StreamView::display_diskstream), &ds));
+ 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 5a0e10974f..8f7fb416be 100644
--- a/gtk2_ardour/streamview.h
+++ b/gtk2_ardour/streamview.h
@@ -111,13 +111,13 @@ protected:
virtual void remove_region_view (ARDOUR::Region* );
void remove_rec_region (ARDOUR::Region*);
- void display_diskstream (ARDOUR::Diskstream* );
+ void display_diskstream (boost::shared_ptr<ARDOUR::Diskstream>);
virtual void undisplay_diskstream ();
virtual void redisplay_diskstream () = 0;
void diskstream_changed ();
void playlist_state_changed (ARDOUR::Change);
- virtual void playlist_changed (ARDOUR::Diskstream* );
+ virtual void playlist_changed (boost::shared_ptr<ARDOUR::Diskstream>);
virtual void playlist_modified ();
virtual void color_handler (ColorID, uint32_t) = 0;