From 21fd76ef9a0c1856e5f91c394214e244265a0f86 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 29 Jul 2010 19:24:25 +0000 Subject: Fix startup of the mackie surface code. git-svn-id: svn://localhost/ardour2/branches/3.0@7520 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/midi++2/port.cc | 3 +++ libs/surfaces/mackie/mackie_control_protocol.cc | 6 +++++- libs/surfaces/mackie/mackie_midi_builder.cc | 20 +++++++++----------- libs/surfaces/mackie/surface.cc | 6 +++--- libs/surfaces/mackie/surface_port.cc | 2 +- 5 files changed, 21 insertions(+), 16 deletions(-) diff --git a/libs/midi++2/port.cc b/libs/midi++2/port.cc index 65cba24eb0..673cc259aa 100644 --- a/libs/midi++2/port.cc +++ b/libs/midi++2/port.cc @@ -54,6 +54,7 @@ Port::Port (string const & name, Flags flags, jack_client_t* jack_client) , input_fifo (1024) , _flags (flags) { + assert (jack_client); init (name, flags); } @@ -66,6 +67,8 @@ Port::Port (const XMLNode& node, jack_client_t* jack_client) , output_fifo (512) , input_fifo (1024) { + assert (jack_client); + Descriptor desc (node); init (desc.tag, desc.flags); diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc index 439572ac3e..2e4f2ba214 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.cc +++ b/libs/surfaces/mackie/mackie_control_protocol.cc @@ -277,6 +277,8 @@ MackieControlProtocol::switch_banks (int initial) for (; it != end && it != sorted.end(); ++it, ++i) { boost::shared_ptr route = *it; + + assert (surface().strips[i]); Strip & strip = *surface().strips[i]; DEBUG_TRACE (DEBUG::MackieControl, string_compose ("remote id %1 connecting %2 to %3 with port %4\n", @@ -957,7 +959,9 @@ MackieControlProtocol::notify_property_changed (const PropertyChange& what_chang try { Strip & strip = route_signal->strip(); - if (!strip.is_master()) + + /* XXX: not sure about this check to only display stuff for strips of index < 8 */ + if (!strip.is_master() && strip.index() < 8) { string line1; string fullname = route_signal->route()->name(); diff --git a/libs/surfaces/mackie/mackie_midi_builder.cc b/libs/surfaces/mackie/mackie_midi_builder.cc index 1a70ee7196..ff1046859f 100644 --- a/libs/surfaces/mackie/mackie_midi_builder.cc +++ b/libs/surfaces/mackie/mackie_midi_builder.cc @@ -114,8 +114,13 @@ MidiByteArray MackieMidiBuilder::zero_strip( SurfacePort & port, const Strip & s } // These must have sysex headers - retval << strip_display_blank( port, strip, 0 ); - retval << strip_display_blank( port, strip, 1 ); + + /* XXX: not sure about this check to only display stuff for strips of index < 8 */ + if (strip.index() < 8) { + retval << strip_display_blank( port, strip, 0 ); + retval << strip_display_blank( port, strip, 1 ); + } + return retval; } @@ -186,15 +191,8 @@ MidiByteArray MackieMidiBuilder::strip_display_blank( SurfacePort & port, const MidiByteArray MackieMidiBuilder::strip_display( SurfacePort & port, const Strip & strip, unsigned int line_number, const std::string & line ) { - if ( line_number > 1 ) - { - throw runtime_error( "line_number must be 0 or 1" ); - } - - if ( strip.index() > 7 ) - { - throw runtime_error( "strip.index() must be between 0 and 7" ); - } + assert (line_number <= 1); + assert (strip.index() < 8); #ifdef DEBUG cout << "MackieMidiBuilder::strip_display index: " << strip.index() << ", line " << line_number << ": " << line << endl; diff --git a/libs/surfaces/mackie/surface.cc b/libs/surfaces/mackie/surface.cc index e9eb5570ce..5b79cac4a6 100644 --- a/libs/surfaces/mackie/surface.cc +++ b/libs/surfaces/mackie/surface.cc @@ -46,9 +46,9 @@ void Surface::init_strips( uint32_t max_strips, uint32_t unit_strips ) { if ( strips.size() < max_strips ) { - strips.resize( max_strips ); - for ( uint32_t i = strips.size(); i < max_strips; ++i ) - { + uint32_t const old_size = strips.size(); + strips.resize (max_strips); + for (uint32_t i = old_size; i < max_strips; ++i) { // because I can't find itoa ostringstream os; os << "strip_" << i + 1; diff --git a/libs/surfaces/mackie/surface_port.cc b/libs/surfaces/mackie/surface_port.cc index 994fdfd50a..e5abb6aa68 100644 --- a/libs/surfaces/mackie/surface_port.cc +++ b/libs/surfaces/mackie/surface_port.cc @@ -124,7 +124,7 @@ MidiByteArray SurfacePort::read() void SurfacePort::write( const MidiByteArray & mba ) { #ifdef PORT_DEBUG - cout << "SurfacePort::write: " << mba << endl; + cout << "SurfacePort::write: " << mba << " to " << output_port().name() << endl; #endif // check active before and after lock - to make sure -- cgit v1.2.3