TimeSlice(uint32_t rate, uint32_t ppqn, double bpm) : _tick_rate(rate) , _beat_rate(60.0/bpm) , _start_ticks(Raul::TimeUnit(Raul::TimeUnit::FRAMES, rate), 0, 0) , _length_ticks(TimeUnit(TimeUnit::FRAMES, rate), 0, 0) , _start_beats(TimeUnit(TimeUnit::BEATS, ppqn), 0, 0) , _length_beats(TimeUnit(TimeUnit::BEATS, ppqn), 0, 0) , _offset_ticks(TimeUnit(TimeUnit::FRAMES, rate), 0, 0) {}
TimeInterval MediaSourceDecoder::ClampIntervalToEnd(const TimeInterval& aInterval) { if (!mEnded) { return aInterval; } TimeInterval interval(TimeUnit(), TimeUnit::FromSeconds(GetDuration())); return aInterval.Intersection(interval); }
LearnRequest::LearnRequest(SPtr<Raul::Maid> maid, SPtr<Node> node) : _started(false) , _start_time(TimeUnit(TimeUnit::BEATS, 19200), 0, 0) // irrelevant , _quantization(0) // irrelevant , _node(node) , _enter_action(new MidiAction(4, NULL)) , _exit_action(new MidiAction(4, NULL)) { maid->manage(_enter_action); maid->manage(_exit_action); }
inline TimeUnit real_unit() const { return TimeUnit(TimeUnit::SECONDS, 0); }
static inline TimeUnit seconds() { return TimeUnit(BEATS, std::numeric_limits<uint32_t>::max()); }
static inline TimeUnit beats(uint32_t ppqn) { return TimeUnit(BEATS, ppqn); }
static inline TimeUnit frames(uint32_t srate) { return TimeUnit(FRAMES, srate); }
inline BeatStamp(uint32_t ppqn, uint32_t ticks = 0, uint32_t subticks = 0) : TimeStamp(TimeUnit(TimeUnit::BEATS, ppqn), ticks, subticks) {}
inline FrameStamp(uint32_t rate, uint32_t ticks = 0, uint32_t subticks = 0) : TimeStamp(TimeUnit(TimeUnit::FRAMES, rate), ticks, subticks) {}