diff --git a/gtk2_ardour/ardev_common.sh.in b/gtk2_ardour/ardev_common.sh.in index 51864cf6dc..44dc3445c7 100644 --- a/gtk2_ardour/ardev_common.sh.in +++ b/gtk2_ardour/ardev_common.sh.in @@ -16,7 +16,7 @@ fi export VAMP_PATH=$libs/vamp-plugins${VAMP_PATH:+:$VAMP_PATH} -export LD_LIBRARY_PATH=$libs/vamp-sdk:$libs/surfaces:$libs/surfaces/control_protocol:$libs/ardour:$libs/midi++2:$libs/pbd:$libs/rubberband:$libs/soundtouch:$libs/gtkmm2ext:$libs/gnomecanvas:$libs/libsndfile:$libs/appleutility:$libs/taglib:$libs/evoral:$libs/evoral/src/libsmf:$libs/audiographer:$libs/musictime:${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} +export LD_LIBRARY_PATH=$libs/vamp-sdk:$libs/surfaces:$libs/surfaces/control_protocol:$libs/ardour:$libs/midi++2:$libs/pbd:$libs/rubberband:$libs/soundtouch:$libs/gtkmm2ext:$libs/gnomecanvas:$libs/libsndfile:$libs/appleutility:$libs/taglib:$libs/evoral:$libs/evoral/src/libsmf:$libs/audiographer:$libs/timecode:${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} # DYLD_LIBRARY_PATH is for darwin. export DYLD_FALLBACK_LIBRARY_PATH=$LD_LIBRARY_PATH diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc index 797d8551e1..f0ae7c76f4 100644 --- a/gtk2_ardour/audio_clock.cc +++ b/gtk2_ardour/audio_clock.cc @@ -640,7 +640,7 @@ void AudioClock::set_bbt (framepos_t when, bool force) { char buf[16]; - BBT_Time bbt; + Timecode::BBT_Time bbt; /* handle a common case */ if (is_duration) { @@ -1342,7 +1342,7 @@ framepos_t AudioClock::get_frames (Field field, framepos_t pos, int dir) { framecnt_t frames = 0; - BBT_Time bbt; + Timecode::BBT_Time bbt; switch (field) { case Timecode_Hours: frames = (framecnt_t) floor (3600.0 * _session->frame_rate()); @@ -1930,7 +1930,7 @@ AudioClock::bbt_frame_duration_from_display (framepos_t pos) const return 0; } - BBT_Time bbt; + Timecode::BBT_Time bbt; bbt.bars = atoi (bars_label.get_text()); diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 84cd70ee67..cfa8770ba3 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -1101,7 +1101,7 @@ Editor::set_session (Session *t) _session->history().Changed.connect (_session_connections, invalidator (*this), boost::bind (&Editor::history_changed, this), gui_context()); if (Profile->get_sae()) { - BBT_Time bbt; + Timecode::BBT_Time bbt; bbt.bars = 0; bbt.beats = 0; bbt.ticks = 120; diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index ea71390ce6..def073d7b0 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -1824,7 +1824,7 @@ MeterMarkerDrag::finished (GdkEvent* event, bool movement_occurred) motion (event, false); - BBT_Time when; + Timecode::BBT_Time when; TempoMap& map (_editor->session()->tempo_map()); map.bbt_time (last_pointer_frame(), when); @@ -1913,7 +1913,7 @@ TempoMarkerDrag::finished (GdkEvent* event, bool movement_occurred) motion (event, false); - BBT_Time when; + Timecode::BBT_Time when; TempoMap& map (_editor->session()->tempo_map()); map.bbt_time (last_pointer_frame(), when); diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index a689553e67..a857ca4cec 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -2150,7 +2150,7 @@ Editor::show_verbose_time_cursor (framepos_t frame, double offset, double xpos, { char buf[128]; Timecode::Time timecode; - BBT_Time bbt; + Timecode::BBT_Time bbt; int hours, mins; framepos_t frame_rate; float secs; @@ -2207,8 +2207,8 @@ Editor::show_verbose_duration_cursor (framepos_t start, framepos_t end, double o { char buf[128]; Timecode::Time timecode; - BBT_Time sbbt; - BBT_Time ebbt; + Timecode::BBT_Time sbbt; + Timecode::BBT_Time ebbt; int hours, mins; framepos_t distance, frame_rate; float secs; diff --git a/gtk2_ardour/editor_regions.cc b/gtk2_ardour/editor_regions.cc index 30fce08a93..4647104753 100644 --- a/gtk2_ardour/editor_regions.cc +++ b/gtk2_ardour/editor_regions.cc @@ -783,7 +783,7 @@ EditorRegions::update_all_subrows (TreeModel::Row const &parent_row, int level) void EditorRegions::format_position (framepos_t pos, char* buf, size_t bufsize) { - BBT_Time bbt; + Timecode::BBT_Time bbt; Timecode::Time timecode; switch (ARDOUR_UI::instance()->secondary_clock.mode ()) { diff --git a/gtk2_ardour/editor_rulers.cc b/gtk2_ardour/editor_rulers.cc index b367a55f25..db9058e57d 100644 --- a/gtk2_ardour/editor_rulers.cc +++ b/gtk2_ardour/editor_rulers.cc @@ -1144,20 +1144,20 @@ Editor::metric_get_timecode (GtkCustomRulerMark **marks, gdouble lower, gdouble void Editor::compute_bbt_ruler_scale (framepos_t lower, framepos_t upper) { - if (_session == 0) { - return; - } + if (_session == 0) { + return; + } TempoMap::BBTPointList::iterator i; - BBT_Time lower_beat, upper_beat; // the beats at each end of the ruler + Timecode::BBT_Time lower_beat, upper_beat; // the beats at each end of the ruler - _session->bbt_time (lower, lower_beat); - _session->bbt_time (upper, upper_beat); - uint32_t beats = 0; + _session->bbt_time (lower, lower_beat); + _session->bbt_time (upper, upper_beat); + uint32_t beats = 0; bbt_accent_modulo = 1; bbt_bar_helper_on = false; - bbt_bars = 0; - bbt_nmarks = 1; + bbt_bars = 0; + bbt_nmarks = 1; bbt_ruler_scale = bbt_over; @@ -1268,18 +1268,18 @@ Editor::compute_bbt_ruler_scale (framepos_t lower, framepos_t upper) gint Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble /*upper*/, gint /*maxchars*/) { - if (_session == 0) { - return 0; - } + if (_session == 0) { + return 0; + } TempoMap::BBTPointList::iterator i; - char buf[64]; - gint n = 0; + char buf[64]; + gint n = 0; framepos_t pos; - BBT_Time next_beat; + Timecode::BBT_Time next_beat; framepos_t next_beat_pos; - uint32_t beats = 0; + uint32_t beats = 0; uint32_t tick = 0; uint32_t skip; diff --git a/gtk2_ardour/editor_tempodisplay.cc b/gtk2_ardour/editor_tempodisplay.cc index 90fd6136cf..2bbcdf0472 100644 --- a/gtk2_ardour/editor_tempodisplay.cc +++ b/gtk2_ardour/editor_tempodisplay.cc @@ -144,7 +144,7 @@ Editor::compute_current_bbt_points (framepos_t leftmost, framepos_t rightmost) return; } - BBT_Time previous_beat, next_beat; // the beats previous to the leftmost frame and after the rightmost frame + Timecode::BBT_Time previous_beat, next_beat; // the beats previous to the leftmost frame and after the rightmost frame _session->bbt_time(leftmost, previous_beat); _session->bbt_time(rightmost, next_beat); @@ -224,7 +224,7 @@ Editor::mouse_add_new_tempo_event (framepos_t frame) } double bpm = 0; - BBT_Time requested; + Timecode::BBT_Time requested; bpm = tempo_dialog.get_bpm (); double nt = tempo_dialog.get_note_type(); @@ -271,7 +271,7 @@ Editor::mouse_add_new_meter_event (framepos_t frame) bpb = max (1.0, bpb); // XXX is this a reasonable limit? double note_type = meter_dialog.get_note_type (); - BBT_Time requested; + Timecode::BBT_Time requested; meter_dialog.get_bbt_time (requested); @@ -352,7 +352,7 @@ Editor::edit_tempo_section (TempoSection* section) double bpm = tempo_dialog.get_bpm (); double nt = tempo_dialog.get_note_type (); - BBT_Time when; + Timecode::BBT_Time when; tempo_dialog.get_bbt_time(when); bpm = max (0.01, bpm); diff --git a/gtk2_ardour/export_timespan_selector.cc b/gtk2_ardour/export_timespan_selector.cc index 32b252c97f..b5ba0fa972 100644 --- a/gtk2_ardour/export_timespan_selector.cc +++ b/gtk2_ardour/export_timespan_selector.cc @@ -246,7 +246,7 @@ ExportTimespanSelector::bbt_str (framepos_t frames) const } std::ostringstream oss; - BBT_Time time; + Timecode::BBT_Time time; _session->bbt_time (frames, time); print_padded (oss, time); diff --git a/gtk2_ardour/midi_list_editor.cc b/gtk2_ardour/midi_list_editor.cc index 6a26a58fe3..da04c3dc94 100644 --- a/gtk2_ardour/midi_list_editor.cc +++ b/gtk2_ardour/midi_list_editor.cc @@ -200,7 +200,7 @@ MidiListEditor::redisplay_model () row[columns.note] = (*i)->note(); row[columns.velocity] = (*i)->velocity(); - BBT_Time bbt; + Timecode::BBT_Time bbt; double dur; _session->tempo_map().bbt_time (conv.to ((*i)->time()), bbt); diff --git a/gtk2_ardour/tempo_dialog.cc b/gtk2_ardour/tempo_dialog.cc index 1190251fa1..cca9e6f7c5 100644 --- a/gtk2_ardour/tempo_dialog.cc +++ b/gtk2_ardour/tempo_dialog.cc @@ -42,7 +42,7 @@ TempoDialog::TempoDialog (TempoMap& map, framepos_t frame, const string & action when_bar_label (_("bar:"), ALIGN_LEFT, ALIGN_CENTER), when_beat_label (_("beat:"), ALIGN_LEFT, ALIGN_CENTER) { - BBT_Time when; + Timecode::BBT_Time when; Tempo tempo (map.tempo_at (frame)); map.bbt_time (frame, when); @@ -62,7 +62,7 @@ TempoDialog::TempoDialog (TempoSection& section, const string & action) } void -TempoDialog::init (const BBT_Time& when, double bpm, double note_type, bool movable) +TempoDialog::init (const Timecode::BBT_Time& when, double bpm, double note_type, bool movable) { bpm_spinner.set_numeric (true); bpm_spinner.set_digits (2); @@ -189,7 +189,7 @@ TempoDialog::get_bpm () } bool -TempoDialog::get_bbt_time (BBT_Time& requested) +TempoDialog::get_bbt_time (Timecode::BBT_Time& requested) { if (sscanf (when_bar_entry.get_text().c_str(), "%" PRIu32, &requested.bars) != 1) { return false; @@ -244,7 +244,7 @@ MeterDialog::MeterDialog (TempoMap& map, framepos_t frame, const string & action ok_button (action), cancel_button (_("Cancel")) { - BBT_Time when; + Timecode::BBT_Time when; frame = map.round_to_bar(frame,0); Meter meter (map.meter_at(frame)); @@ -261,7 +261,7 @@ MeterDialog::MeterDialog (MeterSection& section, const string & action) } void -MeterDialog::init (const BBT_Time& when, double bpb, double note_type, bool movable) +MeterDialog::init (const Timecode::BBT_Time& when, double bpb, double note_type, bool movable) { snprintf (buf, sizeof (buf), "%.2f", bpb); bpb_entry.set_text (buf); @@ -447,9 +447,8 @@ MeterDialog::get_note_type () } bool -MeterDialog::get_bbt_time (BBT_Time& requested) +MeterDialog::get_bbt_time (Timecode::BBT_Time& requested) { - if (sscanf (when_bar_entry.get_text().c_str(), "%" PRIu32, &requested.bars) != 1) { return false; } diff --git a/gtk2_ardour/tempo_dialog.h b/gtk2_ardour/tempo_dialog.h index ebb700e3e9..7e2f83de7c 100644 --- a/gtk2_ardour/tempo_dialog.h +++ b/gtk2_ardour/tempo_dialog.h @@ -43,10 +43,10 @@ public: double get_bpm (); double get_note_type (); - bool get_bbt_time (ARDOUR::BBT_Time&); + bool get_bbt_time (Timecode::BBT_Time&); private: - void init (const ARDOUR::BBT_Time& start, double, double, bool); + void init (const Timecode::BBT_Time& start, double, double, bool); void bpm_changed (); bool bpm_button_press (GdkEventButton* ); bool bpm_button_release (GdkEventButton* ); @@ -75,10 +75,10 @@ public: double get_bpb (); double get_note_type (); - bool get_bbt_time (ARDOUR::BBT_Time&); + bool get_bbt_time (Timecode::BBT_Time&); private: - void init (const ARDOUR::BBT_Time&, double, double, bool); + void init (const Timecode::BBT_Time&, double, double, bool); bool entry_key_press (GdkEventKey* ); bool entry_key_release (GdkEventKey* ); void note_types_change (); diff --git a/libs/ardour/ardour/location.h b/libs/ardour/ardour/location.h index c2da2c04cb..9639d9a34d 100644 --- a/libs/ardour/ardour/location.h +++ b/libs/ardour/ardour/location.h @@ -115,14 +115,14 @@ class Location : public SessionHandleRef, public PBD::StatefulDestructible void recompute_frames_from_bbt (); private: - std::string _name; - framepos_t _start; - BBT_Time _bbt_start; - framepos_t _end; - BBT_Time _bbt_end; - Flags _flags; - bool _locked; - PositionLockStyle _position_lock_style; + std::string _name; + framepos_t _start; + Timecode::BBT_Time _bbt_start; + framepos_t _end; + Timecode::BBT_Time _bbt_end; + Flags _flags; + bool _locked; + PositionLockStyle _position_lock_style; void set_mark (bool yn); bool set_flag_internal (bool yn, Flags flag); diff --git a/libs/ardour/ardour/region.h b/libs/ardour/ardour/region.h index ed4923bc40..8a3cb1d9f5 100644 --- a/libs/ardour/ardour/region.h +++ b/libs/ardour/ardour/region.h @@ -369,7 +369,7 @@ class Region framecnt_t _last_length; framepos_t _last_position; mutable RegionEditState _first_edit; - BBT_Time _bbt_time; + Timecode::BBT_Time _bbt_time; AnalysisFeatureList _transients; mutable uint64_t _read_data_count; ///< modified in read() diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index 4966c19b69..565681aa78 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -43,6 +43,8 @@ #include "midi++/types.h" +#include "timecode/time.h" + #include "ardour/ardour.h" #include "ardour/click.h" #include "ardour/chan_count.h" @@ -50,7 +52,6 @@ #include "ardour/session_configuration.h" #include "ardour/session_event.h" #include "ardour/location.h" -#include "ardour/timecode.h" #include "ardour/interpolation.h" #include "ardour/speakers.h" @@ -449,7 +450,7 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi void sync_time_vars(); - void bbt_time (framepos_t when, BBT_Time&); + void bbt_time (framepos_t when, Timecode::BBT_Time&); void timecode_to_sample(Timecode::Time& timecode, framepos_t& sample, bool use_offset, bool use_subframes) const; void sample_to_timecode(framepos_t sample, Timecode::Time& timecode, bool use_offset, bool use_subframes) const; void timecode_time (Timecode::Time &); @@ -478,7 +479,7 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi TempoMap& tempo_map() { return *_tempo_map; } /// signals the current transport position in frames, bbt and timecode time (in that order) - PBD::Signal3 tick; + PBD::Signal3 tick; /* region info */ diff --git a/libs/ardour/ardour/tempo.h b/libs/ardour/ardour/tempo.h index a1ad8d1f31..de45c788f1 100644 --- a/libs/ardour/ardour/tempo.h +++ b/libs/ardour/ardour/tempo.h @@ -78,15 +78,15 @@ class Meter { class MetricSection { public: - MetricSection (const BBT_Time& start) + MetricSection (const Timecode::BBT_Time& start) : _start (start), _frame (0), _movable (true) {} MetricSection (framepos_t start) : _frame (start), _movable (true) {} virtual ~MetricSection() {} - const BBT_Time& start() const { return _start; } - framepos_t frame() const { return _frame; } + const Timecode::BBT_Time& start() const { return _start; } + framepos_t frame() const { return _frame; } void set_movable (bool yn) { _movable = yn; } bool movable() const { return _movable; } @@ -95,7 +95,7 @@ class MetricSection { _frame = f; } - virtual void set_start (const BBT_Time& w) { + virtual void set_start (const Timecode::BBT_Time& w) { _start = w; } @@ -108,14 +108,14 @@ class MetricSection { int compare (MetricSection *, bool) const; private: - BBT_Time _start; - framepos_t _frame; - bool _movable; + Timecode::BBT_Time _start; + framepos_t _frame; + bool _movable; }; class MeterSection : public MetricSection, public Meter { public: - MeterSection (const BBT_Time& start, double bpb, double note_type) + MeterSection (const Timecode::BBT_Time& start, double bpb, double note_type) : MetricSection (start), Meter (bpb, note_type) {} MeterSection (framepos_t start, double bpb, double note_type) : MetricSection (start), Meter (bpb, note_type) {} @@ -128,7 +128,7 @@ class MeterSection : public MetricSection, public Meter { class TempoSection : public MetricSection, public Tempo { public: - TempoSection (const BBT_Time& start, double qpm, double note_type) + TempoSection (const Timecode::BBT_Time& start, double qpm, double note_type) : MetricSection (start), Tempo (qpm, note_type) {} TempoSection (framepos_t start, double qpm, double note_type) : MetricSection (start), Tempo (qpm, note_type) {} @@ -151,18 +151,18 @@ class TempoMetric { void set_tempo (const Tempo& t) { _tempo = &t; } void set_meter (const Meter& m) { _meter = &m; } void set_frame (framepos_t f) { _frame = f; } - void set_start (const BBT_Time& t) { _start = t; } + void set_start (const Timecode::BBT_Time& t) { _start = t; } const Meter& meter() const { return *_meter; } const Tempo& tempo() const { return *_tempo; } framepos_t frame() const { return _frame; } - const BBT_Time& start() const { return _start; } + const Timecode::BBT_Time& start() const { return _start; } private: - const Meter* _meter; - const Tempo* _tempo; - framepos_t _frame; - BBT_Time _start; + const Meter* _meter; + const Tempo* _tempo; + framepos_t _frame; + Timecode::BBT_Time _start; }; class TempoMap : public PBD::StatefulDestructible @@ -200,11 +200,11 @@ class TempoMap : public PBD::StatefulDestructible BBTPointList *get_points (framepos_t start, framepos_t end) const; - void bbt_time (framepos_t when, BBT_Time&) const; - framecnt_t frame_time (const BBT_Time&) const; - framecnt_t bbt_duration_at (framepos_t, const BBT_Time&, int dir) const; + void bbt_time (framepos_t when, Timecode::BBT_Time&) const; + framecnt_t frame_time (const Timecode::BBT_Time&) const; + framecnt_t bbt_duration_at (framepos_t, const Timecode::BBT_Time&, int dir) const; - void bbt_time_add (framepos_t origin, BBT_Time& start, const BBT_Time& shift); + void bbt_time_add (framepos_t origin, Timecode::BBT_Time& start, const Timecode::BBT_Time& shift); static const Tempo& default_tempo() { return _default_tempo; } static const Meter& default_meter() { return _default_meter; } @@ -214,14 +214,14 @@ class TempoMap : public PBD::StatefulDestructible const TempoSection& tempo_section_at (framepos_t); - void add_tempo(const Tempo&, BBT_Time where); - void add_meter(const Meter&, BBT_Time where); + void add_tempo(const Tempo&, Timecode::BBT_Time where); + void add_meter(const Meter&, Timecode::BBT_Time where); void add_tempo(const Tempo&, framepos_t where); void add_meter(const Meter&, framepos_t where); - void move_tempo (TempoSection&, const BBT_Time& to); - void move_meter (MeterSection&, const BBT_Time& to); + void move_tempo (TempoSection&, const Timecode::BBT_Time& to); + void move_meter (MeterSection&, const Timecode::BBT_Time& to); void remove_tempo(const TempoSection&); void remove_meter(const MeterSection&); @@ -242,13 +242,13 @@ class TempoMap : public PBD::StatefulDestructible void dump (std::ostream&) const; void clear (); - TempoMetric metric_at (BBT_Time bbt) const; + TempoMetric metric_at (Timecode::BBT_Time bbt) const; TempoMetric metric_at (framepos_t) const; - void bbt_time_with_metric (framepos_t, BBT_Time&, const TempoMetric&) const; + void bbt_time_with_metric (framepos_t, Timecode::BBT_Time&, const TempoMetric&) const; - BBT_Time bbt_add (const BBT_Time&, const BBT_Time&, const TempoMetric&) const; - BBT_Time bbt_add (const BBT_Time& a, const BBT_Time& b) const; - BBT_Time bbt_subtract (const BBT_Time&, const BBT_Time&) const; + Timecode::BBT_Time bbt_add (const Timecode::BBT_Time&, const Timecode::BBT_Time&, const TempoMetric&) const; + Timecode::BBT_Time bbt_add (const Timecode::BBT_Time& a, const Timecode::BBT_Time& b) const; + Timecode::BBT_Time bbt_subtract (const Timecode::BBT_Time&, const Timecode::BBT_Time&) const; void change_existing_tempo_at (framepos_t, double bpm, double note_type); void change_initial_tempo (double bpm, double note_type); @@ -265,30 +265,30 @@ class TempoMap : public PBD::StatefulDestructible static Meter _default_meter; Metrics* metrics; - framecnt_t _frame_rate; + framecnt_t _frame_rate; framepos_t last_bbt_when; bool last_bbt_valid; - BBT_Time last_bbt; + Timecode::BBT_Time last_bbt; mutable Glib::RWLock lock; void timestamp_metrics (bool use_bbt); framepos_t round_to_type (framepos_t fr, int dir, BBTPointType); - framepos_t frame_time_unlocked (const BBT_Time&) const; + framepos_t frame_time_unlocked (const Timecode::BBT_Time&) const; - void bbt_time_unlocked (framepos_t, BBT_Time&) const; + void bbt_time_unlocked (framepos_t, Timecode::BBT_Time&) const; - framecnt_t bbt_duration_at_unlocked (const BBT_Time& when, const BBT_Time& bbt, int dir) const; + framecnt_t bbt_duration_at_unlocked (const Timecode::BBT_Time& when, const Timecode::BBT_Time& bbt, int dir) const; const MeterSection& first_meter() const; const TempoSection& first_tempo() const; - framecnt_t count_frames_between (const BBT_Time&, const BBT_Time&) const; + framecnt_t count_frames_between (const Timecode::BBT_Time&, const Timecode::BBT_Time&) const; framecnt_t count_frames_between_metrics (const Meter&, const Tempo&, - const BBT_Time&, const BBT_Time&) const; + const Timecode::BBT_Time&, const Timecode::BBT_Time&) const; - int move_metric_section (MetricSection&, const BBT_Time& to); + int move_metric_section (MetricSection&, const Timecode::BBT_Time& to); void do_insert (MetricSection* section, bool with_bbt); }; diff --git a/libs/ardour/ardour/ticker.h b/libs/ardour/ardour/ticker.h index 42f3d88dc9..07aa1cc522 100644 --- a/libs/ardour/ardour/ticker.h +++ b/libs/ardour/ardour/ticker.h @@ -44,9 +44,9 @@ public: virtual ~Ticker() {} virtual void tick ( - const framepos_t& transport_frames, - const BBT_Time& transport_bbt, - const Timecode::Time& transport_timecode) = 0; + const framepos_t& transport_frames, + const Timecode::BBT_Time& transport_bbt, + const Timecode::Time& transport_timecode) = 0; void set_session (Session* s); }; @@ -68,9 +68,9 @@ public: } void tick( - const framepos_t& transport_frames, - const BBT_Time& transport_bbt, - const Timecode::Time& transport_timecode); + const framepos_t& transport_frames, + const Timecode::BBT_Time& transport_bbt, + const Timecode::Time& transport_timecode); void set_session (Session* s); void session_going_away(); diff --git a/libs/ardour/ardour/timecode.h b/libs/ardour/ardour/timecode.h index f0fb13b16f..7568811e29 100644 --- a/libs/ardour/ardour/timecode.h +++ b/libs/ardour/ardour/timecode.h @@ -19,6 +19,6 @@ #ifndef __libardour_timecode_h__ #define __libardour_timecode_h__ -#include "musictime/time.h" +#include "timecode/time.h" #endif // __libardour_timecode_h__ diff --git a/libs/ardour/ardour/types.h b/libs/ardour/ardour/types.h index 006ec447d7..d214a67ecd 100644 --- a/libs/ardour/ardour/types.h +++ b/libs/ardour/ardour/types.h @@ -30,10 +30,12 @@ #include #include #include -#include "musictime/time.h" + +#include "timecode/bbt_time.h" +#include "timecode/time.h" + #include "pbd/id.h" -#include "ardour/bbt_time.h" #include "ardour/chan_count.h" #include @@ -47,7 +49,7 @@ namespace ARDOUR { class Source; class AudioSource; class Route; - class Region; + class Region; typedef jack_default_audio_sample_t Sample; typedef float pan_t; @@ -56,28 +58,28 @@ namespace ARDOUR { typedef uint64_t microseconds_t; typedef jack_nframes_t pframes_t; - /* Any position measured in audio frames. - Assumed to be non-negative but not enforced. - */ + /* Any position measured in audio frames. + Assumed to be non-negative but not enforced. + */ typedef int64_t framepos_t; - /* Any distance from a given framepos_t. - Maybe positive or negative. - */ + /* Any distance from a given framepos_t. + Maybe positive or negative. + */ typedef int64_t frameoffset_t; /* Any count of audio frames. - Assumed to be positive but not enforced. - */ + Assumed to be positive but not enforced. + */ typedef int64_t framecnt_t; - static const framepos_t max_framepos = INT64_MAX; - static const framecnt_t max_framecnt = INT64_MAX; + static const framepos_t max_framepos = INT64_MAX; + static const framecnt_t max_framecnt = INT64_MAX; - // a set of (time) intervals: first of pair is the offset within the region, second is the length of the interval - typedef std::list > AudioIntervalResult; - // associate a set of intervals with regions (e.g. for silence detection) - typedef std::map,AudioIntervalResult> AudioIntervalMap; + // a set of (time) intervals: first of pair is the offset within the region, second is the length of the interval + typedef std::list > AudioIntervalResult; + // associate a set of intervals with regions (e.g. for silence detection) + typedef std::map,AudioIntervalResult> AudioIntervalMap; struct IOChange { @@ -216,8 +218,8 @@ namespace ARDOUR { Type type; - Timecode::Time timecode; - BBT_Time bbt; + Timecode::Time timecode; + Timecode::BBT_Time bbt; union { framecnt_t frames; @@ -250,11 +252,11 @@ namespace ARDOUR { }; struct MusicRange { - BBT_Time start; - BBT_Time end; + Timecode::BBT_Time start; + Timecode::BBT_Time end; uint32_t id; - MusicRange (BBT_Time& s, BBT_Time& e, uint32_t i) + MusicRange (Timecode::BBT_Time& s, Timecode::BBT_Time& e, uint32_t i) : start (s), end (e), id (i) {} bool operator== (const MusicRange& other) const { diff --git a/libs/ardour/audio_unit.cc b/libs/ardour/audio_unit.cc index 6746845f67..171e303f99 100644 --- a/libs/ardour/audio_unit.cc +++ b/libs/ardour/audio_unit.cc @@ -1331,7 +1331,7 @@ AUPlugin::get_beat_and_tempo_callback (Float64* outCurrentBeat, return kAudioUnitErr_CannotDoInCurrentContext; } - BBT_Time bbt; + Timecode::BBT_Time bbt; TempoMetric metric = tmap.metric_at (_session.transport_frame() + current_offset); tmap.bbt_time_with_metric (_session.transport_frame() + current_offset, bbt, metric); @@ -1370,7 +1370,7 @@ AUPlugin::get_musical_time_location_callback (UInt32* outDeltaSampleOffsetToNe return kAudioUnitErr_CannotDoInCurrentContext; } - BBT_Time bbt; + Timecode::BBT_Time bbt; TempoMetric metric = tmap.metric_at (_session.transport_frame() + current_offset); tmap.bbt_time_with_metric (_session.transport_frame() + current_offset, bbt, metric); @@ -1462,7 +1462,7 @@ AUPlugin::get_transport_state_callback (Boolean* outIsPlaying, return kAudioUnitErr_CannotDoInCurrentContext; } - BBT_Time bbt; + Timecode::BBT_Time bbt; if (outCycleStartBeat) { TempoMetric metric = tmap.metric_at (loc->start() + current_offset); diff --git a/libs/ardour/session_midi.cc b/libs/ardour/session_midi.cc index 83a17536e2..43fedefc15 100644 --- a/libs/ardour/session_midi.cc +++ b/libs/ardour/session_midi.cc @@ -32,9 +32,12 @@ #include "midi++/mmc.h" #include "midi++/port.h" #include "midi++/manager.h" + #include "pbd/error.h" #include "pbd/pthread_utils.h" +#include "timecode/time.h" + #include "ardour/configuration.h" #include "ardour/debug.h" #include "ardour/audioengine.h" @@ -45,7 +48,6 @@ #include "ardour/audio_diskstream.h" #include "ardour/slave.h" #include "ardour/cycles.h" -#include "ardour/timecode.h" #include "i18n.h" diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc index fe85109869..662da4db91 100644 --- a/libs/ardour/session_process.cc +++ b/libs/ardour/session_process.cc @@ -69,15 +69,15 @@ Session::process (pframes_t nframes) } } - _engine.main_thread()->get_buffers (); + _engine.main_thread()->get_buffers (); (this->*process_function) (nframes); - _engine.main_thread()->drop_buffers (); + _engine.main_thread()->drop_buffers (); // the ticker is for sending time information like MidiClock framepos_t transport_frames = transport_frame(); - BBT_Time transport_bbt; + Timecode::BBT_Time transport_bbt; bbt_time(transport_frames, transport_bbt); Timecode::Time transport_timecode; timecode_time(transport_frames, transport_timecode); diff --git a/libs/ardour/session_time.cc b/libs/ardour/session_time.cc index b5137e0d6a..bed5bab7a6 100644 --- a/libs/ardour/session_time.cc +++ b/libs/ardour/session_time.cc @@ -47,7 +47,7 @@ using namespace PBD; /* BBT TIME*/ void -Session::bbt_time (framepos_t when, BBT_Time& bbt) +Session::bbt_time (framepos_t when, Timecode::BBT_Time& bbt) { _tempo_map->bbt_time (when, bbt); } @@ -473,11 +473,11 @@ Session::jack_timebase_callback (jack_transport_state_t /*state*/, jack_position_t* pos, int /*new_position*/) { - BBT_Time bbt; + Timecode::BBT_Time bbt; - if (pos->frame != _transport_frame) { - cerr << "ARDOUR says " << _transport_frame << " JACK says " << pos->frame << endl; - } + if (pos->frame != _transport_frame) { + cerr << "ARDOUR says " << _transport_frame << " JACK says " << pos->frame << endl; + } /* BBT info */ diff --git a/libs/ardour/tempo.cc b/libs/ardour/tempo.cc index 8afdfb140b..adb207c752 100644 --- a/libs/ardour/tempo.cc +++ b/libs/ardour/tempo.cc @@ -38,6 +38,8 @@ using namespace std; using namespace ARDOUR; using namespace PBD; +using Timecode::BBT_Time; + /* _default tempo is 4/4 qtr=120 */ Meter TempoMap::_default_meter (4.0, 4.0); diff --git a/libs/ardour/test/bbt_test.cpp b/libs/ardour/test/bbt_test.cpp index 13bf5d48eb..4dab5c6f32 100644 --- a/libs/ardour/test/bbt_test.cpp +++ b/libs/ardour/test/bbt_test.cpp @@ -7,6 +7,8 @@ CPPUNIT_TEST_SUITE_REGISTRATION(BBTTest); using namespace std; using namespace ARDOUR; +using Timecode::BBT_Time; + void BBTTest::addTest () { diff --git a/libs/ardour/test/bbt_test.h b/libs/ardour/test/bbt_test.h index b823b2a071..94a4d96c03 100644 --- a/libs/ardour/test/bbt_test.h +++ b/libs/ardour/test/bbt_test.h @@ -2,7 +2,7 @@ #include #include #include -#include "ardour/bbt_time.h" +#include "timecode/bbt_time.h" class BBTTest : public CppUnit::TestFixture { diff --git a/libs/ardour/test/midi_clock_slave_test.h b/libs/ardour/test/midi_clock_slave_test.h index 7bc73fdab4..4b3572a613 100644 --- a/libs/ardour/test/midi_clock_slave_test.h +++ b/libs/ardour/test/midi_clock_slave_test.h @@ -48,8 +48,8 @@ class TestSlaveSessionProxy : public ISlaveSessionProxy { meter (4.0, 4.0) { _tempo_map = new TempoMap (FRAME_RATE); - _tempo_map->add_tempo (tempo, BBT_Time(1, 1, 0)); - _tempo_map->add_meter (meter, BBT_Time(1, 1, 0)); + _tempo_map->add_tempo (tempo, Timecode::BBT_Time(1, 1, 0)); + _tempo_map->add_meter (meter, Timecode::BBT_Time(1, 1, 0)); } // Controlling the mock object diff --git a/libs/ardour/ticker.cc b/libs/ardour/ticker.cc index 1134cec859..0b4e64e0df 100644 --- a/libs/ardour/ticker.cc +++ b/libs/ardour/ticker.cc @@ -103,7 +103,7 @@ void MidiClockTicker::transport_state_changed() send_stop_event(0); } - tick(position, *((ARDOUR::BBT_Time *) 0), *((Timecode::Time *)0)); + tick(position, *((Timecode::BBT_Time *) 0), *((Timecode::Time *)0)); } void MidiClockTicker::position_changed (framepos_t position) @@ -129,7 +129,7 @@ void MidiClockTicker::transport_looped() _last_tick = loop_location->start() - elapsed_since_last_tick; } -void MidiClockTicker::tick (const framepos_t& transport_frames, const BBT_Time& /*transport_bbt*/, const Timecode::Time& /*transport_smpt*/) +void MidiClockTicker::tick (const framepos_t& transport_frames, const Timecode::BBT_Time& /*transport_bbt*/, const Timecode::Time& /*transport_smpt*/) { if (!Config->get_send_midi_clock() || _session == 0 || _session->transport_speed() != 1.0f || _midi_port == 0) return; diff --git a/libs/midi++2/midi++/mmc.h b/libs/midi++2/midi++/mmc.h index e6716e16f3..80169c2c25 100644 --- a/libs/midi++2/midi++/mmc.h +++ b/libs/midi++2/midi++/mmc.h @@ -21,7 +21,7 @@ #define __midipp_mmc_h_h__ #include -#include "musictime/time.h" +#include "timecode/time.h" #include "pbd/signals.h" #include "pbd/ringbuffer.h" #include "midi++/types.h" diff --git a/libs/midi++2/mmc.cc b/libs/midi++2/mmc.cc index 0275c0def3..292b6cc1b4 100644 --- a/libs/midi++2/mmc.cc +++ b/libs/midi++2/mmc.cc @@ -21,7 +21,7 @@ #include #include -#include "musictime/time.h" +#include "timecode/time.h" #include "pbd/error.h" #include "midi++/mmc.h" #include "midi++/port.h" diff --git a/libs/midi++2/wscript b/libs/midi++2/wscript index 6c3d251a55..d5d7fdef83 100644 --- a/libs/midi++2/wscript +++ b/libs/midi++2/wscript @@ -62,7 +62,7 @@ def build(bld): obj.name = 'libmidipp' obj.target = 'midipp' obj.uselib = 'GLIBMM SIGCPP XML JACK OSX' - obj.uselib_local = 'libpbd libevoral libmusictime' + obj.uselib_local = 'libpbd libevoral libtimecode' obj.vnum = LIBMIDIPP_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') diff --git a/libs/surfaces/control_protocol/control_protocol/basic_ui.h b/libs/surfaces/control_protocol/control_protocol/basic_ui.h index f555ed326a..3bd5ea1c0a 100644 --- a/libs/surfaces/control_protocol/control_protocol/basic_ui.h +++ b/libs/surfaces/control_protocol/control_protocol/basic_ui.h @@ -30,7 +30,7 @@ #include -#include "musictime/time.h" +#include "timecode/time.h" namespace ARDOUR { class Session; diff --git a/libs/surfaces/control_protocol/wscript b/libs/surfaces/control_protocol/wscript index 00c9613c77..94e5ef1359 100644 --- a/libs/surfaces/control_protocol/wscript +++ b/libs/surfaces/control_protocol/wscript @@ -30,7 +30,7 @@ def build(bld): obj.includes = ['.', './control_protocol'] obj.name = 'libardour_cp' obj.target = 'ardourcp' - obj.uselib_local = 'libardour libmusictime' + obj.uselib_local = 'libardour libtimecode' obj.vnum = LIBARDOUR_CP_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') diff --git a/libs/surfaces/frontier/tranzport/tranzport_control_protocol.cc b/libs/surfaces/frontier/tranzport/tranzport_control_protocol.cc index f6a8f4d4b7..7bda9a3e5d 100644 --- a/libs/surfaces/frontier/tranzport/tranzport_control_protocol.cc +++ b/libs/surfaces/frontier/tranzport/tranzport_control_protocol.cc @@ -559,7 +559,7 @@ TranzportControlProtocol::show_bbt (framepos_t where) { if ((where != last_where) || lcd_isdamaged(1,9,8)) { char buf[16]; - BBT_Time bbt; + Timecode::BBT_Time bbt; session->tempo_map().bbt_time (where, bbt); sprintf (buf, "%03" PRIu32 "|%02" PRIu32 "|%04" PRIu32, bbt.bars,bbt.beats,bbt.ticks); last_bars = bbt.bars; diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc index 25b5679c45..17b013713d 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.cc +++ b/libs/surfaces/mackie/mackie_control_protocol.cc @@ -1050,7 +1050,7 @@ MackieControlProtocol::update_automation (RouteSignal & rs) string MackieControlProtocol::format_bbt_timecode (framepos_t now_frame) { - BBT_Time bbt_time; + Timecode::BBT_Time bbt_time; session->bbt_time (now_frame, bbt_time); // According to the Logic docs diff --git a/libs/surfaces/tranzport/show.cc b/libs/surfaces/tranzport/show.cc index c7eb11216a..46047f30c5 100644 --- a/libs/surfaces/tranzport/show.cc +++ b/libs/surfaces/tranzport/show.cc @@ -288,7 +288,7 @@ TranzportControlProtocol::show_bbt (framepos_t where) { if (where != last_where) { char buf[16]; - BBT_Time bbt; + Timecode::BBT_Time bbt; // When recording or playing back < 1.0 speed do 1 or 2 // FIXME - clean up state machine & break up logic diff --git a/libs/musictime/src/time.cc b/libs/timecode/src/time.cc similarity index 99% rename from libs/musictime/src/time.cc rename to libs/timecode/src/time.cc index 8784a9017d..c87662a18c 100644 --- a/libs/musictime/src/time.cc +++ b/libs/timecode/src/time.cc @@ -21,7 +21,7 @@ #include -#include "musictime/time.h" +#include "timecode/time.h" namespace Timecode { diff --git a/libs/ardour/ardour/bbt_time.h b/libs/timecode/timecode/bbt_time.h similarity index 82% rename from libs/ardour/ardour/bbt_time.h rename to libs/timecode/timecode/bbt_time.h index 2157e794a2..5dda3bfcbf 100644 --- a/libs/ardour/ardour/bbt_time.h +++ b/libs/timecode/timecode/bbt_time.h @@ -17,25 +17,23 @@ */ -#ifndef __ardour_bbt_time_h__ -#define __ardour_bbt_time_h__ +#ifndef __timecode_bbt_time_h__ +#define __timecode_bbt_time_h__ #include #include #include -namespace ARDOUR { +namespace Timecode { +/** Bar, Beat, Tick Time (i.e. Tempo-Based Time) */ struct BBT_Time { uint32_t bars; uint32_t beats; uint32_t ticks; - BBT_Time() { - bars = 1; - beats = 1; - ticks = 0; - } + BBT_Time () + : bars (1), beats (1), ticks (0) {} BBT_Time (uint32_t ba, uint32_t be, uint32_t t) : bars (ba), beats (be), ticks (t) {} @@ -54,14 +52,14 @@ struct BBT_Time { } inline std::ostream& -operator<< (std::ostream& o, const ARDOUR::BBT_Time& bbt) +operator<< (std::ostream& o, const Timecode::BBT_Time& bbt) { o << bbt.bars << '|' << bbt.beats << '|' << bbt.ticks; return o; } inline std::ostream& -print_padded (std::ostream& o, const ARDOUR::BBT_Time& bbt) +print_padded (std::ostream& o, const Timecode::BBT_Time& bbt) { o << std::setfill ('0') << std::right << std::setw (3) << bbt.bars << "|" @@ -71,4 +69,4 @@ print_padded (std::ostream& o, const ARDOUR::BBT_Time& bbt) return o; } -#endif /* __ardour_bbt_time_h__ */ +#endif /* __timecode_bbt_time_h__ */ diff --git a/libs/musictime/musictime/time.h b/libs/timecode/timecode/time.h similarity index 100% rename from libs/musictime/musictime/time.h rename to libs/timecode/timecode/time.h diff --git a/libs/musictime/wscript b/libs/timecode/wscript similarity index 78% rename from libs/musictime/wscript rename to libs/timecode/wscript index 938ef6e7a0..efdc814053 100644 --- a/libs/musictime/wscript +++ b/libs/timecode/wscript @@ -4,7 +4,7 @@ import Options import os # Version of this package (even if built as a child) -MUSICTIME_VERSION = '0.0.0' +TIMECODE_VERSION = '0.0.0' # Library version (UNIX style major, minor, micro) # major increment <=> incompatible changes @@ -12,11 +12,11 @@ MUSICTIME_VERSION = '0.0.0' # micro increment <=> no interface changes # Version history: # 0.0.0 = 0,0,0 -MUSICTIME_LIB_VERSION = '0.0.0' +TIMECODE_LIB_VERSION = '0.0.0' # Variables for 'waf dist' -APPNAME = 'musictime' -VERSION = MUSICTIME_VERSION +APPNAME = 'timecode' +VERSION = TIMECODE_VERSION # Mandatory variables srcdir = '.' @@ -36,9 +36,9 @@ def build(bld): obj.source = 'src/time.cc' obj.export_incdirs = ['.'] obj.includes = ['.', './src'] - obj.name = 'libmusictime' - obj.target = 'musictime' - obj.vnum = MUSICTIME_LIB_VERSION + obj.name = 'libtimecode' + obj.target = 'timecode' + obj.vnum = TIMECODE_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') def shutdown(): diff --git a/wscript b/wscript index 44192ad4ac..c648f63421 100644 --- a/wscript +++ b/wscript @@ -25,7 +25,7 @@ children = [ 'libs/taglib', 'libs/rubberband', 'libs/surfaces', - 'libs/musictime', + 'libs/timecode', 'libs/ardour', 'libs/gtkmm2ext', 'libs/clearlooks-newer', @@ -583,7 +583,7 @@ def build(bld): bld.path.find_dir ('libs/evoral/evoral') bld.path.find_dir ('libs/vamp-sdk/vamp-sdk') bld.path.find_dir ('libs/surfaces/control_protocol/control_protocol') - bld.path.find_dir ('libs/musictime/musictime') + bld.path.find_dir ('libs/timecode/timecode') bld.path.find_dir ('libs/rubberband/rubberband') bld.path.find_dir ('libs/gtkmm2ext/gtkmm2ext') bld.path.find_dir ('libs/ardour/ardour')