From 677f4b4e530df3d69aa52cf30c8db99d037b2c03 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 29 May 2020 23:03:46 +0200 Subject: [PATCH] NO-OP: whitespace --- libs/ardour/ardour/ticker.h | 64 ++++++----- libs/ardour/ticker.cc | 210 ++++++++++++++++++------------------ 2 files changed, 139 insertions(+), 135 deletions(-) diff --git a/libs/ardour/ardour/ticker.h b/libs/ardour/ardour/ticker.h index e9a3a50534..b0b0d28ef8 100644 --- a/libs/ardour/ardour/ticker.h +++ b/libs/ardour/ardour/ticker.h @@ -26,15 +26,14 @@ #include "pbd/signals.h" #include "ardour/libardour_visibility.h" -#include "ardour/types.h" #include "ardour/session_handle.h" - +#include "ardour/types.h" #ifndef __libardour_ticker_h__ #define __libardour_ticker_h__ -namespace ARDOUR { - +namespace ARDOUR +{ class Session; class MidiPort; @@ -42,49 +41,56 @@ class LIBARDOUR_API MidiClockTicker : public SessionHandlePtr, boost::noncopyabl { public: MidiClockTicker (); - virtual ~MidiClockTicker(); + virtual ~MidiClockTicker (); - void tick (const samplepos_t& transport_samples, pframes_t nframes); + void tick (const samplepos_t& transport_samples, pframes_t nframes); - bool has_midi_port() const { return _midi_port != 0; } + bool has_midi_port () const + { + return _midi_port != 0; + } void set_session (Session* s); - void session_going_away(); + void session_going_away (); /// slot for the signal session::MIDIClock_PortChanged - void update_midi_clock_port(); + void update_midi_clock_port (); /// slot for the signal session::TransportStateChange - void transport_state_changed(); + void transport_state_changed (); /// slot for the signal session::TransportLooped - void transport_looped(); + void transport_looped (); /// slot for the signal session::Located - void session_located(); + void session_located (); /// pulses per quarter note (default 24) - void set_ppqn(int ppqn) { _ppqn = ppqn; } + void set_ppqn (int ppqn) + { + _ppqn = ppqn; + } - private: - boost::shared_ptr _midi_port; - int _ppqn; - double _last_tick; - bool _send_pos; - bool _send_state; +private: + boost::shared_ptr _midi_port; - class Position; - boost::scoped_ptr _pos; + int _ppqn; + double _last_tick; + bool _send_pos; + bool _send_state; - double one_ppqn_in_samples (samplepos_t transport_position); + class Position; + boost::scoped_ptr _pos; - void send_midi_clock_event (pframes_t offset, pframes_t nframes); - void send_start_event (pframes_t offset, pframes_t nframes); - void send_continue_event (pframes_t offset, pframes_t nframes); - void send_stop_event (pframes_t offset, pframes_t nframes); - void send_position_event (uint32_t midi_clocks, pframes_t offset, pframes_t nframes); + double one_ppqn_in_samples (samplepos_t transport_position); + + void send_midi_clock_event (pframes_t offset, pframes_t nframes); + void send_start_event (pframes_t offset, pframes_t nframes); + void send_continue_event (pframes_t offset, pframes_t nframes); + void send_stop_event (pframes_t offset, pframes_t nframes); + void send_position_event (uint32_t midi_clocks, pframes_t offset, pframes_t nframes); }; -} - // namespace +} // namespace ARDOUR + // namespace #endif /* __libardour_ticker_h__ */ diff --git a/libs/ardour/ticker.cc b/libs/ardour/ticker.cc index 7d378d72ae..fa450c07b8 100644 --- a/libs/ardour/ticker.cc +++ b/libs/ardour/ticker.cc @@ -29,13 +29,13 @@ #include "ardour/async_midi_port.h" #include "ardour/audioengine.h" +#include "ardour/debug.h" +#include "ardour/lmath.h" #include "ardour/midi_buffer.h" #include "ardour/midi_port.h" -#include "ardour/lmath.h" -#include "ardour/ticker.h" #include "ardour/session.h" #include "ardour/tempo.h" -#include "ardour/debug.h" +#include "ardour/ticker.h" using namespace ARDOUR; using namespace PBD; @@ -44,81 +44,85 @@ using namespace PBD; class MidiClockTicker::Position : public Timecode::BBT_Time { public: + Position () + : speed (0.0f) + , sample (0) + , midi_beats (0) + { + } + ~Position () {} - Position() : speed(0.0f), sample(0), midi_beats(0) { } - ~Position() { } + /** Sync timing information taken from the given Session + * @return True if timings differed + */ - /** Sync timing information taken from the given Session - * @return True if timings differed - */ + bool sync (Session* s) + { + bool changed = false; - bool sync (Session* s) { + double sp = s->transport_speed (); + samplecnt_t fr = s->transport_sample (); - bool changed = false; + if (speed != sp) { + speed = sp; + changed = true; + } - double sp = s->transport_speed(); - samplecnt_t fr = s->transport_sample(); + if (sample != fr) { + sample = fr; + changed = true; + } - if (speed != sp) { - speed = sp; - changed = true; - } + /* Midi beats and clocks always gets updated for now */ - if (sample != fr) { - sample = fr; - changed = true; - } + s->bbt_time (this->sample, *this); - /* Midi beats and clocks always gets updated for now */ + const TempoMap& tempo = s->tempo_map (); + const Meter& meter = tempo.meter_at_sample (sample); - s->bbt_time (this->sample, *this); + const double divisions = meter.divisions_per_bar (); + const double divisor = meter.note_divisor (); + const double qnote_scale = divisor * 0.25f; + double mb; - const TempoMap& tempo = s->tempo_map(); - const Meter& meter = tempo.meter_at_sample (sample); + /** Midi Beats in terms of Song Position Pointer is equivalent to total + * sixteenth notes at 'time' + */ - const double divisions = meter.divisions_per_bar(); - const double divisor = meter.note_divisor(); - const double qnote_scale = divisor * 0.25f; - double mb; + mb = (((bars - 1) * divisions) + beats - 1); + mb += (double)ticks / (double)Position::ticks_per_beat * qnote_scale; + mb *= 16.0f / divisor; - /** Midi Beats in terms of Song Position Pointer is equivalent to total - * sixteenth notes at 'time' - */ + if (mb != midi_beats) { + midi_beats = mb; + midi_clocks = midi_beats * 6.0f; + changed = true; + } - mb = (((bars - 1) * divisions) + beats - 1); - mb += (double)ticks / (double)Position::ticks_per_beat * qnote_scale; - mb *= 16.0f / divisor; + return changed; + } - if (mb != midi_beats) { - midi_beats = mb; - midi_clocks = midi_beats * 6.0f; - changed = true; - } + double speed; + samplecnt_t sample; + double midi_beats; + double midi_clocks; - return changed; - } - - double speed; - samplecnt_t sample; - double midi_beats; - double midi_clocks; - - void print (std::ostream& s) { - s << "samples: " << sample << " midi beats: " << midi_beats << " speed: " << speed; - } + void print (std::ostream& s) + { + s << "samples: " << sample << " midi beats: " << midi_beats << " speed: " << speed; + } }; - MidiClockTicker::MidiClockTicker () : _ppqn (24) , _last_tick (0.0) , _send_pos (false) , _send_state (false) { - _pos.reset (new Position()); + _pos.reset (new Position ()); } -MidiClockTicker::~MidiClockTicker() +MidiClockTicker::~MidiClockTicker () { _pos.reset (0); } @@ -128,20 +132,20 @@ MidiClockTicker::set_session (Session* s) { SessionHandlePtr::set_session (s); - if (_session) { - _session->TransportStateChange.connect_same_thread (_session_connections, boost::bind (&MidiClockTicker::transport_state_changed, this)); - _session->TransportLooped.connect_same_thread (_session_connections, boost::bind (&MidiClockTicker::transport_looped, this)); - _session->Located.connect_same_thread (_session_connections, boost::bind (&MidiClockTicker::session_located, this)); + if (_session) { + _session->TransportStateChange.connect_same_thread (_session_connections, boost::bind (&MidiClockTicker::transport_state_changed, this)); + _session->TransportLooped.connect_same_thread (_session_connections, boost::bind (&MidiClockTicker::transport_looped, this)); + _session->Located.connect_same_thread (_session_connections, boost::bind (&MidiClockTicker::session_located, this)); - update_midi_clock_port(); - _pos->sync (_session); - } + update_midi_clock_port (); + _pos->sync (_session); + } } void -MidiClockTicker::session_located() +MidiClockTicker::session_located () { - DEBUG_TRACE (DEBUG::MidiClock, string_compose ("Session Located: %1, speed: %2\n", _session->transport_sample(), _session->transport_speed())); + DEBUG_TRACE (DEBUG::MidiClock, string_compose ("Session Located: %1, speed: %2\n", _session->transport_sample (), _session->transport_speed ())); if (!_session || !_pos->sync (_session)) { return; @@ -149,7 +153,7 @@ MidiClockTicker::session_located() _last_tick = _pos->sample; - if (!Config->get_send_midi_clock()) { + if (!Config->get_send_midi_clock ()) { return; } @@ -159,76 +163,72 @@ MidiClockTicker::session_located() void MidiClockTicker::session_going_away () { - SessionHandlePtr::session_going_away(); + SessionHandlePtr::session_going_away (); _midi_port.reset (); } void -MidiClockTicker::update_midi_clock_port() +MidiClockTicker::update_midi_clock_port () { - _midi_port = _session->midi_clock_output_port(); + _midi_port = _session->midi_clock_output_port (); } void -MidiClockTicker::transport_state_changed() +MidiClockTicker::transport_state_changed () { - if (_session->exporting()) { + if (_session->exporting ()) { /* no midi clock during export, for now */ return; } - if (!_session->engine().running()) { + if (!_session->engine ().running ()) { /* Engine stopped, we can't do anything */ return; } - if (! _pos->sync (_session)) { + if (!_pos->sync (_session)) { return; } DEBUG_TRACE (DEBUG::MidiClock, - string_compose ("Transport state change @ %4, speed: %1 position: %2 play loop: %3\n", - _pos->speed, _pos->sample, _session->get_play_loop(), _pos->sample) - ); + string_compose ("Transport state change @ %4, speed: %1 position: %2 play loop: %3\n", + _pos->speed, _pos->sample, _session->get_play_loop (), _pos->sample)); _last_tick = _pos->sample; - if (! Config->get_send_midi_clock()) { + if (!Config->get_send_midi_clock ()) { return; } _send_state = true; - - // tick (_pos->sample); } void -MidiClockTicker::transport_looped() +MidiClockTicker::transport_looped () { - Location* loop_location = _session->locations()->auto_loop_location(); - assert(loop_location); + Location* loop_location = _session->locations ()->auto_loop_location (); + assert (loop_location); DEBUG_TRACE (DEBUG::MidiClock, - string_compose ("Transport looped, position: %1, loop start: %2, loop end: %3, play loop: %4\n", - _session->transport_sample(), loop_location->start(), loop_location->end(), _session->get_play_loop()) - ); + string_compose ("Transport looped, position: %1, loop start: %2, loop end: %3, play loop: %4\n", + _session->transport_sample (), loop_location->start (), loop_location->end (), _session->get_play_loop ())); // adjust _last_tick, so that the next MIDI clock message is sent // in due time (and the tick interval is still constant) - samplecnt_t elapsed_since_last_tick = loop_location->end() - _last_tick; + samplecnt_t elapsed_since_last_tick = loop_location->end () - _last_tick; - if (loop_location->start() > elapsed_since_last_tick) { - _last_tick = loop_location->start() - elapsed_since_last_tick; + if (loop_location->start () > elapsed_since_last_tick) { + _last_tick = loop_location->start () - elapsed_since_last_tick; } else { _last_tick = 0; } } void -MidiClockTicker::tick (const samplepos_t& /* transport_sample */, pframes_t nframes) +MidiClockTicker::tick (const samplepos_t& transport_sample, pframes_t nframes) { - if (!Config->get_send_midi_clock() || _session == 0 || _midi_port == 0) { + if (!Config->get_send_midi_clock () || _session == 0 || _midi_port == 0) { return; } @@ -251,13 +251,12 @@ MidiClockTicker::tick (const samplepos_t& /* transport_sample */, pframes_t nfra _send_pos = false; } - if (_send_state) { if (_pos->speed == 1.0f) { - if (_session->get_play_loop()) { - assert(_session->locations()->auto_loop_location()); + if (_session->get_play_loop ()) { + assert (_session->locations ()->auto_loop_location ()); - if (_pos->sample == _session->locations()->auto_loop_location()->start()) { + if (_pos->sample == _session->locations ()->auto_loop_location ()->start ()) { send_start_event (0, nframes); } else { send_continue_event (0, nframes); @@ -279,22 +278,22 @@ MidiClockTicker::tick (const samplepos_t& /* transport_sample */, pframes_t nfra _send_state = false; } - if (_session->transport_speed() != 1.0f) { + if (_session->transport_speed () != 1.0f) { /* no varispeed support and nothing to do after this if stopped */ return; } - const samplepos_t end = _pos->sample + nframes; - double iter = _last_tick; + const samplepos_t end = _pos->sample + nframes; + double iter = _last_tick; while (true) { - double clock_delta = one_ppqn_in_samples (llrint (iter)); - double next_tick = iter + clock_delta; + double clock_delta = one_ppqn_in_samples (llrint (iter)); + double next_tick = iter + clock_delta; sampleoffset_t next_tick_offset = llrint (next_tick) - end; DEBUG_TRACE (DEBUG::MidiClock, - string_compose ("Tick: iter: %1, last tick time: %2, next tick time: %3, offset: %4, cycle length: %5\n", - iter, _last_tick, next_tick, next_tick_offset, nframes)); + string_compose ("Tick: iter: %1, last tick time: %2, next tick time: %3, offset: %4, cycle length: %5\n", + iter, _last_tick, next_tick, next_tick_offset, nframes)); if (next_tick_offset >= nframes) { break; @@ -307,16 +306,16 @@ MidiClockTicker::tick (const samplepos_t& /* transport_sample */, pframes_t nfra iter = next_tick; } - _last_tick = iter; + _last_tick = iter; _pos->sample = end; } double MidiClockTicker::one_ppqn_in_samples (samplepos_t transport_position) { - const double samples_per_quarter_note = _session->tempo_map().samples_per_quarter_note_at (transport_position, _session->nominal_sample_rate()); + const double samples_per_quarter_note = _session->tempo_map ().samples_per_quarter_note_at (transport_position, _session->nominal_sample_rate ()); - return samples_per_quarter_note / double (_ppqn); + return samples_per_quarter_note / double(_ppqn); } void @@ -342,7 +341,7 @@ MidiClockTicker::send_start_event (pframes_t offset, pframes_t nframes) } static uint8_t msg = { MIDI_CMD_COMMON_START }; - MidiBuffer& mb (_midi_port->get_midi_buffer (nframes)); + MidiBuffer& mb (_midi_port->get_midi_buffer (nframes)); mb.push_back (offset, 1, &msg); DEBUG_TRACE (DEBUG::MidiClock, string_compose ("Start %1\n", _last_tick)); @@ -356,7 +355,7 @@ MidiClockTicker::send_continue_event (pframes_t offset, pframes_t nframes) } static uint8_t msg = { MIDI_CMD_COMMON_CONTINUE }; - MidiBuffer& mb (_midi_port->get_midi_buffer (nframes)); + MidiBuffer& mb (_midi_port->get_midi_buffer (nframes)); mb.push_back (offset, 1, &msg); DEBUG_TRACE (DEBUG::MidiClock, string_compose ("Continue %1\n", _last_tick)); @@ -370,7 +369,7 @@ MidiClockTicker::send_stop_event (pframes_t offset, pframes_t nframes) } static uint8_t msg = MIDI_CMD_COMMON_STOP; - MidiBuffer& mb (_midi_port->get_midi_buffer (nframes)); + MidiBuffer& mb (_midi_port->get_midi_buffer (nframes)); mb.push_back (offset, 1, &msg); DEBUG_TRACE (DEBUG::MidiClock, string_compose ("Stop %1\n", _last_tick)); @@ -397,6 +396,5 @@ MidiClockTicker::send_position_event (uint32_t midi_beats, pframes_t offset, pfr MidiBuffer& mb (_midi_port->get_midi_buffer (nframes)); mb.push_back (offset, 3, &msg[0]); - DEBUG_TRACE (DEBUG::MidiClock, string_compose ("Song Position Sent: %1 to %2 (events now %3, buf = %4)\n", midi_beats, _midi_port->name(), mb.size(), &mb)); - + DEBUG_TRACE (DEBUG::MidiClock, string_compose ("Song Position Sent: %1 to %2 (events now %3, buf = %4)\n", midi_beats, _midi_port->name (), mb.size (), &mb)); }