mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-16 11:46:25 +01:00
MCP: more view mode support, use 6 bits for pot information, more mute debug trace
git-svn-id: svn://localhost/ardour2/branches/3.0@11912 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
5097af6a13
commit
f40d6b6440
5 changed files with 76 additions and 42 deletions
|
|
@ -46,11 +46,14 @@ Led::set_state (LedState new_state)
|
||||||
|
|
||||||
switch (state.state()) {
|
switch (state.state()) {
|
||||||
case LedState::on:
|
case LedState::on:
|
||||||
msg = 0x7f; break;
|
msg = 0x7f;
|
||||||
|
break;
|
||||||
case LedState::off:
|
case LedState::off:
|
||||||
msg = 0x00; break;
|
msg = 0x00;
|
||||||
|
break;
|
||||||
case LedState::flashing:
|
case LedState::flashing:
|
||||||
msg = 0x01; break;
|
msg = 0x01;
|
||||||
|
break;
|
||||||
case LedState::none:
|
case LedState::none:
|
||||||
return MidiByteArray ();
|
return MidiByteArray ();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -211,19 +211,44 @@ 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 (
|
|
||||||
route.active()
|
if (remote_ids.find (route.remote_control_id()) != remote_ids.end()) {
|
||||||
&& !route.is_master()
|
continue;
|
||||||
&& !route.is_hidden()
|
|
||||||
&& !route.is_monitor()
|
|
||||||
&& remote_ids.find (route.remote_control_id()) == remote_ids.end()
|
|
||||||
) {
|
|
||||||
sorted.push_back (*it);
|
|
||||||
remote_ids.insert (route.remote_control_id());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (route.is_hidden() || route.is_master() || route.is_monitor()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (_view_mode) {
|
||||||
|
case Global:
|
||||||
|
break;
|
||||||
|
case AudioTracks:
|
||||||
|
break;
|
||||||
|
case Busses:
|
||||||
|
break;
|
||||||
|
case MidiTracks:
|
||||||
|
break;
|
||||||
|
case Dynamics:
|
||||||
|
break;
|
||||||
|
case EQ:
|
||||||
|
break;
|
||||||
|
case Loop:
|
||||||
|
break;
|
||||||
|
case Sends:
|
||||||
|
break;
|
||||||
|
case Plugins:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
sorted.push_back (*it);
|
||||||
|
remote_ids.insert (route.remote_control_id());
|
||||||
}
|
}
|
||||||
|
|
||||||
sort (sorted.begin(), sorted.end(), RouteByRemoteId());
|
sort (sorted.begin(), sorted.end(), RouteByRemoteId());
|
||||||
return sorted;
|
return sorted;
|
||||||
}
|
}
|
||||||
|
|
@ -1071,34 +1096,37 @@ MackieControlProtocol::set_view_mode (ViewMode m)
|
||||||
|
|
||||||
boost::shared_ptr<Surface> surface = surfaces.front();
|
boost::shared_ptr<Surface> surface = surfaces.front();
|
||||||
|
|
||||||
if (surface->type() != mcu) {
|
if (surface->type() == mcu) {
|
||||||
return;
|
switch (_view_mode) {
|
||||||
|
case Global:
|
||||||
|
surface->write (surface->two_char_display ("Gl"));
|
||||||
|
break;
|
||||||
|
case Dynamics:
|
||||||
|
surface->write (surface->two_char_display ("Dy"));
|
||||||
|
break;
|
||||||
|
case EQ:
|
||||||
|
surface->write (surface->two_char_display ("EQ"));
|
||||||
|
break;
|
||||||
|
case Loop:
|
||||||
|
surface->write (surface->two_char_display ("LP"));
|
||||||
|
break;
|
||||||
|
case AudioTracks:
|
||||||
|
surface->write (surface->two_char_display ("AT"));
|
||||||
|
break;
|
||||||
|
case MidiTracks:
|
||||||
|
surface->write (surface->two_char_display ("MT"));
|
||||||
|
break;
|
||||||
|
case Busses:
|
||||||
|
surface->write (surface->two_char_display ("Bs"));
|
||||||
|
break;
|
||||||
|
case Sends:
|
||||||
|
surface->write (surface->two_char_display ("Sn"));
|
||||||
|
break;
|
||||||
|
case Plugins:
|
||||||
|
surface->write (surface->two_char_display ("Pl"));
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (_view_mode) {
|
switch_banks (_current_initial_bank, true);
|
||||||
case Global:
|
|
||||||
surface->write (surface->two_char_display ("Gl"));
|
|
||||||
break;
|
|
||||||
case Dynamics:
|
|
||||||
surface->write (surface->two_char_display ("Dy"));
|
|
||||||
break;
|
|
||||||
case EQ:
|
|
||||||
surface->write (surface->two_char_display ("EQ"));
|
|
||||||
break;
|
|
||||||
case Loop:
|
|
||||||
surface->write (surface->two_char_display ("LP"));
|
|
||||||
break;
|
|
||||||
case AudioTracks:
|
|
||||||
surface->write (surface->two_char_display ("AT"));
|
|
||||||
break;
|
|
||||||
case MidiTracks:
|
|
||||||
surface->write (surface->two_char_display ("MT"));
|
|
||||||
break;
|
|
||||||
case Busses:
|
|
||||||
surface->write (surface->two_char_display ("Bs"));
|
|
||||||
break;
|
|
||||||
case Sends:
|
|
||||||
surface->write (surface->two_char_display ("Sn"));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -97,6 +97,7 @@ class MackieControlProtocol
|
||||||
MidiTracks,
|
MidiTracks,
|
||||||
Busses,
|
Busses,
|
||||||
Sends,
|
Sends,
|
||||||
|
Plugins,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum FlipMode {
|
enum FlipMode {
|
||||||
|
|
|
||||||
|
|
@ -343,6 +343,8 @@ Strip::notify_mute_changed ()
|
||||||
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("Strip %1 mute changed\n", _index));
|
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("Strip %1 mute changed\n", _index));
|
||||||
if (_route && _mute) {
|
if (_route && _mute) {
|
||||||
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("\troute muted ? %1\n", _route->muted()));
|
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("\troute muted ? %1\n", _route->muted()));
|
||||||
|
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("mute message: %1\n", _mute->led().set_state (_route->muted() ? on : off)));
|
||||||
|
|
||||||
_surface->write (_mute->led().set_state (_route->muted() ? on : off));
|
_surface->write (_mute->led().set_state (_route->muted() ? on : off));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -399,9 +399,9 @@ Surface::handle_midi_controller_message (MIDI::Parser &, MIDI::EventTwoBytes* ev
|
||||||
|
|
||||||
// bit 6 gives the sign
|
// bit 6 gives the sign
|
||||||
float sign = (ev->value & 0x40) == 0 ? 1.0 : -1.0;
|
float sign = (ev->value & 0x40) == 0 ? 1.0 : -1.0;
|
||||||
// bits 0..3 give the velocity. we interpret this as "ticks
|
// bits 0..5 give the velocity. we interpret this as "ticks
|
||||||
// moved before this message was sent"
|
// moved before this message was sent"
|
||||||
float ticks = (ev->value & 0xf);
|
float ticks = (ev->value & 0x3f);
|
||||||
if (ticks == 0) {
|
if (ticks == 0) {
|
||||||
/* euphonix and perhaps other devices send zero
|
/* euphonix and perhaps other devices send zero
|
||||||
when they mean 1, we think.
|
when they mean 1, we think.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue