add new editor actions for solo, mute, solo-isolate toggle (of selected tracks) for use by MIDI bindings

git-svn-id: svn://localhost/ardour2/branches/3.0@9990 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2011-08-14 16:01:07 +00:00
parent 12d1da30d2
commit bd1d705498
4 changed files with 64 additions and 0 deletions

View File

@ -1081,6 +1081,9 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
void toggle_region_lock ();
void toggle_opaque_region ();
void toggle_record_enable ();
void toggle_solo ();
void toggle_solo_isolate ();
void toggle_mute ();
void toggle_region_lock_style ();
void raise_region ();
void raise_region_to_top ();

View File

@ -194,6 +194,12 @@ Editor::register_actions ()
act = reg_sens (editor_actions, "track-record-enable-toggle", _("Toggle Record Enable"), sigc::mem_fun(*this, &Editor::toggle_record_enable));
ActionManager::track_selection_sensitive_actions.push_back (act);
act = reg_sens (editor_actions, "track-solo-toggle", _("Toggle Solo"), sigc::mem_fun(*this, &Editor::toggle_solo));
ActionManager::track_selection_sensitive_actions.push_back (act);
act = reg_sens (editor_actions, "track-mute-toggle", _("Toggle Mute"), sigc::mem_fun(*this, &Editor::toggle_mute));
ActionManager::track_selection_sensitive_actions.push_back (act);
act = reg_sens (editor_actions, "track-solo-isolate-toggle", _("Toggle Solo Isolate"), sigc::mem_fun(*this, &Editor::toggle_solo_isolate));
ActionManager::track_selection_sensitive_actions.push_back (act);
for (int i = 1; i <= 12; ++i) {
string const a = string_compose (X_("save-visual-state-%1"), i);

View File

@ -4755,6 +4755,60 @@ Editor::toggle_record_enable ()
}
}
void
Editor::toggle_solo ()
{
bool new_state = false;
bool first = true;
boost::shared_ptr<RouteList> rl (new RouteList);
for (TrackSelection::iterator i = selection->tracks.begin(); i != selection->tracks.end(); ++i) {
RouteTimeAxisView *rtav = dynamic_cast<RouteTimeAxisView *>(*i);
if (!rtav) {
continue;
}
if (first) {
new_state = !rtav->route()->soloed ();
first = false;
}
rl->push_back (rtav->route());
}
_session->set_solo (rl, new_state, Session::rt_cleanup, true);
}
void
Editor::toggle_mute ()
{
bool new_state = false;
bool first = true;
boost::shared_ptr<RouteList> rl (new RouteList);
for (TrackSelection::iterator i = selection->tracks.begin(); i != selection->tracks.end(); ++i) {
RouteTimeAxisView *rtav = dynamic_cast<RouteTimeAxisView *>(*i);
if (!rtav) {
continue;
}
if (first) {
new_state = !rtav->route()->soloed ();
first = false;
}
rl->push_back (rtav->route());
}
_session->set_mute (rl, new_state, Session::rt_cleanup, true);
}
void
Editor::toggle_solo_isolate ()
{
}
void
Editor::set_fade_length (bool in)

View File

@ -180,6 +180,7 @@ This mode provides many different operations on both regions and control points,
@rop|Region/split-region|s|split
@sess|Common/Save|<@PRIMARY@>s|save session
@sess|Main/Snapshot|<@PRIMARY@><@TERTIARY@>s|snapshot session
@trans|Editor/track-solo-toggle|<@SECONDARY@>s|toggle track solo status
@rop|Region/duplicate-region|d|duplicate region (once)
@rop|Region/multi-duplicate-region|<@TERTIARY@>d|duplicate region (multi)
@select|Editor/select-all-in-punch-range|<@PRIMARY@>d|select all in punch range