mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-04 04:39:33 +01:00
test another fix for solo-press-crashes
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3929 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
08c036568f
commit
5f88eeb157
2 changed files with 19 additions and 17 deletions
|
|
@ -56,6 +56,8 @@ Editor::cms_deleted ()
|
|||
void
|
||||
Editor::show_editor_mixer (bool yn)
|
||||
{
|
||||
boost::shared_ptr<ARDOUR::Route> r;
|
||||
|
||||
show_editor_mixer_when_tracks_arrive = false;
|
||||
|
||||
if (!session) {
|
||||
|
|
@ -64,27 +66,18 @@ Editor::show_editor_mixer (bool yn)
|
|||
|
||||
if (yn) {
|
||||
|
||||
if (current_mixer_strip == 0) {
|
||||
|
||||
current_mixer_strip = new MixerStrip (*ARDOUR_UI::instance()->the_mixer(),
|
||||
*session,
|
||||
false);
|
||||
current_mixer_strip->GoingAway.connect (mem_fun(*this, &Editor::cms_deleted));
|
||||
}
|
||||
|
||||
|
||||
if (selection->tracks.empty()) {
|
||||
|
||||
if (track_views.empty()) {
|
||||
show_editor_mixer_when_tracks_arrive = true;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
|
||||
AudioTimeAxisView* atv;
|
||||
|
||||
if ((atv = dynamic_cast<AudioTimeAxisView*> (*i)) != 0) {
|
||||
current_mixer_strip->set_route (atv->route());
|
||||
r = atv->route();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -97,11 +90,23 @@ Editor::show_editor_mixer (bool yn)
|
|||
AudioTimeAxisView* atv;
|
||||
|
||||
if ((atv = dynamic_cast<AudioTimeAxisView*> (*i)) != 0) {
|
||||
current_mixer_strip->set_route (atv->route());
|
||||
r = atv->route();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (r) {
|
||||
if (current_mixer_strip == 0) {
|
||||
|
||||
current_mixer_strip = new MixerStrip (*ARDOUR_UI::instance()->the_mixer(),
|
||||
*session,
|
||||
false);
|
||||
current_mixer_strip->GoingAway.connect (mem_fun(*this, &Editor::cms_deleted));
|
||||
}
|
||||
|
||||
current_mixer_strip->set_route (r);
|
||||
}
|
||||
|
||||
if (current_mixer_strip->get_parent() == 0) {
|
||||
current_mixer_strip->set_embedded (true);
|
||||
|
|
|
|||
|
|
@ -88,6 +88,8 @@ RouteUI::init ()
|
|||
rec_enable_button = manage (new BindableToggleButton (0, ""));
|
||||
rec_enable_button->set_name ("RecordEnableButton");
|
||||
rec_enable_button->set_self_managed (true);
|
||||
|
||||
_session.SoloChanged.connect (mem_fun(*this, &RouteUI::solo_changed_so_update_mute));
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -131,11 +133,6 @@ RouteUI::set_button_names (const char* mute, const char* solo, const char* rec)
|
|||
void
|
||||
RouteUI::set_route (boost::shared_ptr<Route> rp)
|
||||
{
|
||||
if (!_route) {
|
||||
/* first time it is set */
|
||||
_session.SoloChanged.connect (mem_fun(*this, &RouteUI::solo_changed_so_update_mute));
|
||||
}
|
||||
|
||||
reset ();
|
||||
|
||||
_route = rp;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue