From bdfd77bc4abb7986e49cdd688bcf18cee4e68ab0 Mon Sep 17 00:00:00 2001 From: Daniel Wolf Date: Wed, 14 Dec 2016 21:00:55 +0100 Subject: [PATCH] Added convenience functions to TimeRange --- src/time/TimeRange.cpp | 28 ++++++++++++++++++++++++++++ src/time/TimeRange.h | 7 +++++++ 2 files changed, 35 insertions(+) diff --git a/src/time/TimeRange.cpp b/src/time/TimeRange.cpp index 9398c18..80daa72 100644 --- a/src/time/TimeRange.cpp +++ b/src/time/TimeRange.cpp @@ -35,6 +35,26 @@ bool TimeRange::empty() const { return start == end; } +void TimeRange::setStart(time_type newStart) { + resize(newStart, end); +} + +void TimeRange::setEnd(time_type newEnd) { + resize(start, newEnd); +} + +void TimeRange::setStartIfEarlier(time_type newStart) { + if (newStart < start) { + setStart(newStart); + } +} + +void TimeRange::setEndIfLater(time_type newEnd) { + if (newEnd > end) { + setEnd(newEnd); + } +} + void TimeRange::resize(const TimeRange& newRange) { start = newRange.start; end = newRange.end; @@ -63,6 +83,14 @@ void TimeRange::trim(const TimeRange& limits) { resize(newRange); } +void TimeRange::trimLeft(time_type value) { + trim({value, end}); +} + +void TimeRange::trimRight(time_type value) { + trim({start, value}); +} + bool TimeRange::operator==(const TimeRange& rhs) const { return start == rhs.start && end == rhs.end; } diff --git a/src/time/TimeRange.h b/src/time/TimeRange.h index 15f9049..f1524d1 100644 --- a/src/time/TimeRange.h +++ b/src/time/TimeRange.h @@ -19,12 +19,19 @@ public: time_type getDuration() const; bool empty() const; + void setStart(time_type newStart); + void setEnd(time_type newEnd); + void setStartIfEarlier(time_type newStart); + void setEndIfLater(time_type newEnd); + void resize(const TimeRange& newRange); void resize(time_type start, time_type end); void shift(time_type offset); void grow(time_type value); void shrink(time_type value); void trim(const TimeRange& limits); + void trimLeft(time_type value); + void trimRight(time_type value); bool operator==(const TimeRange& rhs) const; bool operator!=(const TimeRange& rhs) const;