fix up and re-enable MTC transmission
authorPaul Davis <paul@linuxaudiosystems.com>
Wed, 19 Mar 2008 18:10:51 +0000 (18:10 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Wed, 19 Mar 2008 18:10:51 +0000 (18:10 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@3158 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/session_midi.cc
libs/ardour/session_process.cc
libs/ardour/session_state.cc
libs/midi++2/jack_midiport.cc

index 56c522183681e30302f312b8d70665db97a014ac..d877c158b85bb19c9c6ba39330ffbfc98ea94453 100644 (file)
@@ -748,22 +748,17 @@ Session::send_midi_time_code_for_cycle(nframes_t nframes)
        assert (next_quarter_frame_to_send >= 0);
        assert (next_quarter_frame_to_send <= 7);
        
-       if (next_quarter_frame_to_send < 0)
-       {
-               printf("Negative????\n");
-       }
-
        if (_mtc_port == 0 || !session_send_mtc || transmitting_smpte_time.negative
-                       /*|| (next_quarter_frame_to_send < 0)*/ ) {
-               //printf("(MTC) Not sending MTC\n");
+           /*|| (next_quarter_frame_to_send < 0)*/ ) {
+               // cerr << "(MTC) Not sending MTC\n";
                return 0;
        }
        
        /* Duration of one quarter frame */
        nframes_t quarter_frame_duration = ((long) _frames_per_smpte_frame) >> 2;
        
-       //cerr << "(MTC) TR: " << _transport_frame << " - SF: " << outbound_mtc_smpte_frame
-       //<< " - NQ: " << next_quarter_frame_to_send << " - FD" << quarter_frame_duration << endl;
+       // cerr << "(MTC) TR: " << _transport_frame << " - SF: " << outbound_mtc_smpte_frame
+       // << " - NQ: " << next_quarter_frame_to_send << " - FD" << quarter_frame_duration << endl;
                
        // FIXME: this should always be true
        //assert((outbound_mtc_smpte_frame + (next_quarter_frame_to_send * quarter_frame_duration))
@@ -773,8 +768,8 @@ Session::send_midi_time_code_for_cycle(nframes_t nframes)
        // Send quarter frames for this cycle
        while (_transport_frame + nframes > (outbound_mtc_smpte_frame +
                                (next_quarter_frame_to_send * quarter_frame_duration))) {
-
-               //cerr << "(MTC) Next frame to send: " << next_quarter_frame_to_send << endl;
+               
+               // cerr << "(MTC) Next frame to send: " << next_quarter_frame_to_send << endl;
 
                switch (next_quarter_frame_to_send) {
                        case 0:
index 40a70c686202546b3d2c6368e636d6c29bb6acbc..09d85097d09ea981bfda17c6e529190546074810 100644 (file)
@@ -335,7 +335,9 @@ Session::process_with_events (nframes_t nframes)
                        return;
                }
        
-               send_midi_time_code_for_cycle(nframes);
+               if (!_exporting) {
+                       send_midi_time_code_for_cycle(nframes);
+               }
 
                if (actively_recording()) {
                        stop_limit = max_frames;
@@ -754,8 +756,6 @@ Session::process_without_events (nframes_t nframes)
                if (!follow_slave (nframes, 0)) {
                        return;
                }
-       
-               send_midi_time_code_for_cycle(nframes);
        } 
 
        if (_transport_speed == 0) {
@@ -763,6 +763,10 @@ Session::process_without_events (nframes_t nframes)
                return;
        }
                
+       if (!_exporting) {
+               send_midi_time_code_for_cycle(nframes);
+       }
+
        if (actively_recording()) {
                stop_limit = max_frames;
        } else {
index b8cdd6226d35afd9bcdc112241c571e24e46b90f..41261fdfbc9138b185ae809c9c28c127a903d5fd 100644 (file)
@@ -352,7 +352,7 @@ Session::second_stage_init (bool new_session)
 
        BootMessage (_("Reset Remote Controls"));
 
-       //send_full_time_code ();
+       send_full_time_code (0);
        _engine.transport_locate (0);
        deliver_mmc (MIDI::MachineControl::cmdMmcReset, 0);
        deliver_mmc (MIDI::MachineControl::cmdLocate, 0);
index 053529b7694ab22808f12e10b586c4ae7d68535e..59fbbd424a07fe9c49cba449d55654bf88ebb45d 100644 (file)
@@ -113,7 +113,7 @@ JACK_MidiPort::flush (void* jack_port_buffer)
        non_process_thread_fifo.get_read_vector (&vec);
 
        if (vec.len[0] + vec.len[1]) {
-               cerr << "Flush " << vec.len[0] + vec.len[1] << "events from non-process FIFO\n";
+               cerr << "Flush " << vec.len[0] + vec.len[1] << " events from non-process FIFO\n";
        }
 
        if (vec.len[0]) {