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
@ -46,11 +46,14 @@ Led::set_state (LedState new_state)
|
||||
|
||||
switch (state.state()) {
|
||||
case LedState::on:
|
||||
msg = 0x7f; break;
|
||||
msg = 0x7f;
|
||||
break;
|
||||
case LedState::off:
|
||||
msg = 0x00; break;
|
||||
msg = 0x00;
|
||||
break;
|
||||
case LedState::flashing:
|
||||
msg = 0x01; break;
|
||||
msg = 0x01;
|
||||
break;
|
||||
case LedState::none:
|
||||
return MidiByteArray ();
|
||||
}
|
||||
|
@ -211,19 +211,44 @@ MackieControlProtocol::get_sorted_routes()
|
||||
|
||||
// sort in remote_id order, and exclude master, control and hidden routes
|
||||
// and any routes that are already set.
|
||||
|
||||
for (RouteList::iterator it = routes->begin(); it != routes->end(); ++it) {
|
||||
|
||||
Route & route = **it;
|
||||
if (
|
||||
route.active()
|
||||
&& !route.is_master()
|
||||
&& !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 (remote_ids.find (route.remote_control_id()) != remote_ids.end()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
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());
|
||||
return sorted;
|
||||
}
|
||||
@ -1071,34 +1096,37 @@ MackieControlProtocol::set_view_mode (ViewMode m)
|
||||
|
||||
boost::shared_ptr<Surface> surface = surfaces.front();
|
||||
|
||||
if (surface->type() != mcu) {
|
||||
return;
|
||||
if (surface->type() == mcu) {
|
||||
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) {
|
||||
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;
|
||||
}
|
||||
switch_banks (_current_initial_bank, true);
|
||||
}
|
||||
|
@ -97,6 +97,7 @@ class MackieControlProtocol
|
||||
MidiTracks,
|
||||
Busses,
|
||||
Sends,
|
||||
Plugins,
|
||||
};
|
||||
|
||||
enum FlipMode {
|
||||
|
@ -343,6 +343,8 @@ Strip::notify_mute_changed ()
|
||||
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("Strip %1 mute changed\n", _index));
|
||||
if (_route && _mute) {
|
||||
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));
|
||||
}
|
||||
}
|
||||
|
@ -399,9 +399,9 @@ Surface::handle_midi_controller_message (MIDI::Parser &, MIDI::EventTwoBytes* ev
|
||||
|
||||
// bit 6 gives the sign
|
||||
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"
|
||||
float ticks = (ev->value & 0xf);
|
||||
float ticks = (ev->value & 0x3f);
|
||||
if (ticks == 0) {
|
||||
/* euphonix and perhaps other devices send zero
|
||||
when they mean 1, we think.
|
||||
|
Loading…
Reference in New Issue
Block a user