diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2017-09-24 12:03:54 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2017-09-24 12:03:54 -0400 |
commit | 7db12f6b128eef0d63dd6a8eda3d04f4dab1fc79 (patch) | |
tree | 388aecd96220df899626709aeb8c7dbc37fd9088 /libs | |
parent | 9283bee867ce788465f3e48ed889cd324e098e64 (diff) |
convert codebase to use Temporal for various time types
Diffstat (limited to 'libs')
73 files changed, 250 insertions, 282 deletions
diff --git a/libs/ardour/analysis_graph.cc b/libs/ardour/analysis_graph.cc index fe5b1c9a3b..e85abba211 100644 --- a/libs/ardour/analysis_graph.cc +++ b/libs/ardour/analysis_graph.cc @@ -21,7 +21,7 @@ #include "ardour/route.h" #include "ardour/session.h" -#include "timecode/time.h" +#include "temporal/time.h" #include "audiographer/process_context.h" #include "audiographer/general/chunker.h" diff --git a/libs/ardour/ardour/beats_samples_converter.h b/libs/ardour/ardour/beats_samples_converter.h index f9ca27f209..3323ee67c8 100644 --- a/libs/ardour/ardour/beats_samples_converter.h +++ b/libs/ardour/ardour/beats_samples_converter.h @@ -19,7 +19,7 @@ $Id: midiregion.h 733 2006-08-01 17:19:38Z drobilla $ */ -#include "evoral/Beats.hpp" +#include "temporal/beats.h" #include "evoral/TimeConverter.hpp" #include "ardour/libardour_visibility.h" @@ -37,15 +37,15 @@ class TempoMap; * them to the opposite unit, taking tempo changes into account. */ class LIBARDOUR_API BeatsSamplesConverter - : public Evoral::TimeConverter<Evoral::Beats,samplepos_t> { + : public Evoral::TimeConverter<Temporal::Beats,samplepos_t> { public: BeatsSamplesConverter (const TempoMap& tempo_map, samplepos_t origin) - : Evoral::TimeConverter<Evoral::Beats, samplepos_t> (origin) + : Evoral::TimeConverter<Temporal::Beats, samplepos_t> (origin) , _tempo_map(tempo_map) {} - samplepos_t to (Evoral::Beats beats) const; - Evoral::Beats from (samplepos_t samples) const; + samplepos_t to (Temporal::Beats beats) const; + Temporal::Beats from (samplepos_t samples) const; private: const TempoMap& _tempo_map; diff --git a/libs/ardour/ardour/evoral_types_convert.h b/libs/ardour/ardour/evoral_types_convert.h index 38d6c61e99..bc2b989d44 100644 --- a/libs/ardour/ardour/evoral_types_convert.h +++ b/libs/ardour/ardour/evoral_types_convert.h @@ -22,7 +22,7 @@ #include "pbd/enum_convert.h" -#include "evoral/Beats.hpp" +#include "temporal/beats.h" #include "evoral/ControlList.hpp" namespace PBD { @@ -30,24 +30,24 @@ namespace PBD { DEFINE_ENUM_CONVERT(Evoral::ControlList::InterpolationStyle) template <> -inline bool to_string (Evoral::Beats beats, std::string& str) +inline bool to_string (Temporal::Beats beats, std::string& str) { return double_to_string (beats.to_double (), str); } template <> -inline bool string_to (const std::string& str, Evoral::Beats& beats) +inline bool string_to (const std::string& str, Temporal::Beats& beats) { double tmp; if (!string_to_double (str, tmp)) { return false; } - beats = Evoral::Beats(tmp); + beats = Temporal::Beats(tmp); return true; } template <> -inline std::string to_string (Evoral::Beats beats) +inline std::string to_string (Temporal::Beats beats) { std::string tmp; double_to_string (beats.to_double (), tmp); @@ -55,11 +55,11 @@ inline std::string to_string (Evoral::Beats beats) } template <> -inline Evoral::Beats string_to (const std::string& str) +inline Temporal::Beats string_to (const std::string& str) { double tmp; string_to_double (str, tmp); - return Evoral::Beats (tmp); + return Temporal::Beats (tmp); } } // namespace PBD diff --git a/libs/ardour/ardour/legatize.h b/libs/ardour/ardour/legatize.h index aba65682a6..74c4d112df 100644 --- a/libs/ardour/ardour/legatize.h +++ b/libs/ardour/ardour/legatize.h @@ -39,10 +39,10 @@ public: Legatize(bool shrink_only); ~Legatize(); - typedef Evoral::Sequence<Evoral::Beats>::Notes Notes; + typedef Evoral::Sequence<Temporal::Beats>::Notes Notes; Command* operator()(boost::shared_ptr<ARDOUR::MidiModel> model, - Evoral::Beats position, + Temporal::Beats position, std::vector<Notes>& seqs); std::string name () const { return (_shrink_only ? std::string ("remove overlap") : std::string ("legatize")); } diff --git a/libs/ardour/ardour/lua_api.h b/libs/ardour/ardour/lua_api.h index 797577df00..6d1deeb5aa 100644 --- a/libs/ardour/ardour/lua_api.h +++ b/libs/ardour/ardour/lua_api.h @@ -298,10 +298,10 @@ namespace ARDOUR { namespace LuaAPI { }; - boost::shared_ptr<Evoral::Note<Evoral::Beats> > - new_noteptr (uint8_t, Evoral::Beats, Evoral::Beats, uint8_t, uint8_t); + boost::shared_ptr<Evoral::Note<Temporal::Beats> > + new_noteptr (uint8_t, Temporal::Beats, Temporal::Beats, uint8_t, uint8_t); - std::list<boost::shared_ptr< Evoral::Note<Evoral::Beats> > > + std::list<boost::shared_ptr< Evoral::Note<Temporal::Beats> > > note_list (boost::shared_ptr<ARDOUR::MidiModel>); } } /* namespace */ diff --git a/libs/ardour/ardour/midi_cursor.h b/libs/ardour/ardour/midi_cursor.h index 6748a48971..6504874990 100644 --- a/libs/ardour/ardour/midi_cursor.h +++ b/libs/ardour/ardour/midi_cursor.h @@ -25,7 +25,7 @@ #include <boost/utility.hpp> #include "ardour/types.h" -#include "evoral/Beats.hpp" +#include "temporal/beats.h" #include "evoral/Sequence.hpp" #include "pbd/signals.h" @@ -45,8 +45,8 @@ struct MidiCursor : public boost::noncopyable { last_read_end = 0; } - Evoral::Sequence<Evoral::Beats>::const_iterator iter; - std::set<Evoral::Sequence<Evoral::Beats>::WeakNotePtr> active_notes; + Evoral::Sequence<Temporal::Beats>::const_iterator iter; + std::set<Evoral::Sequence<Temporal::Beats>::WeakNotePtr> active_notes; samplepos_t last_read_end; PBD::ScopedConnectionList connections; }; diff --git a/libs/ardour/ardour/midi_model.h b/libs/ardour/ardour/midi_model.h index 8f8fd5c2cf..81e60ecf93 100644 --- a/libs/ardour/ardour/midi_model.h +++ b/libs/ardour/ardour/midi_model.h @@ -52,9 +52,9 @@ class MidiSource; * Because of this MIDI controllers and automatable controllers/widgets/etc * are easily interchangeable. */ -class LIBARDOUR_API MidiModel : public AutomatableSequence<Evoral::Beats> { +class LIBARDOUR_API MidiModel : public AutomatableSequence<Temporal::Beats> { public: - typedef Evoral::Beats TimeType; + typedef Temporal::Beats TimeType; MidiModel (boost::shared_ptr<MidiSource>); @@ -265,8 +265,8 @@ public: bool write_section_to(boost::shared_ptr<MidiSource> source, const Glib::Threads::Mutex::Lock& source_lock, - Evoral::Beats begin = Evoral::Beats(), - Evoral::Beats end = std::numeric_limits<Evoral::Beats>::max(), + Temporal::Beats begin = Temporal::Beats(), + Temporal::Beats end = std::numeric_limits<Temporal::Beats>::max(), bool offset_events = false); // MidiModel doesn't use the normal AutomationList serialisation code diff --git a/libs/ardour/ardour/midi_operator.h b/libs/ardour/ardour/midi_operator.h index 589e93041d..24c5d80167 100644 --- a/libs/ardour/ardour/midi_operator.h +++ b/libs/ardour/ardour/midi_operator.h @@ -23,7 +23,7 @@ #include <vector> #include <string> -#include "evoral/Beats.hpp" +#include "temporal/beats.h" #include "evoral/Sequence.hpp" class Command; @@ -38,8 +38,8 @@ class LIBARDOUR_API MidiOperator { virtual ~MidiOperator() {} virtual Command* operator() (boost::shared_ptr<ARDOUR::MidiModel>, - Evoral::Beats, - std::vector<Evoral::Sequence<Evoral::Beats>::Notes>&) = 0; + Temporal::Beats, + std::vector<Evoral::Sequence<Temporal::Beats>::Notes>&) = 0; virtual std::string name() const = 0; }; diff --git a/libs/ardour/ardour/midi_playlist.h b/libs/ardour/ardour/midi_playlist.h index 952b0ab00f..f784b73177 100644 --- a/libs/ardour/ardour/midi_playlist.h +++ b/libs/ardour/ardour/midi_playlist.h @@ -117,7 +117,7 @@ protected: void region_going_away (boost::weak_ptr<Region> region); private: - typedef Evoral::Note<Evoral::Beats> Note; + typedef Evoral::Note<Temporal::Beats> Note; typedef Evoral::Event<samplepos_t> Event; struct RegionTracker : public boost::noncopyable { diff --git a/libs/ardour/ardour/midi_playlist_source.h b/libs/ardour/ardour/midi_playlist_source.h index 0d140a9855..0e749e7840 100644 --- a/libs/ardour/ardour/midi_playlist_source.h +++ b/libs/ardour/ardour/midi_playlist_source.h @@ -45,7 +45,7 @@ public: XMLNode& get_state (); int set_state (const XMLNode&, int version); - void append_event_beats(const Glib::Threads::Mutex::Lock& lock, const Evoral::Event<Evoral::Beats>& ev); + void append_event_beats(const Glib::Threads::Mutex::Lock& lock, const Evoral::Event<Temporal::Beats>& ev); void append_event_samples(const Glib::Threads::Mutex::Lock& lock, const Evoral::Event<samplepos_t>& ev, samplepos_t source_start); void load_model(const Glib::Threads::Mutex::Lock& lock, bool force_reload=false); void destroy_model(const Glib::Threads::Mutex::Lock& lock); diff --git a/libs/ardour/ardour/midi_region.h b/libs/ardour/ardour/midi_region.h index 00a5f28a5e..d46f59a6aa 100644 --- a/libs/ardour/ardour/midi_region.h +++ b/libs/ardour/ardour/midi_region.h @@ -23,7 +23,7 @@ #include <vector> -#include "evoral/Beats.hpp" +#include "temporal/beats.h" #include "evoral/Range.hpp" #include "pbd/string_convert.h" diff --git a/libs/ardour/ardour/midi_source.h b/libs/ardour/ardour/midi_source.h index 5f59baab22..0bede7fe52 100644 --- a/libs/ardour/ardour/midi_source.h +++ b/libs/ardour/ardour/midi_source.h @@ -46,7 +46,7 @@ template<typename T> class MidiRingBuffer; class LIBARDOUR_API MidiSource : virtual public Source, public boost::enable_shared_from_this<MidiSource> { public: - typedef Evoral::Beats TimeType; + typedef Temporal::Beats TimeType; MidiSource (Session& session, std::string name, Source::Flag flags = Source::Flag(0)); MidiSource (Session& session, const XMLNode&); @@ -62,8 +62,8 @@ class LIBARDOUR_API MidiSource : virtual public Source, public boost::enable_sha */ int write_to (const Lock& lock, boost::shared_ptr<MidiSource> newsrc, - Evoral::Beats begin = Evoral::Beats(), - Evoral::Beats end = std::numeric_limits<Evoral::Beats>::max()); + Temporal::Beats begin = Temporal::Beats(), + Temporal::Beats end = std::numeric_limits<Temporal::Beats>::max()); /** Export the midi data in the given time range to another MidiSource * \param newsrc MidiSource to which data will be written. Should be a @@ -75,8 +75,8 @@ class LIBARDOUR_API MidiSource : virtual public Source, public boost::enable_sha */ int export_write_to (const Lock& lock, boost::shared_ptr<MidiSource> newsrc, - Evoral::Beats begin, - Evoral::Beats end); + Temporal::Beats begin, + Temporal::Beats end); /** Read the data in a given time range from the MIDI source. * All time stamps in parameters are in audio samples (even if the source has tempo time). @@ -116,7 +116,7 @@ class LIBARDOUR_API MidiSource : virtual public Source, public boost::enable_sha * Caller must ensure that the event is later than the last written event. */ virtual void append_event_beats(const Lock& lock, - const Evoral::Event<Evoral::Beats>& ev) = 0; + const Evoral::Event<Temporal::Beats>& ev) = 0; /** Append a single event with a timestamp in samples. * @@ -155,8 +155,8 @@ class LIBARDOUR_API MidiSource : virtual public Source, public boost::enable_sha */ virtual void mark_midi_streaming_write_completed ( const Lock& lock, - Evoral::Sequence<Evoral::Beats>::StuckNoteOption stuck_option, - Evoral::Beats when = Evoral::Beats()); + Evoral::Sequence<Temporal::Beats>::StuckNoteOption stuck_option, + Temporal::Beats when = Temporal::Beats()); virtual void session_saved(); @@ -232,7 +232,7 @@ class LIBARDOUR_API MidiSource : virtual public Source, public boost::enable_sha boost::shared_ptr<MidiModel> _model; bool _writing; - Evoral::Beats _length_beats; + Temporal::Beats _length_beats; /** The total duration of the current capture. */ samplepos_t _capture_length; diff --git a/libs/ardour/ardour/midi_state_tracker.h b/libs/ardour/ardour/midi_state_tracker.h index 7843ff7e1d..48f9837f94 100644 --- a/libs/ardour/ardour/midi_state_tracker.h +++ b/libs/ardour/ardour/midi_state_tracker.h @@ -22,6 +22,7 @@ #include <glibmm/threads.h> +#include "temporal/beats.h" #include "ardour/midi_buffer.h" namespace Evoral { @@ -46,7 +47,7 @@ public: void remove (uint8_t note, uint8_t chn); void resolve_notes (MidiBuffer& buffer, samplepos_t time); void resolve_notes (Evoral::EventSink<samplepos_t>& buffer, samplepos_t time); - void resolve_notes (MidiSource& src, const Glib::Threads::Mutex::Lock& lock, Evoral::Beats time); + void resolve_notes (MidiSource& src, const Glib::Threads::Mutex::Lock& lock, Temporal::Beats time); void dump (std::ostream&); void reset (); bool empty() const { return _on == 0; } diff --git a/libs/ardour/ardour/note_fixer.h b/libs/ardour/ardour/note_fixer.h index 34582497d0..320c92bc71 100644 --- a/libs/ardour/ardour/note_fixer.h +++ b/libs/ardour/ardour/note_fixer.h @@ -26,7 +26,7 @@ #include "ardour/midi_model.h" #include "ardour/types.h" -#include "evoral/Beats.hpp" +#include "temporal/beats.h" #include "evoral/Note.hpp" namespace Evoral { template<typename Time> class EventSink; } @@ -46,7 +46,7 @@ class TempoMap; class NoteFixer : public boost::noncopyable { public: - typedef Evoral::Note<Evoral::Beats> Note; + typedef Evoral::Note<Temporal::Beats> Note; ~NoteFixer(); @@ -85,7 +85,7 @@ private: typedef std::list<Event*> Events; /** Copy a beats event to a samples event with the given time stamp. */ - Event* copy_event(samplepos_t time, const Evoral::Event<Evoral::Beats>& ev); + Event* copy_event(samplepos_t time, const Evoral::Event<Temporal::Beats>& ev); /** Return true iff `note` is active at `pos`. */ bool note_is_active(const BeatsSamplesConverter& converter, diff --git a/libs/ardour/ardour/quantize.h b/libs/ardour/ardour/quantize.h index 639736b174..7255d4ce4f 100644 --- a/libs/ardour/ardour/quantize.h +++ b/libs/ardour/ardour/quantize.h @@ -35,8 +35,8 @@ public: ~Quantize (); Command* operator() (boost::shared_ptr<ARDOUR::MidiModel>, - Evoral::Beats position, - std::vector<Evoral::Sequence<Evoral::Beats>::Notes>&); + Temporal::Beats position, + std::vector<Evoral::Sequence<Temporal::Beats>::Notes>&); std::string name() const { return std::string ("quantize"); } private: diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index 8af452cc88..bbd2fe56cf 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -55,7 +55,7 @@ #include "midi++/types.h" #include "midi++/mmc.h" -#include "timecode/time.h" +#include "temporal/time.h" #include "ardour/ardour.h" #include "ardour/chan_count.h" diff --git a/libs/ardour/ardour/slave.h b/libs/ardour/ardour/slave.h index 3c0f52d5ae..155e295cbf 100644 --- a/libs/ardour/ardour/slave.h +++ b/libs/ardour/ardour/slave.h @@ -28,7 +28,7 @@ #include "pbd/signals.h" -#include "timecode/time.h" +#include "temporal/time.h" #include "ardour/libardour_visibility.h" #include "ardour/types.h" diff --git a/libs/ardour/ardour/smf_source.h b/libs/ardour/ardour/smf_source.h index 5b121b4a52..68dd74e1c4 100644 --- a/libs/ardour/ardour/smf_source.h +++ b/libs/ardour/ardour/smf_source.h @@ -51,14 +51,14 @@ public: return safe_midi_file_extension(path); } - void append_event_beats (const Lock& lock, const Evoral::Event<Evoral::Beats>& ev); + void append_event_beats (const Lock& lock, const Evoral::Event<Temporal::Beats>& ev); void append_event_samples (const Lock& lock, const Evoral::Event<samplepos_t>& ev, samplepos_t source_start); void mark_streaming_midi_write_started (const Lock& lock, NoteMode mode); void mark_streaming_write_completed (const Lock& lock); void mark_midi_streaming_write_completed (const Lock& lock, - Evoral::Sequence<Evoral::Beats>::StuckNoteOption, - Evoral::Beats when = Evoral::Beats()); + Evoral::Sequence<Temporal::Beats>::StuckNoteOption, + Temporal::Beats when = Temporal::Beats()); XMLNode& get_state (); int set_state (const XMLNode&, int version); @@ -78,7 +78,7 @@ public: private: bool _open; - Evoral::Beats _last_ev_time_beats; + Temporal::Beats _last_ev_time_beats; samplepos_t _last_ev_time_samples; /** end time (start + duration) of last call to read_unlocked */ mutable samplepos_t _smf_last_read_end; diff --git a/libs/ardour/ardour/tempo.h b/libs/ardour/ardour/tempo.h index 99c28b5748..c200eafadc 100644 --- a/libs/ardour/ardour/tempo.h +++ b/libs/ardour/ardour/tempo.h @@ -32,7 +32,7 @@ #include "pbd/stateful.h" #include "pbd/statefuldestructible.h" -#include "evoral/Beats.hpp" +#include "temporal/beats.h" #include "ardour/ardour.h" @@ -450,7 +450,7 @@ class LIBARDOUR_API TempoMap : public PBD::StatefulDestructible that align with the grid formed by tempo and meter sections. They SHOULD NOT be used to determine the position of events - whose location is canonically defined in Evoral::Beats. + whose location is canonically defined in Temporal::Beats. */ double beat_at_sample (const samplecnt_t sample) const; @@ -482,14 +482,14 @@ class LIBARDOUR_API TempoMap : public PBD::StatefulDestructible when tempo matters but meter does not. They SHOULD be used to determine the position of events - whose location is canonically defined in Evoral::Beats. + whose location is canonically defined in Temporal::Beats. */ - samplepos_t samplepos_plus_qn (samplepos_t, Evoral::Beats) const; - Evoral::Beats framewalk_to_qn (samplepos_t pos, samplecnt_t distance) const; + samplepos_t samplepos_plus_qn (samplepos_t, Temporal::Beats) const; + Temporal::Beats framewalk_to_qn (samplepos_t pos, samplecnt_t distance) const; /* quarter note related functions are also tempo-sensitive and ignore meter. - quarter notes may be compared with and assigned to Evoral::Beats. + quarter notes may be compared with and assigned to Temporal::Beats. */ double quarter_note_at_sample (const samplepos_t sample) const; double quarter_note_at_sample_rt (const samplepos_t sample) const; diff --git a/libs/ardour/ardour/timecode.h b/libs/ardour/ardour/timecode.h index 050cc22066..0ea5ceb4cb 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 "timecode/time.h" +#include "temporal/time.h" #endif // __libardour_timecode_h__ diff --git a/libs/ardour/ardour/transform.h b/libs/ardour/ardour/transform.h index df77244a17..89c135ab0a 100644 --- a/libs/ardour/ardour/transform.h +++ b/libs/ardour/ardour/transform.h @@ -50,8 +50,8 @@ namespace ARDOUR { */ class LIBARDOUR_API Transform : public MidiOperator { public: - typedef Evoral::Sequence<Evoral::Beats>::NotePtr NotePtr; - typedef Evoral::Sequence<Evoral::Beats>::Notes Notes; + typedef Evoral::Sequence<Temporal::Beats>::NotePtr NotePtr; + typedef Evoral::Sequence<Temporal::Beats>::Notes Notes; typedef ARDOUR::MidiModel::NoteDiffCommand::Property Property; /** Context while iterating over notes during transformation. */ @@ -132,7 +132,7 @@ public: Transform(const Program& prog); Command* operator()(boost::shared_ptr<ARDOUR::MidiModel> model, - Evoral::Beats position, + Temporal::Beats position, std::vector<Notes>& seqs); std::string name() const { return std::string ("transform"); } diff --git a/libs/ardour/ardour/transpose.h b/libs/ardour/ardour/transpose.h index 17f83283f9..ad44e28de7 100644 --- a/libs/ardour/ardour/transpose.h +++ b/libs/ardour/ardour/transpose.h @@ -28,13 +28,13 @@ namespace ARDOUR { class LIBARDOUR_API Transpose : public MidiOperator { public: - typedef Evoral::Sequence<Evoral::Beats>::NotePtr NotePtr; - typedef Evoral::Sequence<Evoral::Beats>::Notes Notes; + typedef Evoral::Sequence<Temporal::Beats>::NotePtr NotePtr; + typedef Evoral::Sequence<Temporal::Beats>::Notes Notes; Transpose (int semitones); Command* operator() (boost::shared_ptr<ARDOUR::MidiModel> model, - Evoral::Beats position, + Temporal::Beats position, std::vector<Notes>& seqs); std::string name () const { return std::string ("transpose"); } diff --git a/libs/ardour/ardour/types.h b/libs/ardour/ardour/types.h index d3ed94e552..44f24c2225 100644 --- a/libs/ardour/ardour/types.h +++ b/libs/ardour/ardour/types.h @@ -31,8 +31,9 @@ #include <inttypes.h> -#include "timecode/bbt_time.h" -#include "timecode/time.h" +#include "temporal/bbt_time.h" +#include "temporal/time.h" +#include "temporal/types.h" #include "pbd/id.h" @@ -43,6 +44,9 @@ #include <map> +using Temporal::max_samplepos; +using Temporal::max_samplecnt; + #if __GNUC__ < 3 typedef int intptr_t; #endif @@ -65,23 +69,11 @@ namespace ARDOUR { typedef uint64_t microseconds_t; typedef uint32_t pframes_t; - /* Any position measured in audio samples. - Assumed to be non-negative but not enforced. - */ - typedef int64_t samplepos_t; - - /* Any distance from a given samplepos_t. - Maybe positive or negative. - */ - typedef int64_t sampleoffset_t; - - /* Any count of audio samples. - Assumed to be positive but not enforced. - */ - typedef int64_t samplecnt_t; + /* rebind Temporal position types into ARDOUR namespace */ + typedef Temporal::samplecnt_t samplecnt_t; + typedef Temporal::samplepos_t samplepos_t; + typedef Temporal::sampleoffset_t sampleoffset_t; - static const samplepos_t max_samplepos = INT64_MAX; - static const samplecnt_t max_samplecnt = INT64_MAX; static const layer_t max_layer = UINT32_MAX; // a set of (time) intervals: first of pair is the offset of the start within the region, second is the offset of the end @@ -720,38 +712,8 @@ namespace ARDOUR { } // namespace ARDOUR -static inline ARDOUR::samplepos_t -session_sample_to_track_sample (ARDOUR::samplepos_t session_sample, double speed) -{ - long double result = (long double) session_sample * (long double) speed; - - if (result >= (long double) ARDOUR::max_samplepos) { - return ARDOUR::max_samplepos; - } else if (result <= (long double) (ARDOUR::max_samplepos) * (ARDOUR::samplepos_t)(-1)) { - return (ARDOUR::max_samplepos * (ARDOUR::samplepos_t)(-1)); - } else { - return result; - } -} - -static inline ARDOUR::samplepos_t -track_sample_to_session_sample (ARDOUR::samplepos_t track_sample, double speed) -{ - /* NB - do we need a check for speed == 0 ??? */ - long double result = (long double) track_sample / (long double) speed; - - if (result >= (long double) ARDOUR::max_samplepos) { - return ARDOUR::max_samplepos; - } else if (result <= (long double) (ARDOUR::max_samplepos) * (ARDOUR::samplepos_t)(-1)) { - return (ARDOUR::max_samplepos * (ARDOUR::samplepos_t)(-1)); - } else { - return result; - } -} - /* for now, break the rules and use "using" to make this "global" */ using ARDOUR::samplepos_t; - #endif /* __ardour_types_h__ */ diff --git a/libs/ardour/ardour/variant.h b/libs/ardour/ardour/variant.h index 4cf1df5556..0c99543e4b 100644 --- a/libs/ardour/ardour/variant.h +++ b/libs/ardour/ardour/variant.h @@ -27,7 +27,7 @@ #include <stdexcept> #include "ardour/libardour_visibility.h" -#include "evoral/Beats.hpp" +#include "temporal/beats.h" #include "pbd/compose.h" namespace ARDOUR { @@ -57,7 +57,7 @@ public: explicit Variant(int32_t value) : _type(INT) { _int = value; } explicit Variant(int64_t value) : _type(LONG) { _long = value; } - explicit Variant(const Evoral::Beats& beats) + explicit Variant(const Temporal::Beats& beats) : _type(BEATS) , _beats(beats) {} @@ -94,7 +94,7 @@ public: std::min(value, (double)INT64_MAX))); break; case BEATS: - _beats = Evoral::Beats(value); + _beats = Temporal::Beats(value); break; default: _type = NOTHING; @@ -158,19 +158,19 @@ public: return false; } - bool operator==(const Evoral::Beats& v) const { + bool operator==(const Temporal::Beats& v) const { return _type == BEATS && _beats == v; } bool operator!() const { return _type == NOTHING; } - Variant& operator=(Evoral::Beats v) { + Variant& operator=(Temporal::Beats v) { _type = BEATS; _beats = v; return *this; } - const Evoral::Beats& get_beats() const { + const Temporal::Beats& get_beats() const { ensure_type(BEATS); return _beats; } @@ -204,7 +204,7 @@ private: Type _type; ///< Type tag std::string _string; ///< PATH, STRING, URI - Evoral::Beats _beats; ///< BEATS + Temporal::Beats _beats; ///< BEATS // Union of all primitive numeric types union { diff --git a/libs/ardour/beats_samples_converter.cc b/libs/ardour/beats_samples_converter.cc index 67b13cd05f..ece97aed68 100644 --- a/libs/ardour/beats_samples_converter.cc +++ b/libs/ardour/beats_samples_converter.cc @@ -31,9 +31,9 @@ namespace ARDOUR { * taking tempo changes into account. */ samplepos_t -BeatsSamplesConverter::to (Evoral::Beats beats) const +BeatsSamplesConverter::to (Temporal::Beats beats) const { - if (beats < Evoral::Beats()) { + if (beats < Temporal::Beats()) { std::cerr << "negative beats passed to BFC: " << beats << std::endl; PBD::stacktrace (std::cerr, 30); return 0; @@ -45,7 +45,7 @@ BeatsSamplesConverter::to (Evoral::Beats beats) const * supplied to the constructor. Returns the equivalent number of quarter-note beats, * taking tempo changes into account. */ -Evoral::Beats +Temporal::Beats BeatsSamplesConverter::from (samplepos_t samples) const { return _tempo_map.framewalk_to_qn (_origin_b, samples); @@ -60,7 +60,7 @@ DoubleBeatsSamplesConverter::to (double beats) const PBD::stacktrace (std::cerr, 30); return 0; } - return _tempo_map.samplepos_plus_qn (_origin_b, Evoral::Beats(beats)) - _origin_b; + return _tempo_map.samplepos_plus_qn (_origin_b, Temporal::Beats(beats)) - _origin_b; } /** As above, but with quarter-note beats in double instead (for GUI). */ diff --git a/libs/ardour/disk_writer.cc b/libs/ardour/disk_writer.cc index fa05516665..b5dade0dc1 100644 --- a/libs/ardour/disk_writer.cc +++ b/libs/ardour/disk_writer.cc @@ -1265,14 +1265,14 @@ DiskWriter::transport_stopped_wallclock (struct tm& when, time_t twhen, bool abo /* set length in beats to entire capture length */ BeatsSamplesConverter converter (_session.tempo_map(), capture_info.front()->start); - const Evoral::Beats total_capture_beats = converter.from (total_capture); + const Temporal::Beats total_capture_beats = converter.from (total_capture); _midi_write_source->set_length_beats (total_capture_beats); /* flush to disk: this step differs from the audio path, where all the data is already on disk. */ - _midi_write_source->mark_midi_streaming_write_completed (source_lock, Evoral::Sequence<Evoral::Beats>::ResolveStuckNotes, total_capture_beats); + _midi_write_source->mark_midi_streaming_write_completed (source_lock, Evoral::Sequence<Temporal::Beats>::ResolveStuckNotes, total_capture_beats); } _last_capture_sources.insert (_last_capture_sources.end(), audio_srcs.begin(), audio_srcs.end()); diff --git a/libs/ardour/import.cc b/libs/ardour/import.cc index 1a83bd39d7..d06496f684 100644 --- a/libs/ardour/import.cc +++ b/libs/ardour/import.cc @@ -424,9 +424,9 @@ write_midi_data_to_new_files (Evoral::SMF* source, ImportStatus& status, smfs->append_event_beats( source_lock, - Evoral::Event<Evoral::Beats>( + Evoral::Event<Temporal::Beats>( Evoral::MIDI_EVENT, - Evoral::Beats::ticks_at_rate(t, source->ppqn()), + Temporal::Beats::ticks_at_rate(t, source->ppqn()), size, buf)); @@ -440,7 +440,7 @@ write_midi_data_to_new_files (Evoral::SMF* source, ImportStatus& status, /* we wrote something */ const samplepos_t pos = 0; - const Evoral::Beats length_beats = Evoral::Beats::ticks_at_rate(t, source->ppqn()); + const Temporal::Beats length_beats = Temporal::Beats::ticks_at_rate(t, source->ppqn()); BeatsSamplesConverter converter(smfs->session().tempo_map(), pos); smfs->update_length(pos + converter.to(length_beats.round_up_to_beat())); smfs->mark_streaming_write_completed (source_lock); diff --git a/libs/ardour/legatize.cc b/libs/ardour/legatize.cc index 4d3d0f7d0e..b3c5775b41 100644 --- a/libs/ardour/legatize.cc +++ b/libs/ardour/legatize.cc @@ -31,7 +31,7 @@ Legatize::~Legatize () Command* Legatize::operator()(boost::shared_ptr<ARDOUR::MidiModel> model, - Evoral::Beats position, + Temporal::Beats position, std::vector<Legatize::Notes>& seqs) { MidiModel::NoteDiffCommand* cmd = new MidiModel::NoteDiffCommand(model, name ()); @@ -43,10 +43,10 @@ Legatize::operator()(boost::shared_ptr<ARDOUR::MidiModel> model, break; } - const Evoral::Beats new_end = (*next)->time() - Evoral::Beats::tick(); + const Temporal::Beats new_end = (*next)->time() - Temporal::Beats::tick(); if ((*i)->end_time() > new_end || (!_shrink_only && (*i)->end_time() < new_end)) { - const Evoral::Beats new_length(new_end - (*i)->time()); + const Temporal::Beats new_length(new_end - (*i)->time()); cmd->change((*i), MidiModel::NoteDiffCommand::Length, new_length); } diff --git a/libs/ardour/ltc_file_reader.cc b/libs/ardour/ltc_file_reader.cc index 8ca97ee5b6..c402da9a68 100644 --- a/libs/ardour/ltc_file_reader.cc +++ b/libs/ardour/ltc_file_reader.cc @@ -29,7 +29,7 @@ #include "pbd/error.h" #include "pbd/failed_constructor.h" -#include "timecode/time.h" +#include "temporal/time.h" #include "ardour/ltc_file_reader.h" #include "pbd/i18n.h" diff --git a/libs/ardour/lua_api.cc b/libs/ardour/lua_api.cc index edfbfd44fa..001ddc11bf 100644 --- a/libs/ardour/lua_api.cc +++ b/libs/ardour/lua_api.cc @@ -815,16 +815,16 @@ LuaAPI::Vamp::process (const std::vector<float*>& d, ::Vamp::RealTime rt) return _plugin->process (bufs, rt); } -boost::shared_ptr<Evoral::Note<Evoral::Beats> > -LuaAPI::new_noteptr (uint8_t chan, Evoral::Beats beat_time, Evoral::Beats length, uint8_t note, uint8_t velocity) +boost::shared_ptr<Evoral::Note<Temporal::Beats> > +LuaAPI::new_noteptr (uint8_t chan, Temporal::Beats beat_time, Temporal::Beats length, uint8_t note, uint8_t velocity) { - return boost::shared_ptr<Evoral::Note<Evoral::Beats> > (new Evoral::Note<Evoral::Beats>(chan, beat_time, length, note, velocity)); + return boost::shared_ptr<Evoral::Note<Temporal::Beats> > (new Evoral::Note<Temporal::Beats>(chan, beat_time, length, note, velocity)); } -std::list<boost::shared_ptr<Evoral::Note<Evoral::Beats> > > +std::list<boost::shared_ptr<Evoral::Note<Temporal::Beats> > > LuaAPI::note_list (boost::shared_ptr<MidiModel> mm) { - typedef boost::shared_ptr<Evoral::Note<Evoral::Beats> > NotePtr; + typedef boost::shared_ptr<Evoral::Note<Temporal::Beats> > NotePtr; std::list<NotePtr> note_ptr_list; diff --git a/libs/ardour/luabindings.cc b/libs/ardour/luabindings.cc index c64445b5b9..b8932d9301 100644 --- a/libs/ardour/luabindings.cc +++ b/libs/ardour/luabindings.cc @@ -18,7 +18,7 @@ #include <glibmm.h> -#include "timecode/bbt_time.h" +#include "temporal/bbt_time.h" #include "pbd/stateful_diff_command.h" #include "pbd/openuri.h" #include "evoral/Control.hpp" @@ -206,7 +206,7 @@ CLASSKEYS(PBD::Configuration); CLASSKEYS(PBD::PropertyChange); CLASSKEYS(PBD::StatefulDestructible); -CLASSKEYS(Evoral::Beats); +CLASSKEYS(Temporal::Beats); CLASSKEYS(Evoral::Event<samplepos_t>); CLASSKEYS(Evoral::ControlEvent); @@ -235,7 +235,7 @@ CLASSKEYS(boost::shared_ptr<std::list<boost::shared_ptr<ARDOUR::Route> > >); CLASSKEYS(boost::shared_ptr<ARDOUR::AudioRegion>); CLASSKEYS(boost::shared_ptr<ARDOUR::AudioSource>); CLASSKEYS(boost::shared_ptr<ARDOUR::Automatable>); -CLASSKEYS(boost::shared_ptr<ARDOUR::AutomatableSequence<Evoral::Beats> >); +CLASSKEYS(boost::shared_ptr<ARDOUR::AutomatableSequence<Temporal::Beats> >); CLASSKEYS(boost::shared_ptr<ARDOUR::AutomationList>); CLASSKEYS(boost::shared_ptr<ARDOUR::FileSource>); CLASSKEYS(boost::shared_ptr<ARDOUR::MidiModel>); @@ -247,8 +247,8 @@ CLASSKEYS(boost::shared_ptr<ARDOUR::Processor>); CLASSKEYS(boost::shared_ptr<ARDOUR::Readable>); CLASSKEYS(boost::shared_ptr<ARDOUR::Region>); CLASSKEYS(boost::shared_ptr<Evoral::ControlList>); -CLASSKEYS(boost::shared_ptr<Evoral::Note<Evoral::Beats> >); -CLASSKEYS(boost::shared_ptr<Evoral::Sequence<Evoral::Beats> >); +CLASSKEYS(boost::shared_ptr<Evoral::Note<Temporal::Beats> >); +CLASSKEYS(boost::shared_ptr<Evoral::Sequence<Temporal::Beats> >); CLASSKEYS(boost::shared_ptr<ARDOUR::Playlist>); CLASSKEYS(boost::shared_ptr<ARDOUR::Route>); @@ -516,9 +516,9 @@ LuaBindings::common (lua_State* L) .addFunction ("time", (samplepos_t (Evoral::Event<samplepos_t>::*)())&Evoral::Event<samplepos_t>::time) .endClass () - .beginClass <Evoral::Beats> ("Beats") + .beginClass <Temporal::Beats> ("Beats") .addConstructor <void (*) (double)> () - .addFunction ("to_double", &Evoral::Beats::to_double) + .addFunction ("to_double", &Temporal::Beats::to_double) .endClass () .beginClass <Evoral::Parameter> ("Parameter") @@ -570,16 +570,16 @@ LuaBindings::common (lua_State* L) .addData ("to", &Evoral::Range<samplepos_t>::to) .endClass () - .deriveWSPtrClass <Evoral::Sequence<Evoral::Beats>, Evoral::ControlSet> ("Sequence") + .deriveWSPtrClass <Evoral::Sequence<Temporal::Beats>, Evoral::ControlSet> ("Sequence") .endClass () - .beginWSPtrClass <Evoral::Note<Evoral::Beats> > ("NotePtr") - .addFunction ("time", &Evoral::Note<Evoral::Beats>::time) - .addFunction ("note", &Evoral::Note<Evoral::Beats>::note) - .addFunction ("velocity", &Evoral::Note<Evoral::Beats>::velocity) - .addFunction ("off_velocity", &Evoral::Note<Evoral::Beats>::off_velocity) - .addFunction ("length", &Evoral::Note<Evoral::Beats>::length) - .addFunction ("channel", &Evoral::Note<Evoral::Beats>::channel) + .beginWSPtrClass <Evoral::Note<Temporal::Beats> > ("NotePtr") + .addFunction ("time", &Evoral::Note<Temporal::Beats>::time) + .addFunction ("note", &Evoral::Note<Temporal::Beats>::note) + .addFunction ("velocity", &Evoral::Note<Temporal::Beats>::velocity) + .addFunction ("off_velocity", &Evoral::Note<Temporal::Beats>::off_velocity) + .addFunction ("length", &Evoral::Note<Temporal::Beats>::length) + .addFunction ("channel", &Evoral::Note<Temporal::Beats>::channel) .endClass () /* libevoral enums */ @@ -1267,11 +1267,11 @@ LuaBindings::common (lua_State* L) //.addFunction ("what_can_be_automated", &Automatable::what_can_be_automated) .endClass () - .deriveWSPtrClass <AutomatableSequence<Evoral::Beats>, Automatable> ("AutomatableSequence") - .addCast<Evoral::Sequence<Evoral::Beats> > ("to_sequence") + .deriveWSPtrClass <AutomatableSequence<Temporal::Beats>, Automatable> ("AutomatableSequence") + .addCast<Evoral::Sequence<Temporal::Beats> > ("to_sequence") .endClass () - .deriveWSPtrClass <MidiModel, AutomatableSequence<Evoral::Beats> > ("MidiModel") + .deriveWSPtrClass <MidiModel, AutomatableSequence<Temporal::Beats> > ("MidiModel") .addFunction ("apply_command", (void (MidiModel::*)(Session*, Command*))&MidiModel::apply_command) .addFunction ("new_note_diff_command", &MidiModel::new_note_diff_command) .endClass () @@ -1583,14 +1583,14 @@ LuaBindings::common (lua_State* L) .addVoidPtrConstructor<std::list<boost::shared_ptr <AutomationControl> > > () .endClass () - .beginStdList <boost::shared_ptr<Evoral::Note<Evoral::Beats> > > ("NotePtrList") + .beginStdList <boost::shared_ptr<Evoral::Note<Temporal::Beats> > > ("NotePtrList") .endClass () .beginConstStdList <Evoral::ControlEvent*> ("EventList") .endClass () #if 0 // depends on Evoal:: Note, Beats see note_fixer.h - // typedef Evoral::Note<Evoral::Beats> Note; + // typedef Evoral::Note<Temporal::Beats> Note; // std::set< boost::weak_ptr<Note> > .beginStdSet <boost::weak_ptr<Note> > ("WeakNoteSet") .endClass () diff --git a/libs/ardour/midi_model.cc b/libs/ardour/midi_model.cc index 13268cd84a..21bb0bb114 100644 --- a/libs/ardour/midi_model.cc +++ b/libs/ardour/midi_model.cc @@ -561,7 +561,7 @@ MidiModel::NoteDiffCommand::unmarshal_change (XMLNode *xml_change) } int old_val; - Evoral::Beats old_time; + Temporal::Beats old_time; if ((change.property == StartTime || change.property == Length) && xml_change->get_property ("old", old_time)) { change.old_value = old_time; @@ -573,7 +573,7 @@ MidiModel::NoteDiffCommand::unmarshal_change (XMLNode *xml_change) } int new_val; - Evoral::Beats new_time; + Temporal::Beats new_time; if ((change.property == StartTime || change.property == Length) && xml_change->get_property ("new", new_time)) { change.new_value = new_time; @@ -1113,7 +1113,7 @@ MidiModel::PatchChangeDiffCommand::unmarshal_patch_change (XMLNode* n) assert(false); } - Evoral::Beats time = Evoral::Beats(); + Temporal::Beats time = Temporal::Beats(); if (!n->get_property ("time", time)) { // warning?? } @@ -1832,7 +1832,7 @@ MidiModel::transpose (NoteDiffCommand* c, const NotePtr note_ptr, int semitones) void MidiModel::control_list_marked_dirty () { - AutomatableSequence<Evoral::Beats>::control_list_marked_dirty (); + AutomatableSequence<Temporal::Beats>::control_list_marked_dirty (); ContentsChanged (); /* EMIT SIGNAL */ } diff --git a/libs/ardour/midi_playlist_source.cc b/libs/ardour/midi_playlist_source.cc index 80219cb9a3..86bc2b6344 100644 --- a/libs/ardour/midi_playlist_source.cc +++ b/libs/ardour/midi_playlist_source.cc @@ -152,7 +152,7 @@ MidiPlaylistSource::write_unlocked (const Lock&, } void -MidiPlaylistSource::append_event_beats(const Glib::Threads::Mutex::Lock& /*lock*/, const Evoral::Event<Evoral::Beats>& /*ev*/) +MidiPlaylistSource::append_event_beats(const Glib::Threads::Mutex::Lock& /*lock*/, const Evoral::Event<Temporal::Beats>& /*ev*/) { fatal << string_compose (_("programming error: %1"), "MidiPlaylistSource::append_event_beats() called - should be impossible") << endmsg; abort(); /*NOTREACHED*/ diff --git a/libs/ardour/midi_region.cc b/libs/ardour/midi_region.cc index cbb9f2d935..ebadc9cd5e 100644 --- a/libs/ardour/midi_region.cc +++ b/libs/ardour/midi_region.cc @@ -28,7 +28,7 @@ #include <glibmm/fileutils.h> #include <glibmm/miscutils.h> -#include "evoral/Beats.hpp" +#include "temporal/beats.h" #include "pbd/xml++.h" #include "pbd/basename.h" @@ -144,8 +144,8 @@ MidiRegion::do_export (string path) const path, false, _session.sample_rate())); BeatsSamplesConverter bfc (_session.tempo_map(), _position); - Evoral::Beats const bbegin = bfc.from (_start); - Evoral::Beats const bend = bfc.from (_start + _length); + Temporal::Beats const bbegin = bfc.from (_start); + Temporal::Beats const bend = bfc.from (_start + _length); { /* Lock our source since we'll be reading from it. write_to() will @@ -180,8 +180,8 @@ boost::shared_ptr<MidiRegion> MidiRegion::clone (boost::shared_ptr<MidiSource> newsrc) const { BeatsSamplesConverter bfc (_session.tempo_map(), _position); - Evoral::Beats const bbegin = bfc.from (_start); - Evoral::Beats const bend = bfc.from (_start + _length); + Temporal::Beats const bbegin = bfc.from (_start); + Temporal::Beats const bend = bfc.from (_start + _length); { boost::shared_ptr<MidiSource> ms = midi_source(0); @@ -647,7 +647,7 @@ MidiRegion::fix_negative_start () _ignore_shift = true; - model()->insert_silence_at_start (Evoral::Beats (- _start_beats)); + model()->insert_silence_at_start (Temporal::Beats (- _start_beats)); _start = 0; _start_beats = 0.0; diff --git a/libs/ardour/midi_source.cc b/libs/ardour/midi_source.cc index 02f24e730b..6cfd0b6f21 100644 --- a/libs/ardour/midi_source.cc +++ b/libs/ardour/midi_source.cc @@ -206,7 +206,7 @@ MidiSource::midi_read (const Lock& lm, } // Find appropriate model iterator - Evoral::Sequence<Evoral::Beats>::const_iterator& i = cursor.iter; + Evoral::Sequence<Temporal::Beats>::const_iterator& i = cursor.iter; const bool linear_read = cursor.last_read_end != 0 && start == cursor.last_read_end; if (!linear_read || !i.valid()) { /* Cached iterator is invalid, search for the first event past start. @@ -256,7 +256,7 @@ MidiSource::midi_read (const Lock& lm, sure if this is necessary here (channels are mapped later in buffers anyway), but it preserves existing behaviour without destroying events in the model during read. */ - Evoral::Event<Evoral::Beats> ev(*i, true); + Evoral::Event<Temporal::Beats> ev(*i, true); if (!filter->filter(ev.buffer(), ev.size())) { dst.write(time_samples, ev.event_type(), ev.size(), ev.buffer()); } else { @@ -356,8 +356,8 @@ MidiSource::mark_streaming_write_started (const Lock& lock) void MidiSource::mark_midi_streaming_write_completed (const Lock& lock, - Evoral::Sequence<Evoral::Beats>::StuckNoteOption option, - Evoral::Beats end) + Evoral::Sequence<Temporal::Beats>::StuckNoteOption option, + Temporal::Beats end) { if (_model) { _model->end_write (option, end); @@ -378,11 +378,11 @@ MidiSource::mark_midi_streaming_write_completed (const Lock& void MidiSource::mark_streaming_write_completed (const Lock& lock) { - mark_midi_streaming_write_completed (lock, Evoral::Sequence<Evoral::Beats>::DeleteStuckNotes); + mark_midi_streaming_write_completed (lock, Evoral::Sequence<Temporal::Beats>::DeleteStuckNotes); } int -MidiSource::export_write_to (const Lock& lock, boost::shared_ptr<MidiSource> newsrc, Evoral::Beats begin, Evoral::Beats end) +MidiSource::export_write_to (const Lock& lock, boost::shared_ptr<MidiSource> newsrc, Temporal::Beats begin, Temporal::Beats end) { Lock newsrc_lock (newsrc->mutex ()); @@ -399,7 +399,7 @@ MidiSource::export_write_to (const Lock& lock, boost::shared_ptr<MidiSource> new } int -MidiSource::write_to (const Lock& lock, boost::shared_ptr<MidiSource> newsrc, Evoral::Beats begin, Evoral::Beats end) +MidiSource::write_to (const Lock& lock, boost::shared_ptr<MidiSource> newsrc, Temporal::Beats begin, Temporal::Beats end) { Lock newsrc_lock (newsrc->mutex ()); @@ -408,7 +408,7 @@ MidiSource::write_to (const Lock& lock, boost::shared_ptr<MidiSource> newsrc, Ev newsrc->copy_automation_state_from (this); if (_model) { - if (begin == Evoral::Beats() && end == std::numeric_limits<Evoral::Beats>::max()) { + if (begin == Temporal::Beats() && end == std::numeric_limits<Temporal::Beats>::max()) { _model->write_to (newsrc, newsrc_lock); } else { _model->write_section_to (newsrc, newsrc_lock, begin, end); @@ -422,7 +422,7 @@ MidiSource::write_to (const Lock& lock, boost::shared_ptr<MidiSource> newsrc, Ev /* force a reload of the model if the range is partial */ - if (begin != Evoral::Beats() || end != std::numeric_limits<Evoral::Beats>::max()) { + if (begin != Temporal::Beats() || end != std::numeric_limits<Temporal::Beats>::max()) { newsrc->load_model (newsrc_lock, true); } else { newsrc->set_model (newsrc_lock, _model); diff --git a/libs/ardour/midi_state_tracker.cc b/libs/ardour/midi_state_tracker.cc index 05312cf8bb..10b312ea9b 100644 --- a/libs/ardour/midi_state_tracker.cc +++ b/libs/ardour/midi_state_tracker.cc @@ -168,7 +168,7 @@ MidiStateTracker::resolve_notes (Evoral::EventSink<samplepos_t> &dst, samplepos_ } void -MidiStateTracker::resolve_notes (MidiSource& src, const MidiSource::Lock& lock, Evoral::Beats time) +MidiStateTracker::resolve_notes (MidiSource& src, const MidiSource::Lock& lock, Temporal::Beats time) { DEBUG_TRACE (PBD::DEBUG::MidiTrackers, string_compose ("%1 MS-resolve notes @ %2 on = %3\n", this, time, _on)); @@ -181,7 +181,7 @@ MidiStateTracker::resolve_notes (MidiSource& src, const MidiSource::Lock& lock, for (int channel = 0; channel < 16; ++channel) { for (int note = 0; note < 128; ++note) { while (_active_notes[note + 128 * channel]) { - Evoral::Event<Evoral::Beats> ev (Evoral::MIDI_EVENT, time, 3, 0, true); + Evoral::Event<Temporal::Beats> ev (Evoral::MIDI_EVENT, time, 3, 0, true); ev.set_type (MIDI_CMD_NOTE_OFF); ev.set_channel (channel); ev.set_note (note); @@ -191,7 +191,7 @@ MidiStateTracker::resolve_notes (MidiSource& src, const MidiSource::Lock& lock, this, (int) note, (int) channel, time)); _active_notes[note + 128 * channel]--; /* don't stack events up at the same time */ - time += Evoral::Beats::tick(); + time += Temporal::Beats::tick(); } } } diff --git a/libs/ardour/midi_stretch.cc b/libs/ardour/midi_stretch.cc index bf7fbd752b..d7facbb0f1 100644 --- a/libs/ardour/midi_stretch.cc +++ b/libs/ardour/midi_stretch.cc @@ -108,7 +108,7 @@ MidiStretch::run (boost::shared_ptr<Region> r, Progress*) new_model->append(ev, Evoral::next_event_id()); } - new_model->end_write (Evoral::Sequence<Evoral::Beats>::DeleteStuckNotes); + new_model->end_write (Evoral::Sequence<Temporal::Beats>::DeleteStuckNotes); new_model->set_edited (true); new_src->copy_interpolation_from (src); diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc index 4832ccce07..dc5f3f0a80 100644 --- a/libs/ardour/midi_track.cc +++ b/libs/ardour/midi_track.cc @@ -380,7 +380,7 @@ MidiTrack::non_realtime_locate (samplepos_t pos) boost::shared_ptr<Evoral::Control> rcontrol; if ((tcontrol = boost::dynamic_pointer_cast<MidiTrack::MidiControl>(c->second)) && (rcontrol = region->control(tcontrol->parameter()))) { - const Evoral::Beats pos_beats = bfc.from(pos - origin); + const Temporal::Beats pos_beats = bfc.from(pos - origin); if (rcontrol->list()->size() > 0) { tcontrol->set_value(rcontrol->list()->eval(pos_beats.to_double()), Controllable::NoGroup); } diff --git a/libs/ardour/note_fixer.cc b/libs/ardour/note_fixer.cc index a2d943f775..2d7bb67f6e 100644 --- a/libs/ardour/note_fixer.cc +++ b/libs/ardour/note_fixer.cc @@ -126,7 +126,7 @@ NoteFixer::emit(Evoral::EventSink<samplepos_t>& dst, } NoteFixer::Event* -NoteFixer::copy_event(samplepos_t time, const Evoral::Event<Evoral::Beats>& ev) +NoteFixer::copy_event(samplepos_t time, const Evoral::Event<Temporal::Beats>& ev) { return new Event(ev.event_type(), time, ev.size(), ev.buffer()); } diff --git a/libs/ardour/quantize.cc b/libs/ardour/quantize.cc index b60b63dcf4..27e40ae8f7 100644 --- a/libs/ardour/quantize.cc +++ b/libs/ardour/quantize.cc @@ -111,8 +111,8 @@ swing_position (double pos, double grid, double swing, double offset) Command* Quantize::operator () (boost::shared_ptr<MidiModel> model, - Evoral::Beats position, - std::vector<Evoral::Sequence<Evoral::Beats>::Notes>& seqs) + Temporal::Beats position, + std::vector<Evoral::Sequence<Temporal::Beats>::Notes>& seqs) { /* TODO: Rewrite this to be precise with fixed point? */ @@ -125,7 +125,7 @@ Quantize::operator () (boost::shared_ptr<MidiModel> model, MidiModel::NoteDiffCommand* cmd = new MidiModel::NoteDiffCommand (model, "quantize"); - for (std::vector<Evoral::Sequence<Evoral::Beats>::Notes>::iterator s = seqs.begin(); s != seqs.end(); ++s) { + for (std::vector<Evoral::Sequence<Temporal::Beats>::Notes>::iterator s = seqs.begin(); s != seqs.end(); ++s) { for (Evoral::Sequence<MidiModel::TimeType>::Notes::iterator i = (*s).begin(); i != (*s).end(); ++i) { @@ -167,10 +167,10 @@ Quantize::operator () (boost::shared_ptr<MidiModel> model, delta = new_end - (*i)->end_time().to_double(); if (fabs (delta) >= _threshold) { - Evoral::Beats new_dur(new_end - new_start); + Temporal::Beats new_dur(new_end - new_start); if (!new_dur) { - new_dur = Evoral::Beats(_end_grid); + new_dur = Temporal::Beats(_end_grid); } cmd->change ((*i), MidiModel::NoteDiffCommand::Length, new_dur); diff --git a/libs/ardour/session_ltc.cc b/libs/ardour/session_ltc.cc index ae18c43ac9..6b3d8b2174 100644 --- a/libs/ardour/session_ltc.cc +++ b/libs/ardour/session_ltc.cc @@ -18,7 +18,7 @@ */ -#include "timecode/time.h" +#include "temporal/time.h" #include "ardour/audioengine.h" #include "ardour/audio_port.h" diff --git a/libs/ardour/session_midi.cc b/libs/ardour/session_midi.cc index b29cc0cd05..d4bb41b735 100644 --- a/libs/ardour/session_midi.cc +++ b/libs/ardour/session_midi.cc @@ -35,7 +35,7 @@ #include "pbd/timersub.h" #include "pbd/stacktrace.h" -#include "timecode/time.h" +#include "temporal/time.h" #include "ardour/audio_track.h" #include "ardour/audioengine.h" diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc index e822c7bc14..e8e780d34a 100644 --- a/libs/ardour/session_state.cc +++ b/libs/ardour/session_state.cc @@ -1254,7 +1254,7 @@ Session::state (bool full_state, snapshot_t snapshot_type) if (!ms->model()) { ms->load_model (lm); } - if (ms->write_to (lm, newsrc, Evoral::Beats(), std::numeric_limits<Evoral::Beats>::max())) { + if (ms->write_to (lm, newsrc, Temporal::Beats(), std::numeric_limits<Temporal::Beats>::max())) { error << string_compose (_("Session-Save: Failed to copy MIDI Source '%1' for snapshot"), ancestor_name) << endmsg; } else { if (snapshot_type == SnapshotKeep) { diff --git a/libs/ardour/smf_source.cc b/libs/ardour/smf_source.cc index d622c33978..1c994b6eb3 100644 --- a/libs/ardour/smf_source.cc +++ b/libs/ardour/smf_source.cc @@ -284,7 +284,7 @@ SMFSource::read_unlocked (const Lock& lock, /* Note that we add on the source start time (in session samples) here so that ev_sample_time is in session samples. */ - const samplepos_t ev_sample_time = converter.to(Evoral::Beats::ticks_at_rate(time, ppqn())) + source_start; + const samplepos_t ev_sample_time = converter.to(Temporal::Beats::ticks_at_rate(time, ppqn())) + source_start; if (loop_range) { loop_range->squish (ev_sample_time); @@ -393,7 +393,7 @@ SMFSource::write_unlocked (const Lock& lock, /** Append an event with a timestamp in beats */ void SMFSource::append_event_beats (const Glib::Threads::Mutex::Lock& lock, - const Evoral::Event<Evoral::Beats>& ev) + const Evoral::Event<Temporal::Beats>& ev) { if (!_writing || ev.size() == 0) { return; @@ -405,9 +405,9 @@ SMFSource::append_event_beats (const Glib::Threads::Mutex::Lock& lock, for (size_t i = 0; i < ev.size(); ++i) printf("%X ", ev.buffer()[i]); printf("\n"); #endif - Evoral::Beats time = ev.time(); + Temporal::Beats time = ev.time(); if (time < _last_ev_time_beats) { - const Evoral::Beats difference = _last_ev_time_beats - time; + const Temporal::Beats difference = _last_ev_time_beats - time; if (difference.to_double() / (double)ppqn() < 1.0) { /* Close enough. This problem occurs because Sequence is not actually ordered due to fuzzy time comparison. I'm pretty sure @@ -437,7 +437,7 @@ SMFSource::append_event_beats (const Glib::Threads::Mutex::Lock& lock, _length_beats = max(_length_beats, time); - const Evoral::Beats delta_time_beats = time - _last_ev_time_beats; + const Temporal::Beats delta_time_beats = time - _last_ev_time_beats; const uint32_t delta_time_ticks = delta_time_beats.to_ticks(ppqn()); Evoral::SMF::append_event_delta(delta_time_ticks, ev.size(), ev.buffer(), event_id); @@ -467,7 +467,7 @@ SMFSource::append_event_samples (const Glib::Threads::Mutex::Lock& lock, } BeatsSamplesConverter converter(_session.tempo_map(), position); - const Evoral::Beats ev_time_beats = converter.from(ev.time()); + const Temporal::Beats ev_time_beats = converter.from(ev.time()); Evoral::event_id_t event_id; if (ev.id() < 0) { @@ -477,7 +477,7 @@ SMFSource::append_event_samples (const Glib::Threads::Mutex::Lock& lock, } if (_model) { - const Evoral::Event<Evoral::Beats> beat_ev (ev.event_type(), + const Evoral::Event<Temporal::Beats> beat_ev (ev.event_type(), ev_time_beats, ev.size(), const_cast<uint8_t*>(ev.buffer())); @@ -486,8 +486,8 @@ SMFSource::append_event_samples (const Glib::Threads::Mutex::Lock& lock, _length_beats = max(_length_beats, ev_time_beats); - const Evoral::Beats last_time_beats = converter.from (_last_ev_time_samples); - const Evoral::Beats delta_time_beats = ev_time_beats - last_time_beats; + const Temporal::Beats last_time_beats = converter.from (_last_ev_time_samples); + const Temporal::Beats delta_time_beats = ev_time_beats - last_time_beats; const uint32_t delta_time_ticks = delta_time_beats.to_ticks(ppqn()); Evoral::SMF::append_event_delta(delta_time_ticks, ev.size(), ev.buffer(), event_id); @@ -532,18 +532,18 @@ SMFSource::mark_streaming_midi_write_started (const Lock& lock, NoteMode mode) MidiSource::mark_streaming_midi_write_started (lock, mode); Evoral::SMF::begin_write (); - _last_ev_time_beats = Evoral::Beats(); + _last_ev_time_beats = Temporal::Beats(); _last_ev_time_samples = 0; } void SMFSource::mark_streaming_write_completed (const Lock& lock) { - mark_midi_streaming_write_completed (lock, Evoral::Sequence<Evoral::Beats>::DeleteStuckNotes); + mark_midi_streaming_write_completed (lock, Evoral::Sequence<Temporal::Beats>::DeleteStuckNotes); } void -SMFSource::mark_midi_streaming_write_completed (const Lock& lm, Evoral::Sequence<Evoral::Beats>::StuckNoteOption stuck_notes_option, Evoral::Beats when) +SMFSource::mark_midi_streaming_write_completed (const Lock& lm, Evoral::Sequence<Temporal::Beats>::StuckNoteOption stuck_notes_option, Temporal::Beats when) { MidiSource::mark_midi_streaming_write_completed (lm, stuck_notes_option, when); @@ -601,8 +601,8 @@ SMFSource::safe_midi_file_extension (const string& file) } static bool compare_eventlist ( - const std::pair< const Evoral::Event<Evoral::Beats>*, gint >& a, - const std::pair< const Evoral::Event<Evoral::Beats>*, gint >& b) { + const std::pair< const Evoral::Event<Temporal::Beats>*, gint >& a, + const std::pair< const Evoral::Event<Temporal::Beats>*, gint >& b) { return ( a.first->time() < b.first->time() ); } @@ -633,7 +633,7 @@ SMFSource::load_model (const Glib::Threads::Mutex::Lock& lock, bool force_reload Evoral::SMF::seek_to_start(); uint64_t time = 0; /* in SMF ticks */ - Evoral::Event<Evoral::Beats> ev; + Evoral::Event<Temporal::Beats> ev; uint32_t scratch_size = 0; // keep track of scratch and minimize reallocs @@ -645,7 +645,7 @@ SMFSource::load_model (const Glib::Threads::Mutex::Lock& lock, bool force_reload bool have_event_id; // TODO simplify event allocation - std::list< std::pair< Evoral::Event<Evoral::Beats>*, gint > > eventlist; + std::list< std::pair< Evoral::Event<Temporal::Beats>*, gint > > eventlist; for (unsigned i = 1; i <= num_tracks(); ++i) { if (seek_to_track(i)) continue; @@ -671,7 +671,7 @@ SMFSource::load_model (const Glib::Threads::Mutex::Lock& lock, bool force_reload if (!have_event_id) { event_id = Evoral::next_event_id(); } - const Evoral::Beats event_time = Evoral::Beats::ticks_at_rate(time, ppqn()); + const Temporal::Beats event_time = Temporal::Beats::ticks_at_rate(time, ppqn()); #ifndef NDEBUG std::string ss; @@ -686,7 +686,7 @@ SMFSource::load_model (const Glib::Threads::Mutex::Lock& lock, bool force_reload #endif eventlist.push_back(make_pair ( - new Evoral::Event<Evoral::Beats> ( + new Evoral::Event<Temporal::Beats> ( Evoral::MIDI_EVENT, event_time, size, buf, true) , event_id)); @@ -705,7 +705,7 @@ SMFSource::load_model (const Glib::Threads::Mutex::Lock& lock, bool force_reload eventlist.sort(compare_eventlist); - std::list< std::pair< Evoral::Event<Evoral::Beats>*, gint > >::iterator it; + std::list< std::pair< Evoral::Event<Temporal::Beats>*, gint > >::iterator it; for (it=eventlist.begin(); it!=eventlist.end(); ++it) { _model->append (*it->first, it->second); delete it->first; @@ -715,7 +715,7 @@ SMFSource::load_model (const Glib::Threads::Mutex::Lock& lock, bool force_reload // _playback_buf->dump (cerr); // cerr << "----------------\n"; - _model->end_write (Evoral::Sequence<Evoral::Beats>::ResolveStuckNotes, _length_beats); + _model->end_write (Evoral::Sequence<Temporal::Beats>::ResolveStuckNotes, _length_beats); _model->set_edited (false); invalidate(lock); diff --git a/libs/ardour/tempo.cc b/libs/ardour/tempo.cc index 4b9d2a9372..23a0553735 100644 --- a/libs/ardour/tempo.cc +++ b/libs/ardour/tempo.cc @@ -27,7 +27,7 @@ #include "pbd/enumwriter.h" #include "pbd/xml++.h" -#include "evoral/Beats.hpp" +#include "temporal/beats.h" #include "ardour/debug.h" #include "ardour/lmath.h" @@ -2423,7 +2423,7 @@ TempoMap::sample_at_quarter_note (const double quarter_note) const * @param beat The BBT (meter-based) beat. * @return The quarter-note position of the supplied BBT (meter-based) beat. * - * a quarter-note may be compared with and assigned to Evoral::Beats. + * a quarter-note may be compared with and assigned to Temporal::Beats. * */ double @@ -2438,7 +2438,7 @@ TempoMap::quarter_note_at_beat (const double beat) const * @param quarter_note The position in quarter-note beats. * @return the BBT (meter-based) beat position of the supplied quarter-note beats. * - * a quarter-note is the musical unit of Evoral::Beats. + * a quarter-note is the musical unit of Temporal::Beats. * */ double @@ -4821,7 +4821,7 @@ TempoMap::remove_time (samplepos_t where, samplecnt_t amount) * pos can be -ve, if required. */ samplepos_t -TempoMap::samplepos_plus_qn (samplepos_t sample, Evoral::Beats beats) const +TempoMap::samplepos_plus_qn (samplepos_t sample, Temporal::Beats beats) const { Glib::Threads::RWLock::ReaderLock lm (lock); const double sample_qn = pulse_at_minute_locked (_metrics, minute_at_sample (sample)) * 4.0; @@ -4856,12 +4856,12 @@ TempoMap::samplepos_plus_bbt (samplepos_t pos, BBT_Time op) const /** Count the number of beats that are equivalent to distance when going forward, starting at pos. */ -Evoral::Beats +Temporal::Beats TempoMap::framewalk_to_qn (samplepos_t pos, samplecnt_t distance) const { Glib::Threads::RWLock::ReaderLock lm (lock); - return Evoral::Beats (quarter_notes_between_samples_locked (_metrics, pos, pos + distance)); + return Temporal::Beats (quarter_notes_between_samples_locked (_metrics, pos, pos + distance)); } struct bbtcmp { diff --git a/libs/ardour/test/bbt_test.h b/libs/ardour/test/bbt_test.h index 94a4d96c03..c0c658ab2c 100644 --- a/libs/ardour/test/bbt_test.h +++ b/libs/ardour/test/bbt_test.h @@ -2,7 +2,7 @@ #include <sigc++/sigc++.h> #include <cppunit/TestFixture.h> #include <cppunit/extensions/HelperMacros.h> -#include "timecode/bbt_time.h" +#include "temporal/bbt_time.h" class BBTTest : public CppUnit::TestFixture { diff --git a/libs/ardour/test/samplepos_minus_beats_test.cc b/libs/ardour/test/samplepos_minus_beats_test.cc index 5d2d95ac74..1e88de6283 100644 --- a/libs/ardour/test/samplepos_minus_beats_test.cc +++ b/libs/ardour/test/samplepos_minus_beats_test.cc @@ -1,6 +1,6 @@ #include "samplepos_minus_beats_test.h" #include "ardour/tempo.h" -#include "timecode/bbt_time.h" +#include "temporal/bbt_time.h" CPPUNIT_TEST_SUITE_REGISTRATION (FrameposMinusBeatsTest); diff --git a/libs/ardour/test/samplepos_plus_beats_test.cc b/libs/ardour/test/samplepos_plus_beats_test.cc index d567f4691c..4529e34899 100644 --- a/libs/ardour/test/samplepos_plus_beats_test.cc +++ b/libs/ardour/test/samplepos_plus_beats_test.cc @@ -1,6 +1,6 @@ #include "samplepos_plus_beats_test.h" #include "ardour/tempo.h" -#include "timecode/bbt_time.h" +#include "temporal/bbt_time.h" CPPUNIT_TEST_SUITE_REGISTRATION (FrameposPlusBeatsTest); @@ -25,11 +25,11 @@ FrameposPlusBeatsTest::singleTempoTest () map.replace_tempo (map.first_tempo(), tempo, 0.0, 0, AudioTime); /* Add 1 beat to beat 3 of the first bar */ - samplepos_t r = map.samplepos_plus_qn (samples_per_beat * 2, Evoral::Beats(1)); + samplepos_t r = map.samplepos_plus_qn (samples_per_beat * 2, Temporal::Beats(1)); CPPUNIT_ASSERT_EQUAL (samplepos_t (samples_per_beat * 3), r); /* Add 4 beats to a -ve sample of 1 beat before zero */ - r = map.samplepos_plus_qn (-samples_per_beat * 1, Evoral::Beats(4)); + r = map.samplepos_plus_qn (-samples_per_beat * 1, Temporal::Beats(4)); CPPUNIT_ASSERT_EQUAL (samplepos_t (samples_per_beat * 3), r); } @@ -70,15 +70,15 @@ FrameposPlusBeatsTest::doubleTempoTest () /* Now some tests */ /* Add 1 beat to 1|2 */ - samplepos_t r = map.samplepos_plus_qn (24e3, Evoral::Beats(1)); + samplepos_t r = map.samplepos_plus_qn (24e3, Temporal::Beats(1)); CPPUNIT_ASSERT_EQUAL (samplepos_t (48e3), r); /* Add 2 beats to 3|4 (over the tempo change) */ - r = map.samplepos_plus_qn (264e3, Evoral::Beats(2)); + r = map.samplepos_plus_qn (264e3, Temporal::Beats(2)); CPPUNIT_ASSERT_EQUAL (samplepos_t (264e3 + 24e3 + 12e3), r); /* Add 2.5 beats to 3|3|960 (over the tempo change) */ - r = map.samplepos_plus_qn (264e3 - 12e3, Evoral::Beats(2.5)); + r = map.samplepos_plus_qn (264e3 - 12e3, Temporal::Beats(2.5)); CPPUNIT_ASSERT_EQUAL (samplepos_t (264e3 + 24e3 + 12e3), r); } @@ -125,15 +125,15 @@ FrameposPlusBeatsTest::doubleTempoWithMeterTest () /* Now some tests */ /* Add 1 beat to 1|2 */ - samplepos_t r = map.samplepos_plus_qn (24e3, Evoral::Beats(1)); + samplepos_t r = map.samplepos_plus_qn (24e3, Temporal::Beats(1)); CPPUNIT_ASSERT_EQUAL (samplepos_t (48e3), r); /* Add 2 beats to 3|4 (over the tempo change) */ - r = map.samplepos_plus_qn (264e3, Evoral::Beats(2)); + r = map.samplepos_plus_qn (264e3, Temporal::Beats(2)); CPPUNIT_ASSERT_EQUAL (samplepos_t (264e3 + 24e3 + 12e3), r); /* Add 2.5 beats to 3|3|960 (over the tempo change) */ - r = map.samplepos_plus_qn (264e3 - 12e3, Evoral::Beats(2.5)); + r = map.samplepos_plus_qn (264e3 - 12e3, Temporal::Beats(2.5)); CPPUNIT_ASSERT_EQUAL (samplepos_t (264e3 + 24e3 + 12e3), r); } @@ -181,15 +181,15 @@ FrameposPlusBeatsTest::doubleTempoWithComplexMeterTest () /* Now some tests */ /* Add 1 beat to 1|2 */ - samplepos_t r = map.samplepos_plus_qn (24e3, Evoral::Beats(1)); + samplepos_t r = map.samplepos_plus_qn (24e3, Temporal::Beats(1)); CPPUNIT_ASSERT_EQUAL (samplepos_t (48e3), r); /* Add 2 beats to 5|1 (over the tempo change) */ - r = map.samplepos_plus_qn (264e3, Evoral::Beats(2)); + r = map.samplepos_plus_qn (264e3, Temporal::Beats(2)); CPPUNIT_ASSERT_EQUAL (samplepos_t (264e3 + 24e3 + 12e3), r); /* Add 2.5 beats to 4|5 (over the tempo change) */ - r = map.samplepos_plus_qn (264e3 - 12e3, Evoral::Beats(2.5)); + r = map.samplepos_plus_qn (264e3 - 12e3, Temporal::Beats(2.5)); CPPUNIT_ASSERT_EQUAL (samplepos_t (264e3 + 24e3 + 12e3), r); } diff --git a/libs/ardour/test/samplewalk_to_beats_test.cc b/libs/ardour/test/samplewalk_to_beats_test.cc index 3e396b25b6..3cb93672c3 100644 --- a/libs/ardour/test/samplewalk_to_beats_test.cc +++ b/libs/ardour/test/samplewalk_to_beats_test.cc @@ -1,6 +1,6 @@ #include "samplewalk_to_beats_test.h" #include "ardour/tempo.h" -#include "timecode/bbt_time.h" +#include "temporal/bbt_time.h" CPPUNIT_TEST_SUITE_REGISTRATION (FramewalkToBeatsTest); diff --git a/libs/ardour/transform.cc b/libs/ardour/transform.cc index 9f029829de..9f7169e61e 100644 --- a/libs/ardour/transform.cc +++ b/libs/ardour/transform.cc @@ -121,7 +121,7 @@ Transform::Operation::eval(Context& ctx) const Command* Transform::operator()(boost::shared_ptr<MidiModel> model, - Evoral::Beats position, + Temporal::Beats position, std::vector<Notes>& seqs) { typedef MidiModel::NoteDiffCommand Command; diff --git a/libs/ardour/transpose.cc b/libs/ardour/transpose.cc index ca0b7abf4e..ad5013d05d 100644 --- a/libs/ardour/transpose.cc +++ b/libs/ardour/transpose.cc @@ -27,7 +27,7 @@ Transpose::Transpose(int semitones) Command* Transpose::operator()(boost::shared_ptr<MidiModel> model, - Evoral::Beats position, + Temporal::Beats position, std::vector<Notes>& seqs) { typedef MidiModel::NoteDiffCommand Command; diff --git a/libs/ardour/wscript b/libs/ardour/wscript index 0d7b08e368..df28255d5e 100644 --- a/libs/ardour/wscript +++ b/libs/ardour/wscript @@ -394,7 +394,7 @@ def build(bld): 'OSX','BOOST','CURL','TAGLIB','VAMPSDK','VAMPHOSTSDK','RUBBERBAND'] obj.use = ['libpbd','libmidipp','libevoral', 'libaudiographer', - 'libtimecode', + 'libtemporal', 'liblua', ] if bld.env['build_target'] != 'mingw': @@ -478,7 +478,7 @@ def build(bld): source = avx_sources, cxxflags = avx_cxxflags, includes = [ '.' ], - use = [ 'libtimecode', 'libpbd', 'libevoral', 'liblua' ], + use = [ 'libtemporal', 'libpbd', 'libevoral', 'liblua' ], uselib = [ 'GLIBMM', 'XML' ], target = 'sse_avx_functions') diff --git a/libs/audiographer/wscript b/libs/audiographer/wscript index 7ac9f8f4fa..ad4140d25e 100644 --- a/libs/audiographer/wscript +++ b/libs/audiographer/wscript @@ -85,7 +85,7 @@ def build(bld): audiographer.name = 'libaudiographer' audiographer.target = 'audiographer' audiographer.export_includes = ['.', './src'] - audiographer.includes = ['.', './src','../ardour','../timecode','../evoral'] + audiographer.includes = ['.', './src','../ardour','../temporal','../evoral'] audiographer.uselib = 'GLIB GLIBMM GTHREAD SAMPLERATE SNDFILE FFTW3F VAMPSDK VAMPHOSTSDK XML' audiographer.use = 'libpbd' audiographer.vnum = AUDIOGRAPHER_LIB_VERSION diff --git a/libs/evoral/src/Event.cpp b/libs/evoral/src/Event.cpp index 13d7c6c6ac..444ad4cdfb 100644 --- a/libs/evoral/src/Event.cpp +++ b/libs/evoral/src/Event.cpp @@ -18,8 +18,8 @@ #include <glib.h> +#include "temporal/beats.h" #include "evoral/Event.hpp" -#include "evoral/Beats.hpp" namespace Evoral { @@ -162,7 +162,7 @@ Event<Timestamp>::set (const uint8_t* buf, uint32_t size, Timestamp t) #endif // EVORAL_EVENT_ALLOC -template class Event<Evoral::Beats>; +template class Event<Temporal::Beats>; template class Event<double>; template class Event<int64_t>; diff --git a/libs/evoral/src/Note.cpp b/libs/evoral/src/Note.cpp index 631a995ab3..10b3b4314f 100644 --- a/libs/evoral/src/Note.cpp +++ b/libs/evoral/src/Note.cpp @@ -24,7 +24,7 @@ #include "evoral/Note.hpp" #endif -#include "evoral/Beats.hpp" +#include "temporal/beats.h" namespace Evoral { @@ -90,7 +90,7 @@ Note<Time>::set_id (event_id_t id) _off_event.set_id (id); } -template class Note<Evoral::Beats>; +template class Note<Temporal::Beats>; } // namespace Evoral diff --git a/libs/evoral/src/OldSMF.cpp b/libs/evoral/src/OldSMF.cpp index eef61e332b..8b284f9d95 100644 --- a/libs/evoral/src/OldSMF.cpp +++ b/libs/evoral/src/OldSMF.cpp @@ -364,6 +364,6 @@ SMF<Time>::write_var_len(uint32_t value) return ret; } -template class SMF<Evoral::Beats>; +template class SMF<Temporal::Beats>; } // namespace Evoral diff --git a/libs/evoral/src/Sequence.cpp b/libs/evoral/src/Sequence.cpp index 14e3b65f37..b94ac088f5 100644 --- a/libs/evoral/src/Sequence.cpp +++ b/libs/evoral/src/Sequence.cpp @@ -31,7 +31,8 @@ #include "pbd/compose.h" #include "pbd/error.h" -#include "evoral/Beats.hpp" +#include "temporal/beats.h" + #include "evoral/Control.hpp" #include "evoral/ControlList.hpp" #include "evoral/ControlSet.hpp" @@ -1408,6 +1409,6 @@ Sequence<Time>::dump (ostream& str) const str << "--- dump\n"; } -template class Sequence<Evoral::Beats>; +template class Sequence<Temporal::Beats>; } // namespace Evoral diff --git a/libs/evoral/src/TimeConverter.cpp b/libs/evoral/src/TimeConverter.cpp index e1e4b8231f..1e49e1e7e0 100644 --- a/libs/evoral/src/TimeConverter.cpp +++ b/libs/evoral/src/TimeConverter.cpp @@ -1,4 +1,4 @@ -/* This file is part of Evoral. +/* * Copyright (C) 2008 David Robillard <http://drobilla.net> * Copyright (C) 2000-2008 Paul Davis * @@ -18,6 +18,9 @@ #include <stdint.h> +#include "temporal/beats.h" +#include "temporal/types.h" + #include "evoral/TimeConverter.hpp" #include "evoral/types.hpp" @@ -43,8 +46,8 @@ IdentityConverter<A,B>::from(B b) const return static_cast<A>(b); } -template class IdentityConverter<double, framepos_t>; -template class TimeConverter<double, framepos_t>; -template class TimeConverter<Evoral::Beats, framepos_t>; +template class IdentityConverter<double, Temporal::samplepos_t>; +template class TimeConverter<double, Temporal::samplepos_t>; +template class TimeConverter<Temporal::Beats, Temporal::samplepos_t>; } // namespace Evoral diff --git a/libs/evoral/wscript b/libs/evoral/wscript index bcc9f05691..0eb4b2cb4c 100644 --- a/libs/evoral/wscript +++ b/libs/evoral/wscript @@ -80,6 +80,7 @@ def build(bld): libsmf.name = 'libsmf' libsmf.target = 'smf' libsmf.uselib = 'GLIB' + libsmf.use = [ 'libtemporal' ] libsmf.install_path = None if bld.env['build_target'] != 'mingw': libsmf.cxxflags = [ '-fPIC' ] diff --git a/libs/midi++2/midi++/mmc.h b/libs/midi++2/midi++/mmc.h index bd8c19b6f9..b69abaa8a5 100644 --- a/libs/midi++2/midi++/mmc.h +++ b/libs/midi++2/midi++/mmc.h @@ -20,7 +20,7 @@ #ifndef __midipp_mmc_h_h__ #define __midipp_mmc_h_h__ -#include "timecode/time.h" +#include "temporal/time.h" #include "pbd/signals.h" #include "pbd/ringbuffer.h" diff --git a/libs/midi++2/midnam_patch.cc b/libs/midi++2/midnam_patch.cc index eb7274e69f..af81dba0e0 100644 --- a/libs/midi++2/midnam_patch.cc +++ b/libs/midi++2/midnam_patch.cc @@ -97,7 +97,7 @@ Patch::get_state (void) node->set_property("Name", _name); /* - typedef std::list< boost::shared_ptr< Evoral::Event<Evoral::Beats> > > PatchMidiCommands; + typedef std::list< boost::shared_ptr< Evoral::Event<Temporal::Beats> > > PatchMidiCommands; XMLNode* commands = node->add_child("PatchMIDICommands"); for (PatchMidiCommands::const_iterator event = _patch_midi_commands.begin(); event != _patch_midi_commands.end(); diff --git a/libs/midi++2/mmc.cc b/libs/midi++2/mmc.cc index d9ad077865..f3ed9383e8 100644 --- a/libs/midi++2/mmc.cc +++ b/libs/midi++2/mmc.cc @@ -21,8 +21,8 @@ #include <fcntl.h> #include <map> -#include "timecode/time.h" -#include "timecode/bbt_time.h" +#include "temporal/time.h" +#include "temporal/bbt_time.h" #include "pbd/error.h" diff --git a/libs/midi++2/wscript b/libs/midi++2/wscript index 10a37466e1..19e0bbddac 100644 --- a/libs/midi++2/wscript +++ b/libs/midi++2/wscript @@ -70,7 +70,7 @@ def build(bld): obj.name = 'libmidipp' obj.target = 'midipp' obj.uselib = 'GLIBMM SIGCPP XML OSX' - obj.use = 'libpbd libevoral libtimecode' + obj.use = 'libpbd libevoral libtemporal' obj.vnum = LIBMIDIPP_LIB_VERSION obj.install_path = bld.env['LIBDIR'] diff --git a/libs/surfaces/control_protocol/control_protocol/basic_ui.h b/libs/surfaces/control_protocol/control_protocol/basic_ui.h index 6626564711..788dcbd43b 100644 --- a/libs/surfaces/control_protocol/control_protocol/basic_ui.h +++ b/libs/surfaces/control_protocol/control_protocol/basic_ui.h @@ -29,7 +29,7 @@ #include "ardour/types.h" #include "ardour/presentation_info.h" -#include "timecode/time.h" +#include "temporal/time.h" #include "control_protocol/visibility.h" diff --git a/libs/surfaces/push2/mix.cc b/libs/surfaces/push2/mix.cc index cb6239728d..22d4f330d7 100644 --- a/libs/surfaces/push2/mix.cc +++ b/libs/surfaces/push2/mix.cc @@ -28,8 +28,8 @@ #include "pbd/enumwriter.h" #include "midi++/parser.h" -#include "timecode/time.h" -#include "timecode/bbt_time.h" +#include "temporal/time.h" +#include "temporal/bbt_time.h" #include "ardour/async_midi_port.h" #include "ardour/audioengine.h" diff --git a/libs/surfaces/push2/push2.cc b/libs/surfaces/push2/push2.cc index 763a136270..464240d379 100644 --- a/libs/surfaces/push2/push2.cc +++ b/libs/surfaces/push2/push2.cc @@ -28,8 +28,8 @@ #include "pbd/enumwriter.h" #include "midi++/parser.h" -#include "timecode/time.h" -#include "timecode/bbt_time.h" +#include "temporal/time.h" +#include "temporal/bbt_time.h" #include "ardour/amp.h" #include "ardour/async_midi_port.h" diff --git a/libs/surfaces/push2/track_mix.cc b/libs/surfaces/push2/track_mix.cc index a213e204ea..5712486048 100644 --- a/libs/surfaces/push2/track_mix.cc +++ b/libs/surfaces/push2/track_mix.cc @@ -29,8 +29,8 @@ #include "pbd/enumwriter.h" #include "midi++/parser.h" -#include "timecode/time.h" -#include "timecode/bbt_time.h" +#include "temporal/time.h" +#include "temporal/bbt_time.h" #include "ardour/async_midi_port.h" #include "ardour/audioengine.h" diff --git a/libs/surfaces/push2/wscript b/libs/surfaces/push2/wscript index 9c75f9d69f..806828cbd4 100644 --- a/libs/surfaces/push2/wscript +++ b/libs/surfaces/push2/wscript @@ -43,7 +43,7 @@ def build(bld): obj.name = 'libardour_push2' obj.target = 'ardour_push2' obj.uselib = 'CAIROMM PANGOMM USB GTKMM SIGCPP' - obj.use = 'libardour libardour_cp libgtkmm2ext libpbd libevoral libcanvas libtimecode' + obj.use = 'libardour libardour_cp libgtkmm2ext libpbd libevoral libcanvas libtemporal' obj.install_path = os.path.join(bld.env['LIBDIR'], 'surfaces') def shutdown(): diff --git a/libs/temporal/bbt_time.cc b/libs/temporal/bbt_time.cc index 8ee6d1a313..66efc5ec2e 100644 --- a/libs/temporal/bbt_time.cc +++ b/libs/temporal/bbt_time.cc @@ -19,7 +19,7 @@ #include <cmath> #include <cassert> -#include "timecode/bbt_time.h" +#include "temporal/bbt_time.h" using namespace Timecode; @@ -30,7 +30,7 @@ using namespace Timecode; 1920 has many factors, though going up to 3840 gets a couple more. - This needs to match Evoral::Beats::PPQN + This needs to match Temporal::Beats::PPQN */ const double BBT_Time::ticks_per_beat = 1920.0; diff --git a/libs/temporal/temporal/bbt_time.h b/libs/temporal/temporal/bbt_time.h index ed19748b50..03931b2eac 100644 --- a/libs/temporal/temporal/bbt_time.h +++ b/libs/temporal/temporal/bbt_time.h @@ -24,7 +24,7 @@ #include <iomanip> #include <exception> -#include "timecode/visibility.h" +#include "temporal/visibility.h" namespace Timecode { diff --git a/libs/temporal/temporal/beats.h b/libs/temporal/temporal/beats.h index c85959260a..3c92ac7561 100644 --- a/libs/temporal/temporal/beats.h +++ b/libs/temporal/temporal/beats.h @@ -16,8 +16,8 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef EVORAL_BEATS_HPP -#define EVORAL_BEATS_HPP +#ifndef TEMPORAL_BEATS_HPP +#define TEMPORAL_BEATS_HPP #include <float.h> #include <math.h> @@ -27,14 +27,14 @@ #include <iostream> #include <limits> -#include "evoral/visibility.h" +#include "temporal/visibility.h" -namespace Evoral { +namespace Temporal { /** Musical time in beats. */ -class /*LIBEVORAL_API*/ Beats { +class /*LIBTEMPORAL_API*/ Beats { public: - LIBEVORAL_API static const int32_t PPQN = 1920; + LIBTEMPORAL_API static const int32_t PPQN = 1920; Beats() : _beats(0), _ticks(0) {} @@ -126,7 +126,7 @@ public: return Beats(_beats, 0); } - Beats snap_to(const Evoral::Beats& snap) const { + Beats snap_to(const Temporal::Beats& snap) const { const double snap_time = snap.to_double(); return Beats(ceil(to_double() / snap_time) * snap_time); } @@ -272,7 +272,7 @@ private: /* TIL, several horrible hours later, that sometimes the compiler looks in the - namespace of a type (Evoral::Beats in this case) for an operator, and + namespace of a type (Temporal::Beats in this case) for an operator, and does *NOT* look in the global namespace. C++ is proof that hell exists and we are living in it. In any case, move @@ -300,15 +300,15 @@ operator>>(std::istream& is, Beats& t) namespace PBD { namespace DEBUG { - LIBEVORAL_API extern uint64_t Beats; + LIBTEMPORAL_API extern uint64_t Beats; } } namespace std { template<> - struct numeric_limits<Evoral::Beats> { - static Evoral::Beats lowest() { - return Evoral::Beats(std::numeric_limits<int32_t>::min(), + struct numeric_limits<Temporal::Beats> { + static Temporal::Beats lowest() { + return Temporal::Beats(std::numeric_limits<int32_t>::min(), std::numeric_limits<int32_t>::min()); } @@ -316,11 +316,11 @@ namespace std { but Beats is used as both. Better to avoid providing a min at all than a confusing one. */ - static Evoral::Beats max() { - return Evoral::Beats(std::numeric_limits<int32_t>::max(), + static Temporal::Beats max() { + return Temporal::Beats(std::numeric_limits<int32_t>::max(), std::numeric_limits<int32_t>::max()); } }; } -#endif // EVORAL_BEATS_HPP +#endif // TEMPORAL_BEATS_HPP diff --git a/libs/temporal/temporal/time.h b/libs/temporal/temporal/time.h index 779e0a4147..b668c2bc88 100644 --- a/libs/temporal/temporal/time.h +++ b/libs/temporal/temporal/time.h @@ -23,7 +23,7 @@ #include <ostream> #include <inttypes.h> -#include "timecode/visibility.h" +#include "temporal/visibility.h" namespace Timecode { diff --git a/libs/temporal/time.cc b/libs/temporal/time.cc index 55fd636d3e..59cfa427be 100644 --- a/libs/temporal/time.cc +++ b/libs/temporal/time.cc @@ -23,7 +23,7 @@ #include <stdio.h> #include <stdlib.h> -#include "timecode/time.h" +#include "temporal/time.h" namespace Timecode { |