properly activating MIDI parsing for traced ports
authorPaul Davis <paul@linuxaudiosystems.com>
Wed, 11 Feb 2015 00:48:28 +0000 (19:48 -0500)
committerPaul Davis <paul@linuxaudiosystems.com>
Wed, 11 Feb 2015 00:48:47 +0000 (19:48 -0500)
gtk2_ardour/midi_tracer.cc
gtk2_ardour/midi_tracer.h

index cbf500ff99b321df4ca4db57085044bd04f12c27..aeb6c987e363c2066d8891e1812a3421d5847620 100644 (file)
@@ -179,6 +179,8 @@ MidiTracer::port_changed ()
 
                if (mp) {
                        mp->self_parser().any.connect_same_thread (_parser_connection, boost::bind (&MidiTracer::tracer, this, _1, _2, _3));
+                       mp->set_trace_on (true);
+                       traced_port = mp;
                }
                
        } else {
@@ -190,6 +192,11 @@ void
 MidiTracer::disconnect ()
 {
        _parser_connection.disconnect ();
+
+       if (traced_port) {
+               traced_port->set_trace_on (false);
+               traced_port.reset ();
+       }
 }
 
 void
index 14234d6528a9a2b055ba5bad240283198dc15334..8a7d8762d969af8a0bc0526a3db740fd591c32ca 100644 (file)
@@ -39,6 +39,10 @@ namespace MIDI {
        class Parser;
 }
 
+namespace ARDOUR {
+       class MidiPort;
+}
+
 class MidiTracer : public ArdourWindow
 {
   public:
@@ -87,6 +91,8 @@ class MidiTracer : public ArdourWindow
        void disconnect ();
        PBD::ScopedConnection _parser_connection;
        PBD::ScopedConnection _manager_connection;
+
+       boost::shared_ptr<ARDOUR::MidiPort> traced_port;
 };
 
 #endif /* __ardour_gtk_midi_tracer_h__ */