diff options
Diffstat (limited to 'libs/ardour/ardour')
23 files changed, 82 insertions, 119 deletions
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 { |