* fix broken MidiClockTicker (introduced by revision 4361)

* fix missing -DWITH_JACK_MIDI in SConstruct when using JACK MIDI


git-svn-id: svn://localhost/ardour2/branches/3.0@4364 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Hans Baier 2009-01-01 04:14:50 +00:00
parent cc677d5c87
commit 2e61c9c034
3 changed files with 8 additions and 5 deletions

View file

@ -1064,6 +1064,7 @@ if conf.CheckCHeader('jack/midiport.h'):
env['SYSMIDI'] = 'JACK MIDI'
subst_dict['%MIDITAG%'] = "control"
subst_dict['%MIDITYPE%'] = "jack"
env.Append(CCFLAGS=" -DWITH_JACK_MIDI")
print "Using JACK MIDI"
elif conf.CheckCHeader('alsa/asoundlib.h'):
libraries['sysmidi'] = LibraryInfo (LIBS='asound')

View file

@ -443,6 +443,7 @@
<menuitem action='SendMTC'/>
<menuitem action='SendMMC'/>
<menuitem action='UseMMC'/>
<menuitem action='SendMidiClock'/>
</menu>
<menu action="TempoMenu">
<menuitem action='set-tempo-from-region'/>

View file

@ -108,7 +108,7 @@ void MidiClockTicker::transport_looped()
assert(loop_location);
#if DEBUG_TICKER
cerr << "Transport looped, position:" << p_session->transport_frame()
cerr << "Transport looped, position:" << _session->transport_frame()
<< " loop start " << loop_location->start( )
<< " loop end " << loop_location->end( )
<< " play loop " << _session->get_play_loop()
@ -127,8 +127,9 @@ void MidiClockTicker::tick(const nframes_t& transport_frames, const BBT_Time& tr
if (!Config->get_send_midi_clock() || _session == 0 || _session->transport_speed() != 1.0f)
return;
MIDI::Jack_MidiPort & jack_port (dynamic_cast<MIDI::Jack_MidiPort &> (*_midi_port));
MIDI::JACK_MidiPort* jack_port = dynamic_cast<MIDI::JACK_MidiPort*>(_midi_port);
assert(jack_port);
while (true) {
double next_tick = _last_tick + one_ppqn_in_frames(transport_frames);
nframes_t next_tick_offset = nframes_t(next_tick) - transport_frames;
@ -138,11 +139,11 @@ void MidiClockTicker::tick(const nframes_t& transport_frames, const BBT_Time& tr
<< ":Last tick time:" << _last_tick << ":"
<< ":Next tick time:" << next_tick << ":"
<< "Offset:" << next_tick_offset << ":"
<< "cycle length:" << jack_port.nframes_this_cycle()
<< "cycle length:" << jack_port->nframes_this_cycle()
<< endl;
#endif
if (next_tick_offset >= jack_port.nframes_this_cycle())
if (next_tick_offset >= jack_port->nframes_this_cycle())
return;
send_midi_clock_event(next_tick_offset);