mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 07:14:56 +01:00
No-op; formatting tidy-ups.
git-svn-id: svn://localhost/ardour2/branches/3.0@10136 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
1145f1ff6c
commit
f349b4010d
1 changed files with 197 additions and 277 deletions
|
|
@ -156,8 +156,7 @@ void
|
||||||
MackieControlProtocol::next_track()
|
MackieControlProtocol::next_track()
|
||||||
{
|
{
|
||||||
Sorted sorted = get_sorted_routes();
|
Sorted sorted = get_sorted_routes();
|
||||||
if (_current_initial_bank + route_table.size() < sorted.size())
|
if (_current_initial_bank + route_table.size() < sorted.size()) {
|
||||||
{
|
|
||||||
session->set_dirty();
|
session->set_dirty();
|
||||||
switch_banks (_current_initial_bank + 1);
|
switch_banks (_current_initial_bank + 1);
|
||||||
}
|
}
|
||||||
|
|
@ -223,17 +222,15 @@ MackieControlProtocol::get_sorted_routes()
|
||||||
|
|
||||||
// sort in remote_id order, and exclude master, control and hidden routes
|
// sort in remote_id order, and exclude master, control and hidden routes
|
||||||
// and any routes that are already set.
|
// and any routes that are already set.
|
||||||
for (RouteList::iterator it = routes->begin(); it != routes->end(); ++it)
|
for (RouteList::iterator it = routes->begin(); it != routes->end(); ++it) {
|
||||||
{
|
|
||||||
Route & route = **it;
|
Route & route = **it;
|
||||||
if (
|
if (
|
||||||
route.active()
|
route.active()
|
||||||
&& !route.is_master()
|
&& !route.is_master()
|
||||||
&& !route.is_hidden()
|
&& !route.is_hidden()
|
||||||
&& !route.is_monitor()
|
&& !route.is_monitor()
|
||||||
&& remote_ids.find (route.remote_control_id()) == remote_ids.end()
|
&& remote_ids.find (route.remote_control_id()) == remote_ids.end()
|
||||||
)
|
) {
|
||||||
{
|
|
||||||
sorted.push_back (*it);
|
sorted.push_back (*it);
|
||||||
remote_ids.insert (route.remote_control_id());
|
remote_ids.insert (route.remote_control_id());
|
||||||
}
|
}
|
||||||
|
|
@ -257,8 +254,7 @@ MackieControlProtocol::switch_banks (int initial)
|
||||||
// sanity checking
|
// sanity checking
|
||||||
Sorted sorted = get_sorted_routes();
|
Sorted sorted = get_sorted_routes();
|
||||||
int delta = sorted.size() - route_table.size();
|
int delta = sorted.size() - route_table.size();
|
||||||
if (initial < 0 || (delta > 0 && initial > delta))
|
if (initial < 0 || (delta > 0 && initial > delta)) {
|
||||||
{
|
|
||||||
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("not switching to %1\n", initial));
|
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("not switching to %1\n", initial));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -269,8 +265,7 @@ MackieControlProtocol::switch_banks (int initial)
|
||||||
clear_route_signals();
|
clear_route_signals();
|
||||||
|
|
||||||
// now set the signals for new routes
|
// now set the signals for new routes
|
||||||
if (_current_initial_bank <= sorted.size())
|
if (_current_initial_bank <= sorted.size()) {
|
||||||
{
|
|
||||||
// fetch the bank start and end to switch to
|
// fetch the bank start and end to switch to
|
||||||
uint32_t end_pos = min (route_table.size(), sorted.size());
|
uint32_t end_pos = min (route_table.size(), sorted.size());
|
||||||
Sorted::iterator it = sorted.begin() + _current_initial_bank;
|
Sorted::iterator it = sorted.begin() + _current_initial_bank;
|
||||||
|
|
@ -285,8 +280,7 @@ MackieControlProtocol::switch_banks (int initial)
|
||||||
|
|
||||||
// link routes to strips
|
// link routes to strips
|
||||||
uint32_t i = 0;
|
uint32_t i = 0;
|
||||||
for (; it != end && it != sorted.end(); ++it, ++i)
|
for (; it != end && it != sorted.end(); ++it, ++i) {
|
||||||
{
|
|
||||||
boost::shared_ptr<Route> route = *it;
|
boost::shared_ptr<Route> route = *it;
|
||||||
|
|
||||||
assert (surface().strips[i]);
|
assert (surface().strips[i]);
|
||||||
|
|
@ -303,8 +297,7 @@ MackieControlProtocol::switch_banks (int initial)
|
||||||
|
|
||||||
// create dead strips if there aren't enough routes to
|
// create dead strips if there aren't enough routes to
|
||||||
// fill a bank
|
// fill a bank
|
||||||
for (; i < route_table.size(); ++i)
|
for (; i < route_table.size(); ++i) {
|
||||||
{
|
|
||||||
Strip & strip = *surface().strips[i];
|
Strip & strip = *surface().strips[i];
|
||||||
// send zero for this strip
|
// send zero for this strip
|
||||||
MackiePort & port = port_for_id(i);
|
MackiePort & port = port_for_id(i);
|
||||||
|
|
@ -322,8 +315,7 @@ MackieControlProtocol::zero_all()
|
||||||
// TODO turn off Timecode displays
|
// TODO turn off Timecode displays
|
||||||
|
|
||||||
// zero all strips
|
// zero all strips
|
||||||
for (Surface::Strips::iterator it = surface().strips.begin(); it != surface().strips.end(); ++it)
|
for (Surface::Strips::iterator it = surface().strips.begin(); it != surface().strips.end(); ++it) {
|
||||||
{
|
|
||||||
MackiePort & port = port_for_id ((*it)->index());
|
MackiePort & port = port_for_id ((*it)->index());
|
||||||
port.write (builder.zero_strip (port, **it));
|
port.write (builder.zero_strip (port, **it));
|
||||||
}
|
}
|
||||||
|
|
@ -334,11 +326,9 @@ MackieControlProtocol::zero_all()
|
||||||
// turn off global buttons and leds
|
// turn off global buttons and leds
|
||||||
// global buttons are only ever on mcu_port, so we don't have
|
// global buttons are only ever on mcu_port, so we don't have
|
||||||
// to figure out which port.
|
// to figure out which port.
|
||||||
for (Surface::Controls::iterator it = surface().controls.begin(); it != surface().controls.end(); ++it)
|
for (Surface::Controls::iterator it = surface().controls.begin(); it != surface().controls.end(); ++it) {
|
||||||
{
|
|
||||||
Control & control = **it;
|
Control & control = **it;
|
||||||
if (!control.group().is_strip() && control.accepts_feedback())
|
if (!control.group().is_strip() && control.accepts_feedback()) {
|
||||||
{
|
|
||||||
mcu_port().write (builder.zero_control (control));
|
mcu_port().write (builder.zero_control (control));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -350,58 +340,58 @@ MackieControlProtocol::zero_all()
|
||||||
int
|
int
|
||||||
MackieControlProtocol::set_active (bool yn)
|
MackieControlProtocol::set_active (bool yn)
|
||||||
{
|
{
|
||||||
if (yn != _active)
|
if (yn == _active) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
{
|
{
|
||||||
try
|
// the reason for the locking and unlocking is that
|
||||||
{
|
// glibmm can't do a condition wait on a RecMutex
|
||||||
// the reason for the locking and unlocking is that
|
if (yn) {
|
||||||
// glibmm can't do a condition wait on a RecMutex
|
// TODO what happens if this fails half way?
|
||||||
if (yn)
|
|
||||||
|
// create MackiePorts
|
||||||
{
|
{
|
||||||
// TODO what happens if this fails half way?
|
Glib::Mutex::Lock lock (update_mutex);
|
||||||
|
create_ports();
|
||||||
// create MackiePorts
|
|
||||||
{
|
|
||||||
Glib::Mutex::Lock lock (update_mutex);
|
|
||||||
create_ports();
|
|
||||||
}
|
|
||||||
|
|
||||||
// now initialise MackiePorts - ie exchange sysex messages
|
|
||||||
for (MackiePorts::iterator it = _ports.begin(); it != _ports.end(); ++it) {
|
|
||||||
(*it)->open();
|
|
||||||
}
|
|
||||||
|
|
||||||
// wait until all ports are active
|
|
||||||
// TODO a more sophisticated approach would
|
|
||||||
// allow things to start up with only an MCU, even if
|
|
||||||
// extenders were specified but not responding.
|
|
||||||
for (MackiePorts::iterator it = _ports.begin(); it != _ports.end(); ++it) {
|
|
||||||
(*it)->wait_for_init();
|
|
||||||
}
|
|
||||||
|
|
||||||
// create surface object. This depends on the ports being
|
|
||||||
// correctly initialised
|
|
||||||
initialize_surface();
|
|
||||||
connect_session_signals();
|
|
||||||
|
|
||||||
// yeehah!
|
|
||||||
_active = true;
|
|
||||||
|
|
||||||
// send current control positions to surface
|
|
||||||
// must come after _active = true otherwise it won't run
|
|
||||||
update_surface();
|
|
||||||
} else {
|
|
||||||
close();
|
|
||||||
_active = false;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
// now initialise MackiePorts - ie exchange sysex messages
|
||||||
catch (exception & e) {
|
for (MackiePorts::iterator it = _ports.begin(); it != _ports.end(); ++it) {
|
||||||
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("set_active to false because exception caught: %1\n", e.what()));
|
(*it)->open();
|
||||||
|
}
|
||||||
|
|
||||||
|
// wait until all ports are active
|
||||||
|
// TODO a more sophisticated approach would
|
||||||
|
// allow things to start up with only an MCU, even if
|
||||||
|
// extenders were specified but not responding.
|
||||||
|
for (MackiePorts::iterator it = _ports.begin(); it != _ports.end(); ++it) {
|
||||||
|
(*it)->wait_for_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
// create surface object. This depends on the ports being
|
||||||
|
// correctly initialised
|
||||||
|
initialize_surface();
|
||||||
|
connect_session_signals();
|
||||||
|
|
||||||
|
// yeehah!
|
||||||
|
_active = true;
|
||||||
|
|
||||||
|
// send current control positions to surface
|
||||||
|
// must come after _active = true otherwise it won't run
|
||||||
|
update_surface();
|
||||||
|
} else {
|
||||||
|
close();
|
||||||
_active = false;
|
_active = false;
|
||||||
throw;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
catch (exception & e) {
|
||||||
|
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("set_active to false because exception caught: %1\n", e.what()));
|
||||||
|
_active = false;
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -411,37 +401,26 @@ MackieControlProtocol::handle_strip_button (SurfacePort & port, Control & contro
|
||||||
{
|
{
|
||||||
bool state = false;
|
bool state = false;
|
||||||
|
|
||||||
if (bs == press)
|
if (bs == press) {
|
||||||
{
|
if (control.name() == "recenable") {
|
||||||
if (control.name() == "recenable")
|
|
||||||
{
|
|
||||||
state = !route->record_enabled();
|
state = !route->record_enabled();
|
||||||
route->set_record_enabled (state, this);
|
route->set_record_enabled (state, this);
|
||||||
}
|
} else if (control.name() == "mute") {
|
||||||
else if (control.name() == "mute")
|
|
||||||
{
|
|
||||||
state = !route->muted();
|
state = !route->muted();
|
||||||
route->set_mute (state, this);
|
route->set_mute (state, this);
|
||||||
}
|
} else if (control.name() == "solo") {
|
||||||
else if (control.name() == "solo")
|
|
||||||
{
|
|
||||||
state = !route->soloed();
|
state = !route->soloed();
|
||||||
route->set_solo (state, this);
|
route->set_solo (state, this);
|
||||||
}
|
} else if (control.name() == "select") {
|
||||||
else if (control.name() == "select")
|
|
||||||
{
|
|
||||||
// TODO make the track selected. Whatever that means.
|
// TODO make the track selected. Whatever that means.
|
||||||
//state = default_button_press (dynamic_cast<Button&> (control));
|
//state = default_button_press (dynamic_cast<Button&> (control));
|
||||||
}
|
} else if (control.name() == "vselect") {
|
||||||
else if (control.name() == "vselect")
|
|
||||||
{
|
|
||||||
// TODO could be used to select different things to apply the pot to?
|
// TODO could be used to select different things to apply the pot to?
|
||||||
//state = default_button_press (dynamic_cast<Button&> (control));
|
//state = default_button_press (dynamic_cast<Button&> (control));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (control.name() == "fader_touch")
|
if (control.name() == "fader_touch") {
|
||||||
{
|
|
||||||
state = bs == press;
|
state = bs == press;
|
||||||
control.strip().gain().set_in_use (state);
|
control.strip().gain().set_in_use (state);
|
||||||
|
|
||||||
|
|
@ -459,22 +438,15 @@ MackieControlProtocol::handle_strip_button (SurfacePort & port, Control & contro
|
||||||
void
|
void
|
||||||
MackieControlProtocol::update_led (Mackie::Button & button, Mackie::LedState ls)
|
MackieControlProtocol::update_led (Mackie::Button & button, Mackie::LedState ls)
|
||||||
{
|
{
|
||||||
if (ls != none)
|
if (ls != none) {
|
||||||
{
|
|
||||||
SurfacePort * port = 0;
|
SurfacePort * port = 0;
|
||||||
if (button.group().is_strip())
|
if (button.group().is_strip()) {
|
||||||
{
|
if (button.group().is_master()) {
|
||||||
if (button.group().is_master())
|
|
||||||
{
|
|
||||||
port = &mcu_port();
|
port = &mcu_port();
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
port = &port_for_id (dynamic_cast<const Strip&> (button.group()).index());
|
port = &port_for_id (dynamic_cast<const Strip&> (button.group()).index());
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
port = &mcu_port();
|
port = &mcu_port();
|
||||||
}
|
}
|
||||||
port->write (builder.build_led (button, ls));
|
port->write (builder.build_led (button, ls));
|
||||||
|
|
@ -484,8 +456,7 @@ MackieControlProtocol::update_led (Mackie::Button & button, Mackie::LedState ls)
|
||||||
void
|
void
|
||||||
MackieControlProtocol::update_timecode_beats_led()
|
MackieControlProtocol::update_timecode_beats_led()
|
||||||
{
|
{
|
||||||
switch (_timecode_type)
|
switch (_timecode_type) {
|
||||||
{
|
|
||||||
case ARDOUR::AnyTime::BBT:
|
case ARDOUR::AnyTime::BBT:
|
||||||
update_global_led ("beats", on);
|
update_global_led ("beats", on);
|
||||||
update_global_led ("timecode", off);
|
update_global_led ("timecode", off);
|
||||||
|
|
@ -504,13 +475,10 @@ MackieControlProtocol::update_timecode_beats_led()
|
||||||
void
|
void
|
||||||
MackieControlProtocol::update_global_button (const string & name, LedState ls)
|
MackieControlProtocol::update_global_button (const string & name, LedState ls)
|
||||||
{
|
{
|
||||||
if (surface().controls_by_name.find (name) != surface().controls_by_name.end())
|
if (surface().controls_by_name.find (name) != surface().controls_by_name.end()) {
|
||||||
{
|
|
||||||
Button * button = dynamic_cast<Button*> (surface().controls_by_name[name]);
|
Button * button = dynamic_cast<Button*> (surface().controls_by_name[name]);
|
||||||
mcu_port().write (builder.build_led (button->led(), ls));
|
mcu_port().write (builder.build_led (button->led(), ls));
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("Button %1 not found\n", name));
|
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("Button %1 not found\n", name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -518,13 +486,10 @@ MackieControlProtocol::update_global_button (const string & name, LedState ls)
|
||||||
void
|
void
|
||||||
MackieControlProtocol::update_global_led (const string & name, LedState ls)
|
MackieControlProtocol::update_global_led (const string & name, LedState ls)
|
||||||
{
|
{
|
||||||
if (surface().controls_by_name.find (name) != surface().controls_by_name.end())
|
if (surface().controls_by_name.find (name) != surface().controls_by_name.end()) {
|
||||||
{
|
|
||||||
Led * led = dynamic_cast<Led*> (surface().controls_by_name[name]);
|
Led * led = dynamic_cast<Led*> (surface().controls_by_name[name]);
|
||||||
mcu_port().write (builder.build_led (*led, ls));
|
mcu_port().write (builder.build_led (*led, ls));
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("Led %1 not found\n", name));
|
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("Led %1 not found\n", name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -533,29 +498,30 @@ MackieControlProtocol::update_global_led (const string & name, LedState ls)
|
||||||
void
|
void
|
||||||
MackieControlProtocol::update_surface()
|
MackieControlProtocol::update_surface()
|
||||||
{
|
{
|
||||||
if (_active)
|
if (!_active) {
|
||||||
{
|
return;
|
||||||
// do the initial bank switch to connect signals
|
|
||||||
// _current_initial_bank is initialised by set_state
|
|
||||||
switch_banks (_current_initial_bank);
|
|
||||||
|
|
||||||
// create a RouteSignal for the master route
|
|
||||||
|
|
||||||
boost::shared_ptr<Route> mr = master_route ();
|
|
||||||
if (mr) {
|
|
||||||
master_route_signal = boost::shared_ptr<RouteSignal> (new RouteSignal (mr, *this, master_strip(), mcu_port()));
|
|
||||||
// update strip from route
|
|
||||||
master_route_signal->notify_all();
|
|
||||||
}
|
|
||||||
|
|
||||||
// sometimes the jog wheel is a pot
|
|
||||||
surface().blank_jog_ring (mcu_port(), builder);
|
|
||||||
|
|
||||||
// update global buttons and displays
|
|
||||||
notify_record_state_changed();
|
|
||||||
notify_transport_state_changed();
|
|
||||||
update_timecode_beats_led();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// do the initial bank switch to connect signals
|
||||||
|
// _current_initial_bank is initialised by set_state
|
||||||
|
switch_banks (_current_initial_bank);
|
||||||
|
|
||||||
|
// create a RouteSignal for the master route
|
||||||
|
|
||||||
|
boost::shared_ptr<Route> mr = master_route ();
|
||||||
|
if (mr) {
|
||||||
|
master_route_signal = boost::shared_ptr<RouteSignal> (new RouteSignal (mr, *this, master_strip(), mcu_port()));
|
||||||
|
// update strip from route
|
||||||
|
master_route_signal->notify_all();
|
||||||
|
}
|
||||||
|
|
||||||
|
// sometimes the jog wheel is a pot
|
||||||
|
surface().blank_jog_ring (mcu_port(), builder);
|
||||||
|
|
||||||
|
// update global buttons and displays
|
||||||
|
notify_record_state_changed();
|
||||||
|
notify_transport_state_changed();
|
||||||
|
update_timecode_beats_led();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -669,16 +635,11 @@ MackieControlProtocol::initialize_surface()
|
||||||
|
|
||||||
// TODO same as code in mackie_port.cc
|
// TODO same as code in mackie_port.cc
|
||||||
string emulation = ARDOUR::Config->get_mackie_emulation();
|
string emulation = ARDOUR::Config->get_mackie_emulation();
|
||||||
if (emulation == "bcf")
|
if (emulation == "bcf") {
|
||||||
{
|
|
||||||
_surface = new BcfSurface (strips);
|
_surface = new BcfSurface (strips);
|
||||||
}
|
} else if (emulation == "mcu") {
|
||||||
else if (emulation == "mcu")
|
|
||||||
{
|
|
||||||
_surface = new MackieSurface (strips);
|
_surface = new MackieSurface (strips);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
ostringstream os;
|
ostringstream os;
|
||||||
os << "no Surface class found for emulation: " << emulation;
|
os << "no Surface class found for emulation: " << emulation;
|
||||||
throw MackieControlException (os.str());
|
throw MackieControlException (os.str());
|
||||||
|
|
@ -867,21 +828,16 @@ MackieControlProtocol::handle_control_event (SurfacePort & port, Control & contr
|
||||||
p = max (0.0, p);
|
p = max (0.0, p);
|
||||||
panner->set_position (p);
|
panner->set_position (p);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
// it's a pot for an umnapped route, so turn all the lights off
|
// it's a pot for an umnapped route, so turn all the lights off
|
||||||
port.write (builder.build_led_ring (dynamic_cast<Pot &> (control), off));
|
port.write (builder.build_led_ring (dynamic_cast<Pot &> (control), off));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (control.is_jog())
|
if (control.is_jog()) {
|
||||||
{
|
|
||||||
_jog_wheel.jog_event (port, control, state);
|
_jog_wheel.jog_event (port, control, state);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
cout << "external controller" << state.ticks * state.sign << endl;
|
cout << "external controller" << state.ticks * state.sign << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -902,13 +858,11 @@ MackieControlProtocol::handle_control_event (SurfacePort & port, Control & contr
|
||||||
void
|
void
|
||||||
MackieControlProtocol::notify_solo_changed (RouteSignal * route_signal)
|
MackieControlProtocol::notify_solo_changed (RouteSignal * route_signal)
|
||||||
{
|
{
|
||||||
try
|
try {
|
||||||
{
|
|
||||||
Button & button = route_signal->strip().solo();
|
Button & button = route_signal->strip().solo();
|
||||||
route_signal->port().write (builder.build_led (button, route_signal->route()->soloed()));
|
route_signal->port().write (builder.build_led (button, route_signal->route()->soloed()));
|
||||||
}
|
}
|
||||||
catch (exception & e)
|
catch (exception & e) {
|
||||||
{
|
|
||||||
cout << e.what() << endl;
|
cout << e.what() << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -916,13 +870,11 @@ MackieControlProtocol::notify_solo_changed (RouteSignal * route_signal)
|
||||||
void
|
void
|
||||||
MackieControlProtocol::notify_mute_changed (RouteSignal * route_signal)
|
MackieControlProtocol::notify_mute_changed (RouteSignal * route_signal)
|
||||||
{
|
{
|
||||||
try
|
try {
|
||||||
{
|
|
||||||
Button & button = route_signal->strip().mute();
|
Button & button = route_signal->strip().mute();
|
||||||
route_signal->port().write (builder.build_led (button, route_signal->route()->muted()));
|
route_signal->port().write (builder.build_led (button, route_signal->route()->muted()));
|
||||||
}
|
}
|
||||||
catch (exception & e)
|
catch (exception & e) {
|
||||||
{
|
|
||||||
cout << e.what() << endl;
|
cout << e.what() << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -930,26 +882,22 @@ MackieControlProtocol::notify_mute_changed (RouteSignal * route_signal)
|
||||||
void
|
void
|
||||||
MackieControlProtocol::notify_record_enable_changed (RouteSignal * route_signal)
|
MackieControlProtocol::notify_record_enable_changed (RouteSignal * route_signal)
|
||||||
{
|
{
|
||||||
try
|
try {
|
||||||
{
|
|
||||||
Button & button = route_signal->strip().recenable();
|
Button & button = route_signal->strip().recenable();
|
||||||
route_signal->port().write (builder.build_led (button, route_signal->route()->record_enabled()));
|
route_signal->port().write (builder.build_led (button, route_signal->route()->record_enabled()));
|
||||||
}
|
}
|
||||||
catch (exception & e)
|
catch (exception & e) {
|
||||||
{
|
|
||||||
cout << e.what() << endl;
|
cout << e.what() << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MackieControlProtocol::notify_active_changed (RouteSignal *)
|
void MackieControlProtocol::notify_active_changed (RouteSignal *)
|
||||||
{
|
{
|
||||||
try
|
try {
|
||||||
{
|
|
||||||
DEBUG_TRACE (DEBUG::MackieControl, "MackieControlProtocol::notify_active_changed\n");
|
DEBUG_TRACE (DEBUG::MackieControl, "MackieControlProtocol::notify_active_changed\n");
|
||||||
refresh_current_bank();
|
refresh_current_bank();
|
||||||
}
|
}
|
||||||
catch (exception & e)
|
catch (exception & e) {
|
||||||
{
|
|
||||||
cout << e.what() << endl;
|
cout << e.what() << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -957,22 +905,18 @@ void MackieControlProtocol::notify_active_changed (RouteSignal *)
|
||||||
void
|
void
|
||||||
MackieControlProtocol::notify_gain_changed (RouteSignal * route_signal, bool force_update)
|
MackieControlProtocol::notify_gain_changed (RouteSignal * route_signal, bool force_update)
|
||||||
{
|
{
|
||||||
try
|
try {
|
||||||
{
|
|
||||||
Fader & fader = route_signal->strip().gain();
|
Fader & fader = route_signal->strip().gain();
|
||||||
if (!fader.in_use())
|
if (!fader.in_use()) {
|
||||||
{
|
|
||||||
float gain_value = gain_to_slider_position (route_signal->route()->gain_control()->get_value());
|
float gain_value = gain_to_slider_position (route_signal->route()->gain_control()->get_value());
|
||||||
// check that something has actually changed
|
// check that something has actually changed
|
||||||
if (force_update || gain_value != route_signal->last_gain_written())
|
if (force_update || gain_value != route_signal->last_gain_written()) {
|
||||||
{
|
|
||||||
route_signal->port().write (builder.build_fader (fader, gain_value));
|
route_signal->port().write (builder.build_fader (fader, gain_value));
|
||||||
route_signal->last_gain_written (gain_value);
|
route_signal->last_gain_written (gain_value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (exception & e)
|
catch (exception & e) {
|
||||||
{
|
|
||||||
cout << e.what() << endl;
|
cout << e.what() << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -984,22 +928,17 @@ MackieControlProtocol::notify_property_changed (const PropertyChange& what_chang
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try {
|
||||||
{
|
|
||||||
Strip & strip = route_signal->strip();
|
Strip & strip = route_signal->strip();
|
||||||
|
|
||||||
/* XXX: not sure about this check to only display stuff for strips of index < 8 */
|
/* XXX: not sure about this check to only display stuff for strips of index < 8 */
|
||||||
if (!strip.is_master() && strip.index() < 8)
|
if (!strip.is_master() && strip.index() < 8) {
|
||||||
{
|
|
||||||
string line1;
|
string line1;
|
||||||
string fullname = route_signal->route()->name();
|
string fullname = route_signal->route()->name();
|
||||||
|
|
||||||
if (fullname.length() <= 6)
|
if (fullname.length() <= 6) {
|
||||||
{
|
|
||||||
line1 = fullname;
|
line1 = fullname;
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
line1 = PBD::short_version (fullname, 6);
|
line1 = PBD::short_version (fullname, 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1008,8 +947,7 @@ MackieControlProtocol::notify_property_changed (const PropertyChange& what_chang
|
||||||
port.write (builder.strip_display_blank (port, strip, 1));
|
port.write (builder.strip_display_blank (port, strip, 1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (exception & e)
|
catch (exception & e) {
|
||||||
{
|
|
||||||
cout << e.what() << endl;
|
cout << e.what() << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1017,8 +955,7 @@ MackieControlProtocol::notify_property_changed (const PropertyChange& what_chang
|
||||||
void
|
void
|
||||||
MackieControlProtocol::notify_panner_changed (RouteSignal * route_signal, bool force_update)
|
MackieControlProtocol::notify_panner_changed (RouteSignal * route_signal, bool force_update)
|
||||||
{
|
{
|
||||||
try
|
try {
|
||||||
{
|
|
||||||
Pot & pot = route_signal->strip().vpot();
|
Pot & pot = route_signal->strip().vpot();
|
||||||
boost::shared_ptr<Panner> panner = route_signal->route()->panner();
|
boost::shared_ptr<Panner> panner = route_signal->route()->panner();
|
||||||
if (panner) {
|
if (panner) {
|
||||||
|
|
@ -1034,14 +971,11 @@ MackieControlProtocol::notify_panner_changed (RouteSignal * route_signal, bool f
|
||||||
route_signal->port().write (bytes);
|
route_signal->port().write (bytes);
|
||||||
route_signal->last_pan_written (bytes);
|
route_signal->last_pan_written (bytes);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
route_signal->port().write (builder.zero_control (pot));
|
route_signal->port().write (builder.zero_control (pot));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (exception & e)
|
catch (exception & e) {
|
||||||
{
|
|
||||||
cout << e.what() << endl;
|
cout << e.what() << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1052,15 +986,13 @@ MackieControlProtocol::update_automation (RouteSignal & rs)
|
||||||
{
|
{
|
||||||
ARDOUR::AutoState gain_state = rs.route()->gain_control()->automation_state();
|
ARDOUR::AutoState gain_state = rs.route()->gain_control()->automation_state();
|
||||||
|
|
||||||
if (gain_state == Touch || gain_state == Play)
|
if (gain_state == Touch || gain_state == Play) {
|
||||||
{
|
|
||||||
notify_gain_changed (&rs, false);
|
notify_gain_changed (&rs, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rs.route()->panner()) {
|
if (rs.route()->panner()) {
|
||||||
ARDOUR::AutoState panner_state = rs.route()->panner()->automation_state();
|
ARDOUR::AutoState panner_state = rs.route()->panner()->automation_state();
|
||||||
if (panner_state == Touch || panner_state == Play)
|
if (panner_state == Touch || panner_state == Play) {
|
||||||
{
|
|
||||||
notify_panner_changed (&rs, false);
|
notify_panner_changed (&rs, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1082,8 +1014,7 @@ MackieControlProtocol::format_bbt_timecode (framepos_t now_frame)
|
||||||
// figure out subdivisions per beat
|
// figure out subdivisions per beat
|
||||||
const Meter & meter = session->tempo_map().meter_at (now_frame);
|
const Meter & meter = session->tempo_map().meter_at (now_frame);
|
||||||
int subdiv = 2;
|
int subdiv = 2;
|
||||||
if (meter.note_divisor() == 8 && (meter.beats_per_bar() == 12.0 || meter.beats_per_bar() == 9.0 || meter.beats_per_bar() == 6.0))
|
if (meter.note_divisor() == 8 && (meter.beats_per_bar() == 12.0 || meter.beats_per_bar() == 9.0 || meter.beats_per_bar() == 6.0)) {
|
||||||
{
|
|
||||||
subdiv = 3;
|
subdiv = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1117,14 +1048,12 @@ MackieControlProtocol::format_timecode_timecode (framepos_t now_frame)
|
||||||
void
|
void
|
||||||
MackieControlProtocol::update_timecode_display()
|
MackieControlProtocol::update_timecode_display()
|
||||||
{
|
{
|
||||||
if (surface().has_timecode_display())
|
if (surface().has_timecode_display()) {
|
||||||
{
|
|
||||||
// do assignment here so current_frame is fixed
|
// do assignment here so current_frame is fixed
|
||||||
framepos_t current_frame = session->transport_frame();
|
framepos_t current_frame = session->transport_frame();
|
||||||
string timecode;
|
string timecode;
|
||||||
|
|
||||||
switch (_timecode_type)
|
switch (_timecode_type) {
|
||||||
{
|
|
||||||
case ARDOUR::AnyTime::BBT:
|
case ARDOUR::AnyTime::BBT:
|
||||||
timecode = format_bbt_timecode (current_frame);
|
timecode = format_bbt_timecode (current_frame);
|
||||||
break;
|
break;
|
||||||
|
|
@ -1139,8 +1068,7 @@ MackieControlProtocol::update_timecode_display()
|
||||||
|
|
||||||
// only write the timecode string to the MCU if it's changed
|
// only write the timecode string to the MCU if it's changed
|
||||||
// since last time. This is to reduce midi bandwidth used.
|
// since last time. This is to reduce midi bandwidth used.
|
||||||
if (timecode != _timecode_last)
|
if (timecode != _timecode_last) {
|
||||||
{
|
|
||||||
surface().display_timecode (mcu_port(), builder, timecode, _timecode_last);
|
surface().display_timecode (mcu_port(), builder, timecode, _timecode_last);
|
||||||
_timecode_last = timecode;
|
_timecode_last = timecode;
|
||||||
}
|
}
|
||||||
|
|
@ -1182,8 +1110,7 @@ MackieControlProtocol::frm_left_press (Button &)
|
||||||
);
|
);
|
||||||
|
|
||||||
// allow a quick double to go past a previous mark
|
// allow a quick double to go past a previous mark
|
||||||
if (session->transport_rolling() && elapsed < 500 && loc != 0)
|
if (session->transport_rolling() && elapsed < 500 && loc != 0) {
|
||||||
{
|
|
||||||
Location * loc_two_back = session->locations()->first_location_before (loc->start());
|
Location * loc_two_back = session->locations()->first_location_before (loc->start());
|
||||||
if (loc_two_back != 0)
|
if (loc_two_back != 0)
|
||||||
{
|
{
|
||||||
|
|
@ -1192,8 +1119,7 @@ MackieControlProtocol::frm_left_press (Button &)
|
||||||
}
|
}
|
||||||
|
|
||||||
// move to the location, if it's valid
|
// move to the location, if it's valid
|
||||||
if (loc != 0)
|
if (loc != 0) {
|
||||||
{
|
|
||||||
session->request_locate (loc->start(), session->transport_rolling());
|
session->request_locate (loc->start(), session->transport_rolling());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1210,10 +1136,12 @@ LedState
|
||||||
MackieControlProtocol::frm_right_press (Button &)
|
MackieControlProtocol::frm_right_press (Button &)
|
||||||
{
|
{
|
||||||
// can use first_mark_before/after as well
|
// can use first_mark_before/after as well
|
||||||
Location * loc = session->locations()->first_location_after (
|
Location * loc = session->locations()->first_location_after (session->transport_frame());
|
||||||
session->transport_frame()
|
|
||||||
);
|
if (loc != 0) {
|
||||||
if (loc != 0) session->request_locate (loc->start(), session->transport_rolling());
|
session->request_locate (loc->start(), session->transport_rolling());
|
||||||
|
}
|
||||||
|
|
||||||
return on;
|
return on;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1288,10 +1216,11 @@ MackieControlProtocol::rewind_release (Button &)
|
||||||
{
|
{
|
||||||
_jog_wheel.pop();
|
_jog_wheel.pop();
|
||||||
_jog_wheel.transport_direction (0);
|
_jog_wheel.transport_direction (0);
|
||||||
if (_transport_previously_rolling)
|
if (_transport_previously_rolling) {
|
||||||
session->request_transport_speed (1.0);
|
session->request_transport_speed (1.0);
|
||||||
else
|
} else {
|
||||||
session->request_stop();
|
session->request_stop();
|
||||||
|
}
|
||||||
return off;
|
return off;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1309,10 +1238,11 @@ MackieControlProtocol::ffwd_release (Button &)
|
||||||
{
|
{
|
||||||
_jog_wheel.pop();
|
_jog_wheel.pop();
|
||||||
_jog_wheel.transport_direction (0);
|
_jog_wheel.transport_direction (0);
|
||||||
if (_transport_previously_rolling)
|
if (_transport_previously_rolling) {
|
||||||
session->request_transport_speed (1.0);
|
session->request_transport_speed (1.0);
|
||||||
else
|
} else {
|
||||||
session->request_stop();
|
session->request_stop();
|
||||||
|
}
|
||||||
return off;
|
return off;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1332,7 +1262,7 @@ MackieControlProtocol::loop_release (Button &)
|
||||||
LedState
|
LedState
|
||||||
MackieControlProtocol::punch_in_press (Button &)
|
MackieControlProtocol::punch_in_press (Button &)
|
||||||
{
|
{
|
||||||
bool state = !session->config.get_punch_in();
|
bool const state = !session->config.get_punch_in();
|
||||||
session->config.set_punch_in (state);
|
session->config.set_punch_in (state);
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
@ -1346,7 +1276,7 @@ MackieControlProtocol::punch_in_release (Button &)
|
||||||
LedState
|
LedState
|
||||||
MackieControlProtocol::punch_out_press (Button &)
|
MackieControlProtocol::punch_out_press (Button &)
|
||||||
{
|
{
|
||||||
bool state = !session->config.get_punch_out();
|
bool const state = !session->config.get_punch_out();
|
||||||
session->config.set_punch_out (state);
|
session->config.set_punch_out (state);
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
@ -1415,20 +1345,13 @@ LedState MackieControlProtocol::global_solo_release (Button &)
|
||||||
|
|
||||||
void MackieControlProtocol::notify_parameter_changed (std::string const & p)
|
void MackieControlProtocol::notify_parameter_changed (std::string const & p)
|
||||||
{
|
{
|
||||||
if (p == "punch-in")
|
if (p == "punch-in") {
|
||||||
{
|
|
||||||
update_global_button ("punch_in", session->config.get_punch_in());
|
update_global_button ("punch_in", session->config.get_punch_in());
|
||||||
}
|
} else if (p == "punch-out") {
|
||||||
else if (p == "punch-out")
|
|
||||||
{
|
|
||||||
update_global_button ("punch_out", session->config.get_punch_out());
|
update_global_button ("punch_out", session->config.get_punch_out());
|
||||||
}
|
} else if (p == "clicking") {
|
||||||
else if (p == "clicking")
|
|
||||||
{
|
|
||||||
update_global_button ("clicking", Config->get_clicking());
|
update_global_button ("clicking", Config->get_clicking());
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("parameter changed: %1\n", p));
|
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("parameter changed: %1\n", p));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1439,8 +1362,7 @@ MackieControlProtocol::notify_route_added (ARDOUR::RouteList & rl)
|
||||||
{
|
{
|
||||||
// currently assigned banks are less than the full set of
|
// currently assigned banks are less than the full set of
|
||||||
// strips, so activate the new strip now.
|
// strips, so activate the new strip now.
|
||||||
if (route_signals.size() < route_table.size())
|
if (route_signals.size() < route_table.size()) {
|
||||||
{
|
|
||||||
refresh_current_bank();
|
refresh_current_bank();
|
||||||
}
|
}
|
||||||
// otherwise route added, but current bank needs no updating
|
// otherwise route added, but current bank needs no updating
|
||||||
|
|
@ -1467,14 +1389,11 @@ MackieControlProtocol::notify_remote_id_changed()
|
||||||
|
|
||||||
// if a remote id has been moved off the end, we need to shift
|
// if a remote id has been moved off the end, we need to shift
|
||||||
// the current bank backwards.
|
// the current bank backwards.
|
||||||
if (sorted.size() - _current_initial_bank < route_signals.size())
|
if (sorted.size() - _current_initial_bank < route_signals.size()) {
|
||||||
{
|
|
||||||
// but don't shift backwards past the zeroth channel
|
// but don't shift backwards past the zeroth channel
|
||||||
switch_banks (max((Sorted::size_type) 0, sorted.size() - route_signals.size()));
|
switch_banks (max((Sorted::size_type) 0, sorted.size() - route_signals.size()));
|
||||||
}
|
} else {
|
||||||
// Otherwise just refresh the current bank
|
// Otherwise just refresh the current bank
|
||||||
else
|
|
||||||
{
|
|
||||||
refresh_current_bank();
|
refresh_current_bank();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1513,8 +1432,7 @@ LedState
|
||||||
MackieControlProtocol::left_press (Button &)
|
MackieControlProtocol::left_press (Button &)
|
||||||
{
|
{
|
||||||
Sorted sorted = get_sorted_routes();
|
Sorted sorted = get_sorted_routes();
|
||||||
if (sorted.size() > route_table.size())
|
if (sorted.size() > route_table.size()) {
|
||||||
{
|
|
||||||
int new_initial = _current_initial_bank - route_table.size();
|
int new_initial = _current_initial_bank - route_table.size();
|
||||||
if (new_initial < 0) {
|
if (new_initial < 0) {
|
||||||
new_initial = 0;
|
new_initial = 0;
|
||||||
|
|
@ -1526,9 +1444,7 @@ MackieControlProtocol::left_press (Button &)
|
||||||
}
|
}
|
||||||
|
|
||||||
return on;
|
return on;
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
return flashing;
|
return flashing;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1571,13 +1487,10 @@ LedState
|
||||||
MackieControlProtocol::channel_left_press (Button &)
|
MackieControlProtocol::channel_left_press (Button &)
|
||||||
{
|
{
|
||||||
Sorted sorted = get_sorted_routes();
|
Sorted sorted = get_sorted_routes();
|
||||||
if (sorted.size() > route_table.size())
|
if (sorted.size() > route_table.size()) {
|
||||||
{
|
|
||||||
prev_track();
|
prev_track();
|
||||||
return on;
|
return on;
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
return flashing;
|
return flashing;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1592,13 +1505,10 @@ LedState
|
||||||
MackieControlProtocol::channel_right_press (Button &)
|
MackieControlProtocol::channel_right_press (Button &)
|
||||||
{
|
{
|
||||||
Sorted sorted = get_sorted_routes();
|
Sorted sorted = get_sorted_routes();
|
||||||
if (sorted.size() > route_table.size())
|
if (sorted.size() > route_table.size()) {
|
||||||
{
|
|
||||||
next_track();
|
next_track();
|
||||||
return on;
|
return on;
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
return flashing;
|
return flashing;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1638,14 +1548,25 @@ MackieControlProtocol::marker_release (Button &)
|
||||||
void
|
void
|
||||||
jog_wheel_state_display (JogWheel::State state, SurfacePort & port)
|
jog_wheel_state_display (JogWheel::State state, SurfacePort & port)
|
||||||
{
|
{
|
||||||
switch (state)
|
switch (state) {
|
||||||
{
|
case JogWheel::zoom:
|
||||||
case JogWheel::zoom: port.write (builder.two_char_display ("Zm")); break;
|
port.write (builder.two_char_display ("Zm"));
|
||||||
case JogWheel::scroll: port.write (builder.two_char_display ("Sc")); break;
|
break;
|
||||||
case JogWheel::scrub: port.write (builder.two_char_display ("Sb")); break;
|
case JogWheel::scroll:
|
||||||
case JogWheel::shuttle: port.write (builder.two_char_display ("Sh")); break;
|
port.write (builder.two_char_display ("Sc"));
|
||||||
case JogWheel::speed: port.write (builder.two_char_display ("Sp")); break;
|
break;
|
||||||
case JogWheel::select: port.write (builder.two_char_display ("Se")); break;
|
case JogWheel::scrub:
|
||||||
|
port.write (builder.two_char_display ("Sb"));
|
||||||
|
break;
|
||||||
|
case JogWheel::shuttle:
|
||||||
|
port.write (builder.two_char_display ("Sh"));
|
||||||
|
break;
|
||||||
|
case JogWheel::speed:
|
||||||
|
port.write (builder.two_char_display ("Sp"));
|
||||||
|
break;
|
||||||
|
case JogWheel::select:
|
||||||
|
port.write (builder.two_char_display ("Se"));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1670,21 +1591,21 @@ MackieControlProtocol::scrub_press (Mackie::Button &)
|
||||||
_jog_wheel.scrub_state_cycle();
|
_jog_wheel.scrub_state_cycle();
|
||||||
update_global_button ("zoom", _jog_wheel.jog_wheel_state() == JogWheel::zoom);
|
update_global_button ("zoom", _jog_wheel.jog_wheel_state() == JogWheel::zoom);
|
||||||
jog_wheel_state_display (_jog_wheel.jog_wheel_state(), mcu_port());
|
jog_wheel_state_display (_jog_wheel.jog_wheel_state(), mcu_port());
|
||||||
return
|
return (
|
||||||
_jog_wheel.jog_wheel_state() == JogWheel::scrub
|
_jog_wheel.jog_wheel_state() == JogWheel::scrub
|
||||||
||
|
||
|
||||||
_jog_wheel.jog_wheel_state() == JogWheel::shuttle
|
_jog_wheel.jog_wheel_state() == JogWheel::shuttle
|
||||||
;
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Mackie::LedState
|
Mackie::LedState
|
||||||
MackieControlProtocol::scrub_release (Mackie::Button &)
|
MackieControlProtocol::scrub_release (Mackie::Button &)
|
||||||
{
|
{
|
||||||
return
|
return (
|
||||||
_jog_wheel.jog_wheel_state() == JogWheel::scrub
|
_jog_wheel.jog_wheel_state() == JogWheel::scrub
|
||||||
||
|
||
|
||||||
_jog_wheel.jog_wheel_state() == JogWheel::shuttle
|
_jog_wheel.jog_wheel_state() == JogWheel::shuttle
|
||||||
;
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
LedState
|
LedState
|
||||||
|
|
@ -1716,18 +1637,17 @@ MackieControlProtocol::save_release (Button &)
|
||||||
LedState
|
LedState
|
||||||
MackieControlProtocol::timecode_beats_press (Button &)
|
MackieControlProtocol::timecode_beats_press (Button &)
|
||||||
{
|
{
|
||||||
switch (_timecode_type)
|
switch (_timecode_type) {
|
||||||
{
|
case ARDOUR::AnyTime::BBT:
|
||||||
case ARDOUR::AnyTime::BBT:
|
_timecode_type = ARDOUR::AnyTime::Timecode;
|
||||||
_timecode_type = ARDOUR::AnyTime::Timecode;
|
break;
|
||||||
break;
|
case ARDOUR::AnyTime::Timecode:
|
||||||
case ARDOUR::AnyTime::Timecode:
|
_timecode_type = ARDOUR::AnyTime::BBT;
|
||||||
_timecode_type = ARDOUR::AnyTime::BBT;
|
break;
|
||||||
break;
|
default:
|
||||||
default:
|
ostringstream os;
|
||||||
ostringstream os;
|
os << "Unknown Anytime::Type " << _timecode_type;
|
||||||
os << "Unknown Anytime::Type " << _timecode_type;
|
throw runtime_error (os.str());
|
||||||
throw runtime_error (os.str());
|
|
||||||
}
|
}
|
||||||
update_timecode_beats_led();
|
update_timecode_beats_led();
|
||||||
return on;
|
return on;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue