summaryrefslogtreecommitdiff
path: root/libs/surfaces/mackie/surface.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/surfaces/mackie/surface.cc')
-rw-r--r--libs/surfaces/mackie/surface.cc52
1 files changed, 31 insertions, 21 deletions
diff --git a/libs/surfaces/mackie/surface.cc b/libs/surfaces/mackie/surface.cc
index a63f4757e7..52ff4bbbae 100644
--- a/libs/surfaces/mackie/surface.cc
+++ b/libs/surfaces/mackie/surface.cc
@@ -71,12 +71,15 @@ Surface::Surface (MackieControlProtocol& mcp, const std::string& device_name, ui
/* only the first Surface object has global controls */
if (_number == 0) {
+ DEBUG_TRACE (DEBUG::MackieControl, "Surface has global controls\n");
if (_mcp.device_info().has_global_controls()) {
init_controls ();
+ DEBUG_TRACE (DEBUG::MackieControl, "init_controls done\n");
}
if (_mcp.device_info().has_master_fader()) {
setup_master ();
+ DEBUG_TRACE (DEBUG::MackieControl, "setup_master done\n");
}
}
@@ -84,6 +87,7 @@ Surface::Surface (MackieControlProtocol& mcp, const std::string& device_name, ui
if (n) {
init_strips (n);
+ DEBUG_TRACE (DEBUG::MackieControl, "init_strips done\n");
}
connect_to_signals ();
@@ -136,24 +140,28 @@ void
Surface::init_controls()
{
Group* group;
-
+
+ DEBUG_TRACE (DEBUG::MackieControl, "Surface::init_controls: creating groups\n");
groups["assignment"] = new Group ("assignment");
groups["automation"] = new Group ("automation");
groups["bank"] = new Group ("bank");
groups["cursor"] = new Group ("cursor");
groups["display"] = new Group ("display");
- groups["functions"] = new Group ("functions");
+ groups["function select"] = new Group ("function select");
+ groups["global view"] = new Group ("global view");
+ groups["master"] = new Group ("master");
groups["modifiers"] = new Group ("modifiers");
groups["none"] = new Group ("none");
groups["transport"] = new Group ("transport");
groups["user"] = new Group ("user");
- groups["master"] = new Group ("master");
- groups["view"] = new Group ("view");
+ groups["utilities"] = new Group ("utilities");
+ DEBUG_TRACE (DEBUG::MackieControl, "Surface::init_controls: creating jog wheel\n");
if (_mcp.device_info().has_jog_wheel()) {
_jog_wheel = new Mackie::JogWheel (_mcp);
}
+ DEBUG_TRACE (DEBUG::MackieControl, "Surface::init_controls: creating global controls\n");
for (uint32_t n = 0; mackie_global_controls[n].name[0]; ++n) {
group = groups[mackie_global_controls[n].group_name];
Control* control = mackie_global_controls[n].factory (*this, mackie_global_controls[n].id, mackie_global_controls[n].name, *group);
@@ -161,7 +169,7 @@ Surface::init_controls()
}
/* add global buttons */
-
+ DEBUG_TRACE (DEBUG::MackieControl, "Surface::init_controls: adding global buttons\n");
const map<Button::ID,GlobalButtonInfo>& global_buttons (_mcp.device_info().global_buttons());
for (map<Button::ID,GlobalButtonInfo>::const_iterator b = global_buttons.begin(); b != global_buttons.end(); ++b){
@@ -508,22 +516,22 @@ Surface::host_connection_confirmation (const MidiByteArray & bytes)
void
Surface::turn_it_on ()
{
- if (!_active) {
- _active = true;
- zero_controls ();
- for (Strips::iterator s = strips.begin(); s != strips.end(); ++s) {
- (*s)->notify_all ();
- }
- update_view_mode_display ();
- if (_mcp.device_info ().has_master_fader ()) {
- master_gain_changed ();
- }
-
- if (_mcp.device_info ().has_global_controls ()) {
- _mcp.update_global_button (Button::Read, _mcp.metering_active ());
- _mcp.update_global_button (Button::Stop, _mcp.get_session ().transport_stopped ());
- _mcp.update_global_button (Button::Play, (_mcp.get_session ().transport_speed () == 1.0f));
- }
+ if (_active) {
+ return;
+ }
+
+ _active = true;
+ zero_controls ();
+ for (Strips::iterator s = strips.begin(); s != strips.end(); ++s) {
+ (*s)->notify_all ();
+ }
+ update_view_mode_display ();
+ if (_mcp.device_info ().has_master_fader ()) {
+ master_gain_changed ();
+ }
+
+ if (_mcp.device_info ().has_global_controls ()) {
+ _mcp.update_global_button (Button::Read, _mcp.metering_active ());
}
}
@@ -635,7 +643,9 @@ Surface::periodic (uint64_t now_usecs)
void
Surface::write (const MidiByteArray& data)
{
+ DEBUG_TRACE (DEBUG::MackieControl, string_compose ("Surface::write for %1\n", data));
if (_active) {
+ DEBUG_TRACE (DEBUG::MackieControl, "Surface::write surface active\n");
_port->write (data);
}
}