diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index b058001c5e..5295337c5d 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -709,6 +709,8 @@ Editor::Editor () ControlProtocol::ZoomToSession.connect (*this, invalidator (*this), boost::bind (&Editor::temporal_zoom_session, this), gui_context()); ControlProtocol::ZoomIn.connect (*this, invalidator (*this), boost::bind (&Editor::temporal_zoom_step, this, false), gui_context()); ControlProtocol::ZoomOut.connect (*this, invalidator (*this), boost::bind (&Editor::temporal_zoom_step, this, true), gui_context()); + ControlProtocol::Undo.connect (*this, invalidator (*this), boost::bind (&Editor::undo, this, true), gui_context()); + ControlProtocol::Redo.connect (*this, invalidator (*this), boost::bind (&Editor::redo, this, true), gui_context()); ControlProtocol::ScrollTimeline.connect (*this, invalidator (*this), ui_bind (&Editor::control_scroll, this, _1), gui_context()); ControlProtocol::SelectByRID.connect (*this, invalidator (*this), ui_bind (&Editor::control_select, this, _1), gui_context()); BasicUI::AccessAction.connect (*this, invalidator (*this), ui_bind (&Editor::access_action, this, _1, _2), gui_context()); diff --git a/libs/surfaces/control_protocol/control_protocol.cc b/libs/surfaces/control_protocol/control_protocol.cc index 983208343a..bbe4cea350 100644 --- a/libs/surfaces/control_protocol/control_protocol.cc +++ b/libs/surfaces/control_protocol/control_protocol.cc @@ -35,6 +35,8 @@ Signal0 ControlProtocol::ZoomToSession; Signal0 ControlProtocol::ZoomOut; Signal0 ControlProtocol::ZoomIn; Signal0 ControlProtocol::Enter; +Signal0 ControlProtocol::Undo; +Signal0 ControlProtocol::Redo; Signal1 ControlProtocol::ScrollTimeline; Signal1 ControlProtocol::SelectByRID; diff --git a/libs/surfaces/control_protocol/control_protocol/control_protocol.h b/libs/surfaces/control_protocol/control_protocol/control_protocol.h index c05e7e291a..c6547b0974 100644 --- a/libs/surfaces/control_protocol/control_protocol/control_protocol.h +++ b/libs/surfaces/control_protocol/control_protocol/control_protocol.h @@ -60,6 +60,8 @@ class ControlProtocol : virtual public sigc::trackable, public PBD::Stateful, pu static PBD::Signal0 ZoomIn; static PBD::Signal0 ZoomOut; static PBD::Signal0 Enter; + static PBD::Signal0 Undo; + static PBD::Signal0 Redo; static PBD::Signal1 ScrollTimeline; static PBD::Signal1 SelectByRID; diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc index dedd3332a8..3410eeb29f 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.cc +++ b/libs/surfaces/mackie/mackie_control_protocol.cc @@ -1720,6 +1720,32 @@ MackieControlProtocol::scrub_release (Mackie::Button &) ); } +LedState +MackieControlProtocol::undo_press (Button&) +{ + Undo(); /* EMIT SIGNAL */ + return off; +} + +LedState +MackieControlProtocol::undo_release (Button&) +{ + return off; +} + +LedState +MackieControlProtocol::redo_press (Button&) +{ + Redo(); /* EMIT SIGNAL */ + return off; +} + +LedState +MackieControlProtocol::redo_release (Button&) +{ + return off; +} + LedState MackieControlProtocol::drop_press (Button &) { diff --git a/libs/surfaces/mackie/mackie_control_protocol.h b/libs/surfaces/mackie/mackie_control_protocol.h index 3825262ded..70e1dfd364 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.h +++ b/libs/surfaces/mackie/mackie_control_protocol.h @@ -196,6 +196,10 @@ class MackieControlProtocol Mackie::LedState zoom_release(Mackie::Button &); Mackie::LedState scrub_press(Mackie::Button &); Mackie::LedState scrub_release(Mackie::Button &); + Mackie::LedState undo_press (Mackie::Button &); + Mackie::LedState undo_release (Mackie::Button &); + Mackie::LedState redo_press (Mackie::Button &); + Mackie::LedState redo_release (Mackie::Button &); /* unimplemented button handlers */ @@ -261,14 +265,10 @@ class MackieControlProtocol Mackie::LedState on_release (Mackie::Button &) { return Mackie::off; } Mackie::LedState rec_ready_press (Mackie::Button &) { return Mackie::off; } Mackie::LedState rec_ready_release (Mackie::Button &) { return Mackie::off; } - Mackie::LedState undo_press (Mackie::Button &) { return Mackie::off; } - Mackie::LedState undo_release (Mackie::Button &) { return Mackie::off; } Mackie::LedState snapshot_press (Mackie::Button &) { return Mackie::off; } Mackie::LedState snapshot_release (Mackie::Button &) { return Mackie::off; } Mackie::LedState touch_press (Mackie::Button &) { return Mackie::off; } Mackie::LedState touch_release (Mackie::Button &) { return Mackie::off; } - Mackie::LedState redo_press (Mackie::Button &) { return Mackie::off; } - Mackie::LedState redo_release (Mackie::Button &) { return Mackie::off; } Mackie::LedState enter_press (Mackie::Button &) { return Mackie::off; } Mackie::LedState enter_release (Mackie::Button &) { return Mackie::off; } Mackie::LedState cancel_press (Mackie::Button &) { return Mackie::off; }