From 877fb09fa390e5d5747fcc07a5d13653d95f80ba Mon Sep 17 00:00:00 2001 From: Bruno Date: Thu, 29 Apr 2021 23:12:46 +0200 Subject: [PATCH] more elegant session source init --- SessionSource.cpp | 19 ++++++------------- SessionSource.h | 2 +- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/SessionSource.cpp b/SessionSource.cpp index e3b6239..f3aed59 100644 --- a/SessionSource.cpp +++ b/SessionSource.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include "SessionSource.h" @@ -163,26 +164,18 @@ void SessionFileSource::init() } else { - session_->update(dt_); - if (wait_for_sources_) { // force update of of all sources active_ = true; touch(); - // check that every source is ready.. - bool ready = true; - for (SourceList::iterator iter = session_->begin(); iter != session_->end(); ++iter) - { - // interrupt if any source is NOT ready - if ( !(*iter)->ready() ){ - ready = false; - break; - } - } + // update to draw framebuffer + session_->update(dt_); + // if all sources are ready, done with initialization! - if (ready) { + auto unintitializedsource = std::find_if_not(session_->begin(), session_->end(), Source::isInitialized); + if (unintitializedsource == session_->end()) { // done init wait_for_sources_ = false; initialized_ = true; diff --git a/SessionSource.h b/SessionSource.h index 6af18d1..ba92c05 100644 --- a/SessionSource.h +++ b/SessionSource.h @@ -45,7 +45,7 @@ protected: void init() override; std::string path_; - std::atomic wait_for_sources_; + bool wait_for_sources_; std::future sessionLoader_; };