diff options
author | Michael Fisher <mfisher31@gmail.com> | 2013-07-29 12:19:55 -0500 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2013-07-29 20:05:11 +0200 |
commit | d3919894449e2f61a1cfa64330b0810c53042f97 (patch) | |
tree | 8f18a0150bb0164ee22c2ed6751daeeaf2957b96 /libs/ardour/session_midi.cc | |
parent | 3538fa84425069be35e3b1cd1e0c898bbfa43fed (diff) |
Moving Mclk locating code to ticker.cc. Housekeeping
Diffstat (limited to 'libs/ardour/session_midi.cc')
-rw-r--r-- | libs/ardour/session_midi.cc | 31 |
1 files changed, 3 insertions, 28 deletions
diff --git a/libs/ardour/session_midi.cc b/libs/ardour/session_midi.cc index 66ad0ccc2a..bc7e12a729 100644 --- a/libs/ardour/session_midi.cc +++ b/libs/ardour/session_midi.cc @@ -45,7 +45,7 @@ #include "ardour/midi_ui.h" #include "ardour/session.h" #include "ardour/slave.h" -#include "ardour/tempo.h" +#include "ardour/ticker.h" #include "i18n.h" @@ -590,33 +590,8 @@ Session::mmc_step_timeout () void Session::send_song_position_pointer (framepos_t t) { - /* This doesn't account for the Meter's note divisor */ - if (!_engine.freewheeling()) { - - Timecode::BBT_Time time; - bbt_time (t, time); - - const double beats_per_bar = tempo_map().meter_at(t).divisions_per_bar(); - - /* Midi Beats in terms of Song Position Pointer is equivalent to total - sixteenth notes at 'time' */ - const uint32_t midi_beats = 4 * (((time.bars - 1) * beats_per_bar) + time.beats - 1); - - /* can only use 14bits worth */ - if (midi_beats > 0x3fff) { - return; - } - - /* split midi beats into a 14bit value */ - MIDI::byte msg[3] = { - 0xf2, /* MIDI System Common - Song Position Pointer status */ - midi_beats & 0x7f, - midi_beats & 0x3f80 - }; - - if (MIDI::Port* port = MIDI::Manager::instance()->midi_clock_output_port()) { - port->midimsg (msg, sizeof (msg), 0); - } + if (midi_clock) { + midi_clock->position_changed (t); } } |