13
0

remove redundant MackieButtonHandler class, implement initial zoom support for cursor left + right buttons

git-svn-id: svn://localhost/ardour2/branches/3.0@11847 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2012-04-09 15:32:25 +00:00
parent f02edae438
commit 2b659deaef
8 changed files with 837 additions and 1599 deletions

View File

@ -30,6 +30,73 @@ class Surface;
class Button : public Control
{
public:
enum ButtonID {
ButtonIo = 0x28,
ButtonSends = 0x29,
ButtonPan = 0x2a,
ButtonPlugin = 0x2b,
ButtonEq = 0x2c,
ButtonDyn = 0x2d,
ButtonLeft = 0x2e,
ButtonRight = 0x2f,
ButtonChannelLeft = 0x30,
ButtonChannelRight = 0x31,
ButtonFlip = 0x32,
ButtonEdit = 0x33,
ButtonNameValue = 0x34,
ButtonTimecodeBeats = 0x35,
ButtonF1 = 0x36,
ButtonF2 = 0x37,
ButtonF3 = 0x38,
ButtonF4 = 0x39,
ButtonF5 = 0x3a,
ButtonF6 = 0x3b,
ButtonF7 = 0x3c,
ButtonF8 = 0x3d,
ButtonF9 = 0x3e,
ButtonF10 = 0x3f,
ButtonF11 = 0x40,
ButtonF12 = 0x41,
ButtonF13 = 0x42,
ButtonF14 = 0x43,
ButtonF15 = 0x44,
ButtonF16 = 0x45,
ButtonShift = 0x46,
ButtonOption = 0x47,
ButtonControl = 0x48,
ButtonCmdAlt = 0x49,
ButtonOn = 0x4a,
ButtonRecReady = 0x4b,
ButtonUndo = 0x4c,
ButtonSnapshot = 0x4d,
ButtonTouch = 0x4e,
ButtonRedo = 0x4f,
ButtonMarker = 0x50,
ButtonEnter = 0x51,
ButtonCancel = 0x52,
ButtonMixer = 0x53,
ButtonFrmLeft = 0x54,
ButtonFrmRight = 0x55,
ButtonLoop = 0x56,
ButtonPunchIn = 0x57,
ButtonPunchOut = 0x58,
ButtonHome = 0x59,
ButtonEnd = 0x5a,
ButtonRewind = 0x5b,
ButtonFfwd = 0x5c,
ButtonStop = 0x5d,
ButtonPlay = 0x5e,
ButtonRecord = 0x5f,
ButtonCursorUp = 0x60,
ButtonCursorDown = 0x61,
ButtonCursorLeft = 0x62,
ButtonCursorRight = 0x63,
ButtonZoom = 0x64,
ButtonScrub = 0x65,
ButtonUserA = 0x66,
ButtonUserB = 0x67,
};
Button (int id, int ordinal, std::string name, Group & group)
: Control (id, ordinal, name, group)
, _led (id, ordinal, name + "_led", group) {}

View File

@ -1,718 +0,0 @@
/*
Generated by scripts/generate-button-handlers.erb
*/
#include "mackie_button_handler.h"
#include "controls.h"
#include "button.h"
#include "led.h"
#include "ledring.h"
#include "pot.h"
#include "fader.h"
#include "jog.h"
#include "meter.h"
#include <iostream>
using namespace std;
using namespace Mackie;
LedState MackieButtonHandler::default_button_press( Button & button )
{
cout << "press: " << button << endl;
return on;
}
LedState MackieButtonHandler::default_button_release( Button & button )
{
cout << "release: " << button << endl;
return off;
}
LedState MackieButtonHandler::io_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::io_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::sends_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::sends_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::pan_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::pan_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::plugin_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::plugin_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::eq_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::eq_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::dyn_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::dyn_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::left_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::left_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::right_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::right_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::channel_left_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::channel_left_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::channel_right_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::channel_right_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::flip_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::flip_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::edit_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::edit_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::name_value_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::name_value_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::timecode_beats_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::timecode_beats_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::F1_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::F1_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::F2_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::F2_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::F3_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::F3_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::F4_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::F4_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::F5_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::F5_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::F6_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::F6_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::F7_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::F7_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::F8_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::F8_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::F9_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::F9_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::F10_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::F10_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::F11_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::F11_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::F12_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::F12_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::F13_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::F13_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::F14_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::F14_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::F15_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::F15_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::F16_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::F16_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::shift_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::shift_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::option_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::option_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::control_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::control_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::cmd_alt_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::cmd_alt_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::on_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::on_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::rec_ready_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::rec_ready_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::undo_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::undo_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::snapshot_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::snapshot_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::touch_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::touch_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::redo_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::redo_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::marker_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::marker_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::enter_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::enter_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::cancel_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::cancel_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::mixer_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::mixer_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::frm_left_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::frm_left_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::frm_right_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::frm_right_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::loop_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::loop_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::punch_in_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::punch_in_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::punch_out_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::punch_out_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::home_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::home_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::end_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::end_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::rewind_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::rewind_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::ffwd_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::ffwd_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::stop_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::stop_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::play_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::play_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::record_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::record_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::cursor_up_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::cursor_up_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::cursor_down_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::cursor_down_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::cursor_left_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::cursor_left_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::cursor_right_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::cursor_right_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::zoom_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::zoom_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::scrub_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::scrub_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::user_a_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::user_a_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::user_b_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::user_b_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::fader_touch_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::fader_touch_release( Button & button )
{
return default_button_release( button );
}
LedState MackieButtonHandler::clicking_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::clicking_release( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::global_solo_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::global_solo_release( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::drop_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::drop_release( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::save_press( Button & button )
{
return default_button_press( button );
}
LedState MackieButtonHandler::save_release( Button & button )
{
return default_button_press( button );
}

View File

@ -1,233 +0,0 @@
#ifndef mackie_button_handler_h
#define mackie_button_handler_h
/*
Generated by scripts/generate-button-handlers.erb
*/
#include "types.h"
namespace Mackie
{
class MackieButtonHandler
{
public:
virtual ~MackieButtonHandler() {}
virtual LedState default_button_press( Button & button );
virtual LedState default_button_release( Button & button );
virtual void update_led( Button & button, LedState ls ) = 0;
virtual LedState io_press( Button & );
virtual LedState io_release( Button & );
virtual LedState sends_press( Button & );
virtual LedState sends_release( Button & );
virtual LedState pan_press( Button & );
virtual LedState pan_release( Button & );
virtual LedState plugin_press( Button & );
virtual LedState plugin_release( Button & );
virtual LedState eq_press( Button & );
virtual LedState eq_release( Button & );
virtual LedState dyn_press( Button & );
virtual LedState dyn_release( Button & );
virtual LedState left_press( Button & );
virtual LedState left_release( Button & );
virtual LedState right_press( Button & );
virtual LedState right_release( Button & );
virtual LedState channel_left_press( Button & );
virtual LedState channel_left_release( Button & );
virtual LedState channel_right_press( Button & );
virtual LedState channel_right_release( Button & );
virtual LedState flip_press( Button & );
virtual LedState flip_release( Button & );
virtual LedState edit_press( Button & );
virtual LedState edit_release( Button & );
virtual LedState name_value_press( Button & );
virtual LedState name_value_release( Button & );
virtual LedState timecode_beats_press( Button & );
virtual LedState timecode_beats_release( Button & );
virtual LedState F1_press( Button & );
virtual LedState F1_release( Button & );
virtual LedState F2_press( Button & );
virtual LedState F2_release( Button & );
virtual LedState F3_press( Button & );
virtual LedState F3_release( Button & );
virtual LedState F4_press( Button & );
virtual LedState F4_release( Button & );
virtual LedState F5_press( Button & );
virtual LedState F5_release( Button & );
virtual LedState F6_press( Button & );
virtual LedState F6_release( Button & );
virtual LedState F7_press( Button & );
virtual LedState F7_release( Button & );
virtual LedState F8_press( Button & );
virtual LedState F8_release( Button & );
virtual LedState F9_press( Button & );
virtual LedState F9_release( Button & );
virtual LedState F10_press( Button & );
virtual LedState F10_release( Button & );
virtual LedState F11_press( Button & );
virtual LedState F11_release( Button & );
virtual LedState F12_press( Button & );
virtual LedState F12_release( Button & );
virtual LedState F13_press( Button & );
virtual LedState F13_release( Button & );
virtual LedState F14_press( Button & );
virtual LedState F14_release( Button & );
virtual LedState F15_press( Button & );
virtual LedState F15_release( Button & );
virtual LedState F16_press( Button & );
virtual LedState F16_release( Button & );
virtual LedState shift_press( Button & );
virtual LedState shift_release( Button & );
virtual LedState option_press( Button & );
virtual LedState option_release( Button & );
virtual LedState control_press( Button & );
virtual LedState control_release( Button & );
virtual LedState cmd_alt_press( Button & );
virtual LedState cmd_alt_release( Button & );
virtual LedState on_press( Button & );
virtual LedState on_release( Button & );
virtual LedState rec_ready_press( Button & );
virtual LedState rec_ready_release( Button & );
virtual LedState undo_press( Button & );
virtual LedState undo_release( Button & );
virtual LedState snapshot_press( Button & );
virtual LedState snapshot_release( Button & );
virtual LedState touch_press( Button & );
virtual LedState touch_release( Button & );
virtual LedState redo_press( Button & );
virtual LedState redo_release( Button & );
virtual LedState marker_press( Button & );
virtual LedState marker_release( Button & );
virtual LedState enter_press( Button & );
virtual LedState enter_release( Button & );
virtual LedState cancel_press( Button & );
virtual LedState cancel_release( Button & );
virtual LedState mixer_press( Button & );
virtual LedState mixer_release( Button & );
virtual LedState frm_left_press( Button & );
virtual LedState frm_left_release( Button & );
virtual LedState frm_right_press( Button & );
virtual LedState frm_right_release( Button & );
virtual LedState loop_press( Button & );
virtual LedState loop_release( Button & );
virtual LedState punch_in_press( Button & );
virtual LedState punch_in_release( Button & );
virtual LedState punch_out_press( Button & );
virtual LedState punch_out_release( Button & );
virtual LedState home_press( Button & );
virtual LedState home_release( Button & );
virtual LedState end_press( Button & );
virtual LedState end_release( Button & );
virtual LedState rewind_press( Button & );
virtual LedState rewind_release( Button & );
virtual LedState ffwd_press( Button & );
virtual LedState ffwd_release( Button & );
virtual LedState stop_press( Button & );
virtual LedState stop_release( Button & );
virtual LedState play_press( Button & );
virtual LedState play_release( Button & );
virtual LedState record_press( Button & );
virtual LedState record_release( Button & );
virtual LedState cursor_up_press( Button & );
virtual LedState cursor_up_release( Button & );
virtual LedState cursor_down_press( Button & );
virtual LedState cursor_down_release( Button & );
virtual LedState cursor_left_press( Button & );
virtual LedState cursor_left_release( Button & );
virtual LedState cursor_right_press( Button & );
virtual LedState cursor_right_release( Button & );
virtual LedState zoom_press( Button & );
virtual LedState zoom_release( Button & );
virtual LedState scrub_press( Button & );
virtual LedState scrub_release( Button & );
virtual LedState user_a_press( Button & );
virtual LedState user_a_release( Button & );
virtual LedState user_b_press( Button & );
virtual LedState user_b_release( Button & );
virtual LedState fader_touch_press( Button & );
virtual LedState fader_touch_release( Button & );
virtual LedState clicking_press( Button & );
virtual LedState clicking_release( Button & );
virtual LedState global_solo_press( Button & );
virtual LedState global_solo_release( Button & );
virtual LedState drop_press( Button & );
virtual LedState drop_release( Button & );
virtual LedState save_press( Button & );
virtual LedState save_release( Button & );
};
}
#endif

View File

@ -100,6 +100,7 @@ MackieControlProtocol::MackieControlProtocol (Session& session)
, _input_bundle (new ARDOUR::Bundle (_("Mackie Control In"), true))
, _output_bundle (new ARDOUR::Bundle (_("Mackie Control Out"), false))
, _gui (0)
, _zoom_mode (false)
{
DEBUG_TRACE (DEBUG::MackieControl, "MackieControlProtocol::MackieControlProtocol\n");
@ -500,24 +501,6 @@ MackieControlProtocol::handle_strip_button (SurfacePort & port, Control & contro
return state;
}
void
MackieControlProtocol::update_led (Mackie::Button & button, Mackie::LedState ls)
{
if (ls != none) {
SurfacePort * port = 0;
if (button.group().is_strip()) {
if (button.group().is_master()) {
port = &mcu_port();
} else {
port = &port_for_id (dynamic_cast<const Strip&> (button.group()).index());
}
} else {
port = &mcu_port();
}
port->write (builder.build_led (button, ls));
}
}
void
MackieControlProtocol::update_timecode_beats_led()
{
@ -886,7 +869,8 @@ MackieControlProtocol::handle_control_event (SurfacePort & port, Control & contr
} else {
// handle all non-strip buttons
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("global button %1\n", control.id()));
surface().handle_button (*this, state.button_state, dynamic_cast<Button&> (control));
handle_button_event (dynamic_cast<Button&>(control), state.button_state);
}
break;
@ -1503,9 +1487,6 @@ MackieControlProtocol::notify_transport_state_changed()
mcu_port().write (builder.build_led (*rec, record_release (*rec)));
}
/////////////////////////////////////
// Bank Switching
/////////////////////////////////////
LedState
MackieControlProtocol::left_press (Button &)
{
@ -1536,27 +1517,81 @@ 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;
}
LedState
MackieControlProtocol::right_release (Button &)
{
if (_zoom_mode) {
}
return off;
}
LedState
MackieControlProtocol::cursor_left_press (Button& )
{
if (_zoom_mode) {
if (false) { // button_down (BUTTON_OPTION)) {
/* reset selected tracks to default vertical zoom */
} else {
ZoomOut (); /* EMIT SIGNAL */
}
}
return off;
}
LedState
MackieControlProtocol::cursor_left_release (Button&)
{
return off;
}
LedState
MackieControlProtocol::cursor_right_press (Button& )
{
if (_zoom_mode) {
if (false) { // button_down (BUTTON_OPTION)) {
/* reset selected tracks to default vertical zoom */
} else {
ZoomOut (); /* EMIT SIGNAL */
}
}
return off;
}
LedState
MackieControlProtocol::cursor_right_release (Button&)
{
return off;
}
LedState
MackieControlProtocol::cursor_up_press (Button&)
{
return off;
}
LedState
MackieControlProtocol::cursor_up_release (Button&)
{
return off;
}
LedState
MackieControlProtocol::cursor_down_press (Button&)
{
return off;
}
LedState
MackieControlProtocol::cursor_down_release (Button&)
{
return off;
}
@ -1651,16 +1686,16 @@ jog_wheel_state_display (JogWheel::State state, SurfacePort & port)
Mackie::LedState
MackieControlProtocol::zoom_press (Mackie::Button &)
{
_jog_wheel.zoom_state_toggle();
update_global_button ("scrub", _jog_wheel.jog_wheel_state() == JogWheel::scrub);
jog_wheel_state_display (_jog_wheel.jog_wheel_state(), mcu_port());
return _jog_wheel.jog_wheel_state() == JogWheel::zoom;
_zoom_mode = true;
return on;
}
Mackie::LedState
MackieControlProtocol::zoom_release (Mackie::Button &)
{
return _jog_wheel.jog_wheel_state() == JogWheel::zoom;
_zoom_mode = false;
return off;
}
Mackie::LedState
@ -1837,3 +1872,551 @@ MackieControlProtocol::control_in_use_timeout (SurfacePort* port, Control* in_us
return false;
}
void
MackieControlProtocol::update_led (Button& button, Mackie::LedState ls)
{
if (ls != none) {
SurfacePort * port = 0;
if (button.group().is_strip()) {
if (button.group().is_master()) {
port = &mcu_port();
} else {
port = &port_for_id (dynamic_cast<const Strip&> (button.group()).index());
}
} else {
port = &mcu_port();
}
port->write (builder.build_led (button, ls));
}
}
void
MackieControlProtocol::handle_button_event (Button& button, ButtonState bs)
{
if (bs != press && bs != release) {
update_led (button, none);
return;
}
LedState ls;
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("Handling %1 for button %2\n", (bs == press ? "press" : "release"), button.raw_id()));
switch (button.raw_id()) {
case 0x28: // io
switch (bs) {
case press: ls = io_press (button); break;
case release: ls = io_release (button); break;
case neither: break;
}
break;
case 0x29: // sends
switch (bs) {
case press: ls = sends_press (button); break;
case release: ls = sends_release (button); break;
case neither: break;
}
break;
case 0x2a: // pan
switch (bs) {
case press: ls = pan_press (button); break;
case release: ls = pan_release (button); break;
case neither: break;
}
break;
case 0x2b: // plugin
switch (bs) {
case press: ls = plugin_press (button); break;
case release: ls = plugin_release (button); break;
case neither: break;
}
break;
case 0x2c: // eq
switch (bs) {
case press: ls = eq_press (button); break;
case release: ls = eq_release (button); break;
case neither: break;
}
break;
case 0x2d: // dyn
switch (bs) {
case press: ls = dyn_press (button); break;
case release: ls = dyn_release (button); break;
case neither: break;
}
break;
case 0x2e: // left
switch (bs) {
case press: ls = left_press (button); break;
case release: ls = left_release (button); break;
case neither: break;
}
break;
case 0x2f: // right
switch (bs) {
case press: ls = right_press (button); break;
case release: ls = right_release (button); break;
case neither: break;
}
break;
case 0x30: // channel_left
switch (bs) {
case press: ls = channel_left_press (button); break;
case release: ls = channel_left_release (button); break;
case neither: break;
}
break;
case 0x31: // channel_right
switch (bs) {
case press: ls = channel_right_press (button); break;
case release: ls = channel_right_release (button); break;
case neither: break;
}
break;
case 0x32: // flip
switch (bs) {
case press: ls = flip_press (button); break;
case release: ls = flip_release (button); break;
case neither: break;
}
break;
case 0x33: // edit
switch (bs) {
case press: ls = edit_press (button); break;
case release: ls = edit_release (button); break;
case neither: break;
}
break;
case 0x34: // name_value
switch (bs) {
case press: ls = name_value_press (button); break;
case release: ls = name_value_release (button); break;
case neither: break;
}
break;
case 0x35: // timecode_beats
switch (bs) {
case press: ls = timecode_beats_press (button); break;
case release: ls = timecode_beats_release (button); break;
case neither: break;
}
break;
case 0x36: // F1
switch (bs) {
case press: ls = F1_press (button); break;
case release: ls = F1_release (button); break;
case neither: break;
}
break;
case 0x37: // F2
switch (bs) {
case press: ls = F2_press (button); break;
case release: ls = F2_release (button); break;
case neither: break;
}
break;
case 0x38: // F3
switch (bs) {
case press: ls = F3_press (button); break;
case release: ls = F3_release (button); break;
case neither: break;
}
break;
case 0x39: // F4
switch (bs) {
case press: ls = F4_press (button); break;
case release: ls = F4_release (button); break;
case neither: break;
}
break;
case 0x3a: // F5
switch (bs) {
case press: ls = F5_press (button); break;
case release: ls = F5_release (button); break;
case neither: break;
}
break;
case 0x3b: // F6
switch (bs) {
case press: ls = F6_press (button); break;
case release: ls = F6_release (button); break;
case neither: break;
}
break;
case 0x3c: // F7
switch (bs) {
case press: ls = F7_press (button); break;
case release: ls = F7_release (button); break;
case neither: break;
}
break;
case 0x3d: // F8
switch (bs) {
case press: ls = F8_press (button); break;
case release: ls = F8_release (button); break;
case neither: break;
}
break;
case 0x3e: // F9
switch (bs) {
case press: ls = F9_press (button); break;
case release: ls = F9_release (button); break;
case neither: break;
}
break;
case 0x3f: // F10
switch (bs) {
case press: ls = F10_press (button); break;
case release: ls = F10_release (button); break;
case neither: break;
}
break;
case 0x40: // F11
switch (bs) {
case press: ls = F11_press (button); break;
case release: ls = F11_release (button); break;
case neither: break;
}
break;
case 0x41: // F12
switch (bs) {
case press: ls = F12_press (button); break;
case release: ls = F12_release (button); break;
case neither: break;
}
break;
case 0x42: // F13
switch (bs) {
case press: ls = F13_press (button); break;
case release: ls = F13_release (button); break;
case neither: break;
}
break;
case 0x43: // F14
switch (bs) {
case press: ls = F14_press (button); break;
case release: ls = F14_release (button); break;
case neither: break;
}
break;
case 0x44: // F15
switch (bs) {
case press: ls = F15_press (button); break;
case release: ls = F15_release (button); break;
case neither: break;
}
break;
case 0x45: // F16
switch (bs) {
case press: ls = F16_press (button); break;
case release: ls = F16_release (button); break;
case neither: break;
}
break;
case 0x46: // shift
switch (bs) {
case press: ls = shift_press (button); break;
case release: ls = shift_release (button); break;
case neither: break;
}
break;
case 0x47: // option
switch (bs) {
case press: ls = option_press (button); break;
case release: ls = option_release (button); break;
case neither: break;
}
break;
case 0x48: // control
switch (bs) {
case press: ls = control_press (button); break;
case release: ls = control_release (button); break;
case neither: break;
}
break;
case 0x49: // cmd_alt
switch (bs) {
case press: ls = cmd_alt_press (button); break;
case release: ls = cmd_alt_release (button); break;
case neither: break;
}
break;
case 0x4a: // on
switch (bs) {
case press: ls = on_press (button); break;
case release: ls = on_release (button); break;
case neither: break;
}
break;
case 0x4b: // rec_ready
switch (bs) {
case press: ls = rec_ready_press (button); break;
case release: ls = rec_ready_release (button); break;
case neither: break;
}
break;
case 0x4c: // undo
switch (bs) {
case press: ls = undo_press (button); break;
case release: ls = undo_release (button); break;
case neither: break;
}
break;
case 0x4d: // snapshot
switch (bs) {
case press: ls = snapshot_press (button); break;
case release: ls = snapshot_release (button); break;
case neither: break;
}
break;
case 0x4e: // touch
switch (bs) {
case press: ls = touch_press (button); break;
case release: ls = touch_release (button); break;
case neither: break;
}
break;
case 0x4f: // redo
switch (bs) {
case press: ls = redo_press (button); break;
case release: ls = redo_release (button); break;
case neither: break;
}
break;
case 0x50: // marker
switch (bs) {
case press: ls = marker_press (button); break;
case release: ls = marker_release (button); break;
case neither: break;
}
break;
case 0x51: // enter
switch (bs) {
case press: ls = enter_press (button); break;
case release: ls = enter_release (button); break;
case neither: break;
}
break;
case 0x52: // cancel
switch (bs) {
case press: ls = cancel_press (button); break;
case release: ls = cancel_release (button); break;
case neither: break;
}
break;
case 0x53: // mixer
switch (bs) {
case press: ls = mixer_press (button); break;
case release: ls = mixer_release (button); break;
case neither: break;
}
break;
case 0x54: // frm_left
switch (bs) {
case press: ls = frm_left_press (button); break;
case release: ls = frm_left_release (button); break;
case neither: break;
}
break;
case 0x55: // frm_right
switch (bs) {
case press: ls = frm_right_press (button); break;
case release: ls = frm_right_release (button); break;
case neither: break;
}
break;
case 0x56: // loop
switch (bs) {
case press: ls = loop_press (button); break;
case release: ls = loop_release (button); break;
case neither: break;
}
break;
case 0x57: // punch_in
switch (bs) {
case press: ls = punch_in_press (button); break;
case release: ls = punch_in_release (button); break;
case neither: break;
}
break;
case 0x58: // punch_out
switch (bs) {
case press: ls = punch_out_press (button); break;
case release: ls = punch_out_release (button); break;
case neither: break;
}
break;
case 0x59: // home
switch (bs) {
case press: ls = home_press (button); break;
case release: ls = home_release (button); break;
case neither: break;
}
break;
case 0x5a: // end
switch (bs) {
case press: ls = end_press (button); break;
case release: ls = end_release (button); break;
case neither: break;
}
break;
case 0x5b: // rewind
switch (bs) {
case press: ls = rewind_press (button); break;
case release: ls = rewind_release (button); break;
case neither: break;
}
break;
case 0x5c: // ffwd
switch (bs) {
case press: ls = ffwd_press (button); break;
case release: ls = ffwd_release (button); break;
case neither: break;
}
break;
case 0x5d: // stop
switch (bs) {
case press: ls = stop_press (button); break;
case release: ls = stop_release (button); break;
case neither: break;
}
break;
case 0x5e: // play
switch (bs) {
case press: ls = play_press (button); break;
case release: ls = play_release (button); break;
case neither: break;
}
break;
case 0x5f: // record
switch (bs) {
case press: ls = record_press (button); break;
case release: ls = record_release (button); break;
case neither: break;
}
break;
case 0x60: // cursor_up
switch (bs) {
case press: ls = cursor_up_press (button); break;
case release: ls = cursor_up_release (button); break;
case neither: break;
}
break;
case 0x61: // cursor_down
switch (bs) {
case press: ls = cursor_down_press (button); break;
case release: ls = cursor_down_release (button); break;
case neither: break;
}
break;
case 0x62: // cursor_left
switch (bs) {
case press: ls = cursor_left_press (button); break;
case release: ls = cursor_left_release (button); break;
case neither: break;
}
break;
case 0x63: // cursor_right
switch (bs) {
case press: ls = cursor_right_press (button); break;
case release: ls = cursor_right_release (button); break;
case neither: break;
}
break;
case 0x64: // zoom
switch (bs) {
case press: ls = zoom_press (button); break;
case release: ls = zoom_release (button); break;
case neither: break;
}
break;
case 0x65: // scrub
switch (bs) {
case press: ls = scrub_press (button); break;
case release: ls = scrub_release (button); break;
case neither: break;
}
break;
case 0x66: // user_a
switch (bs) {
case press: ls = user_a_press (button); break;
case release: ls = user_a_release (button); break;
case neither: break;
}
break;
case 0x67: // user_b
switch (bs) {
case press: ls = user_b_press (button); break;
case release: ls = user_b_release (button); break;
case neither: break;
}
break;
}
update_led (button, ls);
}

View File

@ -37,7 +37,6 @@
#include "controls.h"
#include "dummy_port.h"
#include "route_signal.h"
#include "mackie_button_handler.h"
#include "mackie_port.h"
#include "mackie_jog_wheel.h"
#include "timer.h"
@ -81,7 +80,6 @@ public:
class MackieControlProtocol
: public ARDOUR::ControlProtocol
, public AbstractUI<MackieControlUIRequest>
, public Mackie::MackieButtonHandler
{
public:
MackieControlProtocol(ARDOUR::Session &);
@ -104,6 +102,7 @@ class MackieControlProtocol
// control events
void handle_control_event (Mackie::SurfacePort & port, Mackie::Control & control, const Mackie::ControlState & state);
void handle_button_event (Mackie::Button& button, Mackie::ButtonState);
// strip/route related stuff
public:
@ -139,82 +138,150 @@ class MackieControlProtocol
void update_global_button(const std::string & name, Mackie::LedState);
void update_global_led(const std::string & name, Mackie::LedState);
// transport button handler methods from MackieButtonHandler
virtual Mackie::LedState frm_left_press(Mackie::Button &);
virtual Mackie::LedState frm_left_release(Mackie::Button &);
virtual Mackie::LedState frm_right_press(Mackie::Button &);
virtual Mackie::LedState frm_right_release(Mackie::Button &);
/* implemented button handlers */
Mackie::LedState frm_left_press(Mackie::Button &);
Mackie::LedState frm_left_release(Mackie::Button &);
Mackie::LedState frm_right_press(Mackie::Button &);
Mackie::LedState frm_right_release(Mackie::Button &);
Mackie::LedState stop_press(Mackie::Button &);
Mackie::LedState stop_release(Mackie::Button &);
Mackie::LedState play_press(Mackie::Button &);
Mackie::LedState play_release(Mackie::Button &);
Mackie::LedState record_press(Mackie::Button &);
Mackie::LedState record_release(Mackie::Button &);
Mackie::LedState loop_press(Mackie::Button &);
Mackie::LedState loop_release(Mackie::Button &);
Mackie::LedState punch_in_press(Mackie::Button &);
Mackie::LedState punch_in_release(Mackie::Button &);
Mackie::LedState punch_out_press(Mackie::Button &);
Mackie::LedState punch_out_release(Mackie::Button &);
Mackie::LedState home_press(Mackie::Button &);
Mackie::LedState home_release(Mackie::Button &);
Mackie::LedState end_press(Mackie::Button &);
Mackie::LedState end_release(Mackie::Button &);
Mackie::LedState rewind_press(Mackie::Button & button);
Mackie::LedState rewind_release(Mackie::Button & button);
Mackie::LedState ffwd_press(Mackie::Button & button);
Mackie::LedState ffwd_release(Mackie::Button & button);
Mackie::LedState cursor_up_press (Mackie::Button &);
Mackie::LedState cursor_up_release (Mackie::Button &);
Mackie::LedState cursor_down_press (Mackie::Button &);
Mackie::LedState cursor_down_release (Mackie::Button &);
Mackie::LedState cursor_left_press (Mackie::Button &);
Mackie::LedState cursor_left_release (Mackie::Button &);
Mackie::LedState cursor_right_press (Mackie::Button &);
Mackie::LedState cursor_right_release (Mackie::Button &);
Mackie::LedState left_press(Mackie::Button &);
Mackie::LedState left_release(Mackie::Button &);
Mackie::LedState right_press(Mackie::Button &);
Mackie::LedState right_release(Mackie::Button &);
Mackie::LedState channel_left_press(Mackie::Button &);
Mackie::LedState channel_left_release(Mackie::Button &);
Mackie::LedState channel_right_press(Mackie::Button &);
Mackie::LedState channel_right_release(Mackie::Button &);
Mackie::LedState clicking_press(Mackie::Button &);
Mackie::LedState clicking_release(Mackie::Button &);
Mackie::LedState global_solo_press(Mackie::Button &);
Mackie::LedState global_solo_release(Mackie::Button &);
Mackie::LedState marker_press(Mackie::Button &);
Mackie::LedState marker_release(Mackie::Button &);
Mackie::LedState drop_press(Mackie::Button &);
Mackie::LedState drop_release(Mackie::Button &);
Mackie::LedState save_press(Mackie::Button &);
Mackie::LedState save_release(Mackie::Button &);
Mackie::LedState timecode_beats_press(Mackie::Button &);
Mackie::LedState timecode_beats_release(Mackie::Button &);
Mackie::LedState zoom_press(Mackie::Button &);
Mackie::LedState zoom_release(Mackie::Button &);
Mackie::LedState scrub_press(Mackie::Button &);
Mackie::LedState scrub_release(Mackie::Button &);
virtual Mackie::LedState stop_press(Mackie::Button &);
virtual Mackie::LedState stop_release(Mackie::Button &);
/* unimplemented button handlers */
virtual Mackie::LedState play_press(Mackie::Button &);
virtual Mackie::LedState play_release(Mackie::Button &);
Mackie::LedState io_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState io_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState sends_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState sends_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState pan_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState pan_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState plugin_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState plugin_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState eq_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState eq_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState dyn_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState dyn_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState flip_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState flip_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState edit_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState edit_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState name_value_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState name_value_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F1_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F1_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F2_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F2_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F3_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F3_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F4_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F4_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F5_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F5_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F6_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F6_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F7_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F7_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F8_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F8_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F9_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F9_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F10_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F10_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F11_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F11_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F12_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F12_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F13_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F13_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F14_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F14_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F15_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F15_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F16_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState F16_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState shift_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState shift_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState option_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState option_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState control_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState control_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState cmd_alt_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState cmd_alt_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState on_press (Mackie::Button &) { return Mackie::off; }
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; }
Mackie::LedState cancel_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState mixer_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState mixer_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState user_a_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState user_a_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState user_b_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState user_b_release (Mackie::Button &) { return Mackie::off; }
Mackie::LedState fader_touch_press (Mackie::Button &) { return Mackie::off; }
Mackie::LedState fader_touch_release (Mackie::Button &) { return Mackie::off; }
virtual Mackie::LedState record_press(Mackie::Button &);
virtual Mackie::LedState record_release(Mackie::Button &);
virtual Mackie::LedState loop_press(Mackie::Button &);
virtual Mackie::LedState loop_release(Mackie::Button &);
virtual Mackie::LedState punch_in_press(Mackie::Button &);
virtual Mackie::LedState punch_in_release(Mackie::Button &);
virtual Mackie::LedState punch_out_press(Mackie::Button &);
virtual Mackie::LedState punch_out_release(Mackie::Button &);
virtual Mackie::LedState home_press(Mackie::Button &);
virtual Mackie::LedState home_release(Mackie::Button &);
virtual Mackie::LedState end_press(Mackie::Button &);
virtual Mackie::LedState end_release(Mackie::Button &);
virtual Mackie::LedState rewind_press(Mackie::Button & button);
virtual Mackie::LedState rewind_release(Mackie::Button & button);
virtual Mackie::LedState ffwd_press(Mackie::Button & button);
virtual Mackie::LedState ffwd_release(Mackie::Button & button);
// bank switching button handler methods from MackieButtonHandler
virtual Mackie::LedState left_press(Mackie::Button &);
virtual Mackie::LedState left_release(Mackie::Button &);
virtual Mackie::LedState right_press(Mackie::Button &);
virtual Mackie::LedState right_release(Mackie::Button &);
virtual Mackie::LedState channel_left_press(Mackie::Button &);
virtual Mackie::LedState channel_left_release(Mackie::Button &);
virtual Mackie::LedState channel_right_press(Mackie::Button &);
virtual Mackie::LedState channel_right_release(Mackie::Button &);
virtual Mackie::LedState clicking_press(Mackie::Button &);
virtual Mackie::LedState clicking_release(Mackie::Button &);
virtual Mackie::LedState global_solo_press(Mackie::Button &);
virtual Mackie::LedState global_solo_release(Mackie::Button &);
// function buttons
virtual Mackie::LedState marker_press(Mackie::Button &);
virtual Mackie::LedState marker_release(Mackie::Button &);
virtual Mackie::LedState drop_press(Mackie::Button &);
virtual Mackie::LedState drop_release(Mackie::Button &);
virtual Mackie::LedState save_press(Mackie::Button &);
virtual Mackie::LedState save_release(Mackie::Button &);
virtual Mackie::LedState timecode_beats_press(Mackie::Button &);
virtual Mackie::LedState timecode_beats_release(Mackie::Button &);
// jog wheel states
virtual Mackie::LedState zoom_press(Mackie::Button &);
virtual Mackie::LedState zoom_release(Mackie::Button &);
virtual Mackie::LedState scrub_press(Mackie::Button &);
virtual Mackie::LedState scrub_release(Mackie::Button &);
/// This is the main MCU port, ie not an extender port
/// Only for use by JogWheel
@ -359,6 +426,8 @@ class MackieControlProtocol
void build_gui ();
void* _gui;
bool _zoom_mode;
};
#endif // ardour_mackie_control_protocol_h

View File

@ -5,7 +5,6 @@
#include "ardour/debug.h"
#include "mackie_button_handler.h"
#include "control_group.h"
#include "surface_port.h"
#include "surface.h"
@ -188,528 +187,3 @@ Surface::init_strips ()
}
}
void
Surface::handle_button (MackieButtonHandler & mbh, ButtonState bs, Button & button)
{
if (bs != press && bs != release) {
mbh.update_led (button, none);
return;
}
LedState ls;
switch (button.id()) {
case 0x9028: // io
switch (bs) {
case press: ls = mbh.io_press (button); break;
case release: ls = mbh.io_release (button); break;
case neither: break;
}
break;
case 0x9029: // sends
switch (bs) {
case press: ls = mbh.sends_press (button); break;
case release: ls = mbh.sends_release (button); break;
case neither: break;
}
break;
case 0x902a: // pan
switch (bs) {
case press: ls = mbh.pan_press (button); break;
case release: ls = mbh.pan_release (button); break;
case neither: break;
}
break;
case 0x902b: // plugin
switch (bs) {
case press: ls = mbh.plugin_press (button); break;
case release: ls = mbh.plugin_release (button); break;
case neither: break;
}
break;
case 0x902c: // eq
switch (bs) {
case press: ls = mbh.eq_press (button); break;
case release: ls = mbh.eq_release (button); break;
case neither: break;
}
break;
case 0x902d: // dyn
switch (bs) {
case press: ls = mbh.dyn_press (button); break;
case release: ls = mbh.dyn_release (button); break;
case neither: break;
}
break;
case 0x902e: // left
switch (bs) {
case press: ls = mbh.left_press (button); break;
case release: ls = mbh.left_release (button); break;
case neither: break;
}
break;
case 0x902f: // right
switch (bs) {
case press: ls = mbh.right_press (button); break;
case release: ls = mbh.right_release (button); break;
case neither: break;
}
break;
case 0x9030: // channel_left
switch (bs) {
case press: ls = mbh.channel_left_press (button); break;
case release: ls = mbh.channel_left_release (button); break;
case neither: break;
}
break;
case 0x9031: // channel_right
switch (bs) {
case press: ls = mbh.channel_right_press (button); break;
case release: ls = mbh.channel_right_release (button); break;
case neither: break;
}
break;
case 0x9032: // flip
switch (bs) {
case press: ls = mbh.flip_press (button); break;
case release: ls = mbh.flip_release (button); break;
case neither: break;
}
break;
case 0x9033: // edit
switch (bs) {
case press: ls = mbh.edit_press (button); break;
case release: ls = mbh.edit_release (button); break;
case neither: break;
}
break;
case 0x9034: // name_value
switch (bs) {
case press: ls = mbh.name_value_press (button); break;
case release: ls = mbh.name_value_release (button); break;
case neither: break;
}
break;
case 0x9035: // timecode_beats
switch (bs) {
case press: ls = mbh.timecode_beats_press (button); break;
case release: ls = mbh.timecode_beats_release (button); break;
case neither: break;
}
break;
case 0x9036: // F1
switch (bs) {
case press: ls = mbh.F1_press (button); break;
case release: ls = mbh.F1_release (button); break;
case neither: break;
}
break;
case 0x9037: // F2
switch (bs) {
case press: ls = mbh.F2_press (button); break;
case release: ls = mbh.F2_release (button); break;
case neither: break;
}
break;
case 0x9038: // F3
switch (bs) {
case press: ls = mbh.F3_press (button); break;
case release: ls = mbh.F3_release (button); break;
case neither: break;
}
break;
case 0x9039: // F4
switch (bs) {
case press: ls = mbh.F4_press (button); break;
case release: ls = mbh.F4_release (button); break;
case neither: break;
}
break;
case 0x903a: // F5
switch (bs) {
case press: ls = mbh.F5_press (button); break;
case release: ls = mbh.F5_release (button); break;
case neither: break;
}
break;
case 0x903b: // F6
switch (bs) {
case press: ls = mbh.F6_press (button); break;
case release: ls = mbh.F6_release (button); break;
case neither: break;
}
break;
case 0x903c: // F7
switch (bs) {
case press: ls = mbh.F7_press (button); break;
case release: ls = mbh.F7_release (button); break;
case neither: break;
}
break;
case 0x903d: // F8
switch (bs) {
case press: ls = mbh.F8_press (button); break;
case release: ls = mbh.F8_release (button); break;
case neither: break;
}
break;
case 0x903e: // F9
switch (bs) {
case press: ls = mbh.F9_press (button); break;
case release: ls = mbh.F9_release (button); break;
case neither: break;
}
break;
case 0x903f: // F10
switch (bs) {
case press: ls = mbh.F10_press (button); break;
case release: ls = mbh.F10_release (button); break;
case neither: break;
}
break;
case 0x9040: // F11
switch (bs) {
case press: ls = mbh.F11_press (button); break;
case release: ls = mbh.F11_release (button); break;
case neither: break;
}
break;
case 0x9041: // F12
switch (bs) {
case press: ls = mbh.F12_press (button); break;
case release: ls = mbh.F12_release (button); break;
case neither: break;
}
break;
case 0x9042: // F13
switch (bs) {
case press: ls = mbh.F13_press (button); break;
case release: ls = mbh.F13_release (button); break;
case neither: break;
}
break;
case 0x9043: // F14
switch (bs) {
case press: ls = mbh.F14_press (button); break;
case release: ls = mbh.F14_release (button); break;
case neither: break;
}
break;
case 0x9044: // F15
switch (bs) {
case press: ls = mbh.F15_press (button); break;
case release: ls = mbh.F15_release (button); break;
case neither: break;
}
break;
case 0x9045: // F16
switch (bs) {
case press: ls = mbh.F16_press (button); break;
case release: ls = mbh.F16_release (button); break;
case neither: break;
}
break;
case 0x9046: // shift
switch (bs) {
case press: ls = mbh.shift_press (button); break;
case release: ls = mbh.shift_release (button); break;
case neither: break;
}
break;
case 0x9047: // option
switch (bs) {
case press: ls = mbh.option_press (button); break;
case release: ls = mbh.option_release (button); break;
case neither: break;
}
break;
case 0x9048: // control
switch (bs) {
case press: ls = mbh.control_press (button); break;
case release: ls = mbh.control_release (button); break;
case neither: break;
}
break;
case 0x9049: // cmd_alt
switch (bs) {
case press: ls = mbh.cmd_alt_press (button); break;
case release: ls = mbh.cmd_alt_release (button); break;
case neither: break;
}
break;
case 0x904a: // on
switch (bs) {
case press: ls = mbh.on_press (button); break;
case release: ls = mbh.on_release (button); break;
case neither: break;
}
break;
case 0x904b: // rec_ready
switch (bs) {
case press: ls = mbh.rec_ready_press (button); break;
case release: ls = mbh.rec_ready_release (button); break;
case neither: break;
}
break;
case 0x904c: // undo
switch (bs) {
case press: ls = mbh.undo_press (button); break;
case release: ls = mbh.undo_release (button); break;
case neither: break;
}
break;
case 0x904d: // snapshot
switch (bs) {
case press: ls = mbh.snapshot_press (button); break;
case release: ls = mbh.snapshot_release (button); break;
case neither: break;
}
break;
case 0x904e: // touch
switch (bs) {
case press: ls = mbh.touch_press (button); break;
case release: ls = mbh.touch_release (button); break;
case neither: break;
}
break;
case 0x904f: // redo
switch (bs) {
case press: ls = mbh.redo_press (button); break;
case release: ls = mbh.redo_release (button); break;
case neither: break;
}
break;
case 0x9050: // marker
switch (bs) {
case press: ls = mbh.marker_press (button); break;
case release: ls = mbh.marker_release (button); break;
case neither: break;
}
break;
case 0x9051: // enter
switch (bs) {
case press: ls = mbh.enter_press (button); break;
case release: ls = mbh.enter_release (button); break;
case neither: break;
}
break;
case 0x9052: // cancel
switch (bs) {
case press: ls = mbh.cancel_press (button); break;
case release: ls = mbh.cancel_release (button); break;
case neither: break;
}
break;
case 0x9053: // mixer
switch (bs) {
case press: ls = mbh.mixer_press (button); break;
case release: ls = mbh.mixer_release (button); break;
case neither: break;
}
break;
case 0x9054: // frm_left
switch (bs) {
case press: ls = mbh.frm_left_press (button); break;
case release: ls = mbh.frm_left_release (button); break;
case neither: break;
}
break;
case 0x9055: // frm_right
switch (bs) {
case press: ls = mbh.frm_right_press (button); break;
case release: ls = mbh.frm_right_release (button); break;
case neither: break;
}
break;
case 0x9056: // loop
switch (bs) {
case press: ls = mbh.loop_press (button); break;
case release: ls = mbh.loop_release (button); break;
case neither: break;
}
break;
case 0x9057: // punch_in
switch (bs) {
case press: ls = mbh.punch_in_press (button); break;
case release: ls = mbh.punch_in_release (button); break;
case neither: break;
}
break;
case 0x9058: // punch_out
switch (bs) {
case press: ls = mbh.punch_out_press (button); break;
case release: ls = mbh.punch_out_release (button); break;
case neither: break;
}
break;
case 0x9059: // home
switch (bs) {
case press: ls = mbh.home_press (button); break;
case release: ls = mbh.home_release (button); break;
case neither: break;
}
break;
case 0x905a: // end
switch (bs) {
case press: ls = mbh.end_press (button); break;
case release: ls = mbh.end_release (button); break;
case neither: break;
}
break;
case 0x905b: // rewind
switch (bs) {
case press: ls = mbh.rewind_press (button); break;
case release: ls = mbh.rewind_release (button); break;
case neither: break;
}
break;
case 0x905c: // ffwd
switch (bs) {
case press: ls = mbh.ffwd_press (button); break;
case release: ls = mbh.ffwd_release (button); break;
case neither: break;
}
break;
case 0x905d: // stop
switch (bs) {
case press: ls = mbh.stop_press (button); break;
case release: ls = mbh.stop_release (button); break;
case neither: break;
}
break;
case 0x905e: // play
switch (bs) {
case press: ls = mbh.play_press (button); break;
case release: ls = mbh.play_release (button); break;
case neither: break;
}
break;
case 0x905f: // record
switch (bs) {
case press: ls = mbh.record_press (button); break;
case release: ls = mbh.record_release (button); break;
case neither: break;
}
break;
case 0x9060: // cursor_up
switch (bs) {
case press: ls = mbh.cursor_up_press (button); break;
case release: ls = mbh.cursor_up_release (button); break;
case neither: break;
}
break;
case 0x9061: // cursor_down
switch (bs) {
case press: ls = mbh.cursor_down_press (button); break;
case release: ls = mbh.cursor_down_release (button); break;
case neither: break;
}
break;
case 0x9062: // cursor_left
switch (bs) {
case press: ls = mbh.cursor_left_press (button); break;
case release: ls = mbh.cursor_left_release (button); break;
case neither: break;
}
break;
case 0x9063: // cursor_right
switch (bs) {
case press: ls = mbh.cursor_right_press (button); break;
case release: ls = mbh.cursor_right_release (button); break;
case neither: break;
}
break;
case 0x9064: // zoom
switch (bs) {
case press: ls = mbh.zoom_press (button); break;
case release: ls = mbh.zoom_release (button); break;
case neither: break;
}
break;
case 0x9065: // scrub
switch (bs) {
case press: ls = mbh.scrub_press (button); break;
case release: ls = mbh.scrub_release (button); break;
case neither: break;
}
break;
case 0x9066: // user_a
switch (bs) {
case press: ls = mbh.user_a_press (button); break;
case release: ls = mbh.user_a_release (button); break;
case neither: break;
}
break;
case 0x9067: // user_b
switch (bs) {
case press: ls = mbh.user_b_press (button); break;
case release: ls = mbh.user_b_release (button); break;
case neither: break;
}
break;
}
mbh.update_led (button, ls);
}

View File

@ -87,9 +87,6 @@ public:
uint32_t max_strips() const { return _max_strips; }
/// map button ids to calls to press_ and release_ in mbh
virtual void handle_button (MackieButtonHandler & mbh, ButtonState bs, Button & button);
public:
/// display an indicator of the first switched-in Route. Do nothing by default.
virtual void display_bank_start( SurfacePort &, MackieMidiBuilder &, uint32_t /*current_bank*/ ) {};

View File

@ -26,7 +26,6 @@ def build(bld):
dummy_port.cc
gui.cc
interface.cc
mackie_button_handler.cc
mackie_control_protocol.cc
mackie_control_protocol_poll.cc
mackie_jog_wheel.cc