void* Downloader::bufferingProcedure(void *receiver) { Downloader* downloader = (Downloader *) receiver; uint32_t number = 0; IBufferItem *media = downloader->adaptation->getSegment(number); while(media != NULL) { Time t1(boost::posix_time::microsec_clock::local_time()); media->start(); media->wait(); Time t2(boost::posix_time::microsec_clock::local_time()); TimeDuration dt = t2 - t1; downloader->buffer->push(media); number++; downloader->adaptation->setBufferStatus(downloader->buffer->size()*1.0); downloader->adaptation->setDownloadTime(dt.total_milliseconds()); media = downloader->adaptation->getSegment(number); } downloader->buffer->setEnd(true); return NULL; }
inline void sleep(TimeDuration const& rel_time) { interruptible_wait(detail::pin_to_zero(rel_time.total_milliseconds())); }
inline void sleep(TimeDuration const& rel_time) { interruptible_wait(static_cast<unsigned long>(rel_time.total_milliseconds())); }
void AccelerationAction::update(TimeDuration delta) { velocity_ += acceleration_ * delta.total_milliseconds(); if ((acceleration_ > 0 && velocity_ > targetVelocity_) || (acceleration_ < 0 && velocity_ < targetVelocity_)) { velocity_ = targetVelocity_; } }
TimeDuration rand_range(const TimeDuration& start, const TimeDuration& stop) { unsigned int start_int = start.total_milliseconds(); unsigned int stop_int = stop.total_milliseconds(); return ptime::milliseconds(rr(start_int, stop_int)); }
double TimeDuration::operator /(const TimeDuration& b) const { return double(total_milliseconds()) / double(b.total_milliseconds()); }
void CameraMoveAction::update(TimeDuration delta) { AccelerationAction::update(delta); camera_.moveRelative(direction_.normalised() * velocity() * delta.total_milliseconds()); }