Prevent some segfaults when trying to send MTC when there is no port to send it to.
authorCarl Hetherington <carl@carlh.net>
Tue, 1 Dec 2009 19:08:59 +0000 (19:08 +0000)
committerCarl Hetherington <carl@carlh.net>
Tue, 1 Dec 2009 19:08:59 +0000 (19:08 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@6257 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/ticker.cc

index 97e44ebf7bb5c0a1cc4ec4fbee44f1ce66b44c77..7f7ca32907dba2908177b818ac5b6d898cc243b3 100644 (file)
@@ -181,6 +181,10 @@ double MidiClockTicker::one_ppqn_in_frames(nframes_t transport_position)
 
 void MidiClockTicker::send_midi_clock_event(nframes_t offset)
 {
+       if (!_midi_port) {
+               return;
+       }
+
 #ifdef WITH_JACK_MIDI
        assert (MIDI::JACK_MidiPort::is_process_thread());
 #endif // WITH_JACK_MIDI
@@ -193,18 +197,30 @@ void MidiClockTicker::send_midi_clock_event(nframes_t offset)
 
 void MidiClockTicker::send_start_event(nframes_t offset)
 {
+       if (!_midi_port) {
+               return;
+       }
+       
        static uint8_t _midi_clock_tick[1] = { MIDI_CMD_COMMON_START };
        _midi_port->write(_midi_clock_tick, 1, offset);
 }
 
 void MidiClockTicker::send_continue_event(nframes_t offset)
 {
+       if (!_midi_port) {
+               return;
+       }
+       
        static uint8_t _midi_clock_tick[1] = { MIDI_CMD_COMMON_CONTINUE };
        _midi_port->write(_midi_clock_tick, 1, offset);
 }
 
 void MidiClockTicker::send_stop_event(nframes_t offset)
 {
+       if (!_midi_port) {
+               return;
+       }
+       
        static uint8_t _midi_clock_tick[1] = { MIDI_CMD_COMMON_STOP };
        _midi_port->write(_midi_clock_tick, 1, offset);
 }