MCU: Update view modes for Cue, Foldback, and VCA

This changes the function of the Inputs, Instruments, and Outputs
buttons as follows:

Inputs = Cue Tracks
Instruments = VCA
Outputs = Foldback Busses
This commit is contained in:
Todd Naugle 2023-03-10 16:35:29 -06:00
parent cc359b973f
commit 0b50bec6f4
4 changed files with 42 additions and 20 deletions

View File

@ -65,6 +65,7 @@
#include "ardour/track.h"
#include "ardour/types.h"
#include "ardour/audioengine.h"
#include "ardour/vca.h"
#include "ardour/vca_manager.h"
#include "temporal/tempo.h"
@ -281,7 +282,7 @@ MackieControlProtocol::get_sorted_stripables()
// fetch all stripables
StripableList stripables;
session->get_stripables (stripables);
session->get_stripables (stripables, PresentationInfo::AllStripables);
// sort in presentation order, and exclude master, control and hidden stripables
// and any stripables that are already set.
@ -319,7 +320,7 @@ MackieControlProtocol::get_sorted_stripables()
}
#endif
} else {
if (!is_track(s) && !s->presentation_info().hidden()) {
if (!is_track (s) && !is_vca (s) && !is_foldback_bus (s) && !s->presentation_info().hidden()) {
sorted.push_back (s);
}
}
@ -331,17 +332,16 @@ MackieControlProtocol::get_sorted_stripables()
break;
case Auxes: // in ardour, for now aux and buss are same. for mixbus, "Busses" are mixbuses, "Auxes" are ardour buses
#ifdef MIXBUS
if (!s->mixbus() && !is_track(s) && !s->presentation_info().hidden())
if (!s->mixbus() && !is_track(s) && !is_vca (s) && !is_foldback_bus (s) && !s->presentation_info().hidden())
#else
if (!is_track(s) && !s->presentation_info().hidden())
if (!is_track (s) && !is_vca (s) && !is_foldback_bus (s) && !s->presentation_info().hidden())
#endif
{
sorted.push_back (s);
}
break;
case Outputs: // Show all the tracks we have hidden
if (s->presentation_info().hidden()) {
// maybe separate groups
case Outputs:
if (is_foldback_bus (s) && !s->presentation_info().hidden()) {
sorted.push_back (s);
}
break;
@ -351,12 +351,14 @@ MackieControlProtocol::get_sorted_stripables()
}
break;
case AudioInstr:
if (has_instrument (s)){
if (is_vca (s)){
sorted.push_back (s);
}
break;
case Inputs:
// nothing to do right now
if (is_trigger_track (s) && !s->presentation_info().hidden()){
sorted.push_back (s);
}
break;
}
}
@ -2362,6 +2364,25 @@ MackieControlProtocol::is_midi_track (boost::shared_ptr<Stripable> r) const
return boost::dynamic_pointer_cast<MidiTrack>(r) != 0;
}
bool
MackieControlProtocol::is_trigger_track (boost::shared_ptr<Stripable> r) const
{
boost::shared_ptr<Track> trk = boost::dynamic_pointer_cast<Track>(r);
return (trk && (r)->presentation_info ().trigger_track ());
}
bool
MackieControlProtocol::is_foldback_bus (boost::shared_ptr<Stripable> r) const
{
return ((r)->presentation_info ().flags () & PresentationInfo::FoldbackBus);
}
bool
MackieControlProtocol::is_vca (boost::shared_ptr<Stripable> r) const
{
return boost::dynamic_pointer_cast<VCA>(r) != 0;
}
bool
MackieControlProtocol::has_instrument (boost::shared_ptr<Stripable> r) const
{

View File

@ -135,6 +135,9 @@ class MackieControlProtocol
bool is_track (boost::shared_ptr<ARDOUR::Stripable>) const;
bool is_audio_track (boost::shared_ptr<ARDOUR::Stripable>) const;
bool is_midi_track (boost::shared_ptr<ARDOUR::Stripable>) const;
bool is_trigger_track (boost::shared_ptr<ARDOUR::Stripable>) const;
bool is_foldback_bus (boost::shared_ptr<ARDOUR::Stripable>) const;
bool is_vca (boost::shared_ptr<ARDOUR::Stripable>) const;
bool has_instrument (boost::shared_ptr<ARDOUR::Stripable>) const;
bool is_mapped (boost::shared_ptr<ARDOUR::Stripable>) const;
boost::shared_ptr<ARDOUR::Stripable> first_selected_stripable () const;

View File

@ -1050,14 +1050,12 @@ MackieControlProtocol::miditracks_release (Mackie::Button&)
Mackie::LedState
MackieControlProtocol::inputs_press (Mackie::Button&)
{
#ifdef MIXBUS
set_view_mode (Mixer); //in Mixbus, this is the same as Global View (avoid dead buttons)
#endif
return none;
}
Mackie::LedState
MackieControlProtocol::inputs_release (Mackie::Button&)
{
set_view_mode (Inputs);
return none;
}
Mackie::LedState
@ -1074,18 +1072,13 @@ MackieControlProtocol::audiotracks_release (Mackie::Button&)
Mackie::LedState
MackieControlProtocol::audioinstruments_press (Mackie::Button& b)
{
#ifdef MIXBUS
set_view_mode (MidiTracks); //in Mixbus, we do the same thing as MIDI Tracks ( aviod dead buttons )
#endif
return none;
}
Mackie::LedState
MackieControlProtocol::audioinstruments_release (Mackie::Button& b)
{
#ifndef MIXBUS
set_view_mode (AudioInstr);
#endif
return none;
}

View File

@ -1356,9 +1356,9 @@ Surface::update_view_mode_display (bool with_helpful_text)
text = _("Auxes");
break;
case MackieControlProtocol::Outputs:
show_two_char_display ("HI");
show_two_char_display ("Fb");
id = Button::Outputs;
text = _("Hidden Tracks");
text = _("Foldback Busses");
break;
case MackieControlProtocol::Selected:
show_two_char_display ("SE");
@ -1368,7 +1368,12 @@ Surface::update_view_mode_display (bool with_helpful_text)
case MackieControlProtocol::AudioInstr:
show_two_char_display ("IS");
id = Button::AudioInstruments;
text = _("Instruments");
text = _("VCAs");
break;
case MackieControlProtocol::Inputs:
show_two_char_display ("CU");
id = Button::Inputs;
text = _("Cue Tracks");
break;
default:
break;