MCP: Patch from Rodrigo that:

* implements Metering on/off through Button::Read as per Seablade's suggestion. I choose this button as it's the "Show meters" button in Traktion;
    * removes redundant code from Meter::update_transport_rolling();
    * renames Meter::update_transport_rolling() to Meter::notify_metering_state_changed();
    * renamed Surface::notify_transport_state_changed() to Surface::notify_metering_state_changed();
    * renamed Strip::notify_transport_state_changed() to Strip::notify_metering_state_changed();
    * created MackieControlProtocol::notify_metering_state_changed() and made MackieControlProtocol::notify_transport_state_changed() use it;
    * implemented turning off of timecode display and two char display in Surface::zero_all ();
    * implemented master fader zeroing in Surface::zero_all ();
    * calling Surfaces->zero_all() at MackieControlProtocol destructor;
    * implemented restore of 2nd LCD line content after metering being active.



git-svn-id: svn://localhost/ardour2/branches/3.0@12520 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2012-06-01 12:56:20 +00:00
parent bc3aea6f93
commit ba5e71b50f
9 changed files with 80 additions and 73 deletions

View file

@ -107,6 +107,7 @@ MackieControlProtocol::MackieControlProtocol (Session& session)
, _modifier_state (0)
, _ipmidi_base (MIDI::IPMIDIPort::lowest_ipmidi_port_default)
, needs_ipmidi_restart (false)
, _metering_active (true)
{
DEBUG_TRACE (DEBUG::MackieControl, "MackieControlProtocol::MackieControlProtocol\n");
@ -123,7 +124,11 @@ MackieControlProtocol::MackieControlProtocol (Session& session)
MackieControlProtocol::~MackieControlProtocol()
{
DEBUG_TRACE (DEBUG::MackieControl, "MackieControlProtocol::~MackieControlProtocol\n");
for (Surfaces::iterator s = surfaces.begin(); s != surfaces.end(); ++s) {
(*s)->zero_all ();
}
drop_connections ();
tear_down_gui ();
@ -880,14 +885,20 @@ MackieControlProtocol::notify_transport_state_changed()
update_global_button (Button::Stop, !session->transport_rolling());
update_global_button (Button::Rewind, session->transport_speed() < 0.0);
update_global_button (Button::Ffwd, session->transport_speed() > 1.0);
for (Surfaces::iterator s = surfaces.begin(); s != surfaces.end(); ++s) {
(*s)->notify_transport_state_changed ();
}
notify_metering_state_changed ();
_transport_previously_rolling = session->transport_rolling();
}
void
MackieControlProtocol::notify_metering_state_changed()
{
for (Surfaces::iterator s = surfaces.begin(); s != surfaces.end(); ++s) {
(*s)->notify_metering_state_changed ();
}
}
void
MackieControlProtocol::notify_record_state_changed ()
{