MCP: make rightward bank shift work, and add a flag for scrub mode; more code rearrangement
git-svn-id: svn://localhost/ardour2/branches/3.0@11860 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
@@ -106,6 +106,7 @@ MackieControlProtocol::MackieControlProtocol (Session& session)
|
||||
, _output_bundle (new ARDOUR::Bundle (_("Mackie Control Out"), false))
|
||||
, _gui (0)
|
||||
, _zoom_mode (false)
|
||||
, _scrub_mode (false)
|
||||
, _current_selected_track (-1)
|
||||
{
|
||||
DEBUG_TRACE (DEBUG::MackieControl, "MackieControlProtocol::MackieControlProtocol\n");
|
||||
@@ -1302,119 +1303,6 @@ jog_wheel_state_display (JogWheel::State state, SurfacePort & port)
|
||||
}
|
||||
}
|
||||
|
||||
Mackie::LedState
|
||||
MackieControlProtocol::zoom_press (Mackie::Button &)
|
||||
{
|
||||
_zoom_mode = !_zoom_mode;
|
||||
return (_zoom_mode ? on : off);
|
||||
|
||||
}
|
||||
|
||||
Mackie::LedState
|
||||
MackieControlProtocol::zoom_release (Mackie::Button &)
|
||||
{
|
||||
return off;
|
||||
}
|
||||
|
||||
Mackie::LedState
|
||||
MackieControlProtocol::scrub_press (Mackie::Button &)
|
||||
{
|
||||
_jog_wheel.scrub_state_cycle();
|
||||
update_global_button ("zoom", _jog_wheel.jog_wheel_state() == JogWheel::zoom);
|
||||
jog_wheel_state_display (_jog_wheel.jog_wheel_state(), mcu_port());
|
||||
return (
|
||||
_jog_wheel.jog_wheel_state() == JogWheel::scrub
|
||||
||
|
||||
_jog_wheel.jog_wheel_state() == JogWheel::shuttle
|
||||
);
|
||||
}
|
||||
|
||||
Mackie::LedState
|
||||
MackieControlProtocol::scrub_release (Mackie::Button &)
|
||||
{
|
||||
return (
|
||||
_jog_wheel.jog_wheel_state() == JogWheel::scrub
|
||||
||
|
||||
_jog_wheel.jog_wheel_state() == JogWheel::shuttle
|
||||
);
|
||||
}
|
||||
|
||||
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 &)
|
||||
{
|
||||
session->remove_last_capture();
|
||||
return on;
|
||||
}
|
||||
|
||||
LedState
|
||||
MackieControlProtocol::drop_release (Button &)
|
||||
{
|
||||
return off;
|
||||
}
|
||||
|
||||
LedState
|
||||
MackieControlProtocol::save_press (Button &)
|
||||
{
|
||||
session->save_state ("");
|
||||
return on;
|
||||
}
|
||||
|
||||
LedState
|
||||
MackieControlProtocol::save_release (Button &)
|
||||
{
|
||||
return off;
|
||||
}
|
||||
|
||||
LedState
|
||||
MackieControlProtocol::timecode_beats_press (Button &)
|
||||
{
|
||||
switch (_timecode_type) {
|
||||
case ARDOUR::AnyTime::BBT:
|
||||
_timecode_type = ARDOUR::AnyTime::Timecode;
|
||||
break;
|
||||
case ARDOUR::AnyTime::Timecode:
|
||||
_timecode_type = ARDOUR::AnyTime::BBT;
|
||||
break;
|
||||
default:
|
||||
ostringstream os;
|
||||
os << "Unknown Anytime::Type " << _timecode_type;
|
||||
throw runtime_error (os.str());
|
||||
}
|
||||
update_timecode_beats_led();
|
||||
return on;
|
||||
}
|
||||
|
||||
LedState
|
||||
MackieControlProtocol::timecode_beats_release (Button &)
|
||||
{
|
||||
return off;
|
||||
}
|
||||
|
||||
list<boost::shared_ptr<ARDOUR::Bundle> >
|
||||
MackieControlProtocol::bundles ()
|
||||
|
||||
@@ -428,6 +428,7 @@ class MackieControlProtocol
|
||||
void* _gui;
|
||||
|
||||
bool _zoom_mode;
|
||||
bool _scrub_mode;
|
||||
int _current_selected_track;
|
||||
|
||||
static const int MODIFIER_OPTION;
|
||||
|
||||
@@ -115,6 +115,23 @@ MackieControlProtocol::left_release (Button &)
|
||||
LedState
|
||||
MackieControlProtocol::right_press (Button &)
|
||||
{
|
||||
Sorted sorted = get_sorted_routes();
|
||||
if (sorted.size() > route_table.size()) {
|
||||
uint32_t delta = sorted.size() - (route_table.size() + _current_initial_bank);
|
||||
|
||||
if (delta > route_table.size()) {
|
||||
delta = route_table.size();
|
||||
}
|
||||
|
||||
if (delta > 0) {
|
||||
session->set_dirty();
|
||||
switch_banks (_current_initial_bank + delta);
|
||||
}
|
||||
|
||||
return on;
|
||||
} else {
|
||||
return flashing;
|
||||
}
|
||||
return off;
|
||||
}
|
||||
|
||||
@@ -245,6 +262,113 @@ MackieControlProtocol::channel_right_release (Button &)
|
||||
return off;
|
||||
}
|
||||
|
||||
Mackie::LedState
|
||||
MackieControlProtocol::zoom_press (Mackie::Button &)
|
||||
{
|
||||
_zoom_mode = !_zoom_mode;
|
||||
return (_zoom_mode ? on : off);
|
||||
}
|
||||
|
||||
Mackie::LedState
|
||||
MackieControlProtocol::zoom_release (Mackie::Button &)
|
||||
{
|
||||
return (_zoom_mode ? on : off);
|
||||
}
|
||||
|
||||
Mackie::LedState
|
||||
MackieControlProtocol::scrub_press (Mackie::Button &)
|
||||
{
|
||||
_scrub_mode = !_scrub_mode;
|
||||
return (_scrub_mode ? on : off);
|
||||
}
|
||||
|
||||
Mackie::LedState
|
||||
MackieControlProtocol::scrub_release (Mackie::Button &)
|
||||
{
|
||||
return (_scrub_mode ? on : off);
|
||||
}
|
||||
|
||||
LedState
|
||||
MackieControlProtocol::undo_press (Button&)
|
||||
{
|
||||
if (_modifier_state & MODIFIER_SHIFT) {
|
||||
Redo(); /* EMIT SIGNAL */
|
||||
} else {
|
||||
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 &)
|
||||
{
|
||||
session->remove_last_capture();
|
||||
return on;
|
||||
}
|
||||
|
||||
LedState
|
||||
MackieControlProtocol::drop_release (Button &)
|
||||
{
|
||||
return off;
|
||||
}
|
||||
|
||||
LedState
|
||||
MackieControlProtocol::save_press (Button &)
|
||||
{
|
||||
session->save_state ("");
|
||||
return on;
|
||||
}
|
||||
|
||||
LedState
|
||||
MackieControlProtocol::save_release (Button &)
|
||||
{
|
||||
return off;
|
||||
}
|
||||
|
||||
LedState
|
||||
MackieControlProtocol::timecode_beats_press (Button &)
|
||||
{
|
||||
switch (_timecode_type) {
|
||||
case ARDOUR::AnyTime::BBT:
|
||||
_timecode_type = ARDOUR::AnyTime::Timecode;
|
||||
break;
|
||||
case ARDOUR::AnyTime::Timecode:
|
||||
_timecode_type = ARDOUR::AnyTime::BBT;
|
||||
break;
|
||||
default:
|
||||
return off;
|
||||
}
|
||||
|
||||
update_timecode_beats_led();
|
||||
|
||||
return on;
|
||||
}
|
||||
|
||||
LedState
|
||||
MackieControlProtocol::timecode_beats_release (Button &)
|
||||
{
|
||||
return off;
|
||||
}
|
||||
|
||||
/////////////////////////////////////
|
||||
// Functions
|
||||
/////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user