summaryrefslogtreecommitdiff
path: root/libs/ardour/session_midi.cc
diff options
context:
space:
mode:
authorMichael Fisher <mfisher31@gmail.com>2013-07-29 12:19:55 -0500
committerRobin Gareus <robin@gareus.org>2013-07-29 20:05:11 +0200
commitd3919894449e2f61a1cfa64330b0810c53042f97 (patch)
tree8f18a0150bb0164ee22c2ed6751daeeaf2957b96 /libs/ardour/session_midi.cc
parent3538fa84425069be35e3b1cd1e0c898bbfa43fed (diff)
Moving Mclk locating code to ticker.cc. Housekeeping
Diffstat (limited to 'libs/ardour/session_midi.cc')
-rw-r--r--libs/ardour/session_midi.cc31
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);
}
}