From 83bc19038a426dd34907a4f2fb8730b6367cab04 Mon Sep 17 00:00:00 2001 From: Nicolas Pope <nwpope@utu.fi> Date: Sat, 11 Jul 2020 10:58:00 +0300 Subject: [PATCH] Restore rgbd source properties --- components/common/cpp/src/configurable.cpp | 2 ++ components/rgbd-sources/src/source.cpp | 10 ++++++++++ .../src/sources/stereovideo/stereovideo.cpp | 8 ++++++++ 3 files changed, 20 insertions(+) diff --git a/components/common/cpp/src/configurable.cpp b/components/common/cpp/src/configurable.cpp index 6ded7367f..c947eadad 100644 --- a/components/common/cpp/src/configurable.cpp +++ b/components/common/cpp/src/configurable.cpp @@ -40,6 +40,8 @@ void Configurable::save() { } void Configurable::restore(const std::string &key, const std::unordered_set<std::string> &allowed) { + save(); + auto &r = ftl::config::getRestore(key); if (r.is_object()) { config_->merge_patch(r); diff --git a/components/rgbd-sources/src/source.cpp b/components/rgbd-sources/src/source.cpp index adc237b1c..02710bc87 100644 --- a/components/rgbd-sources/src/source.cpp +++ b/components/rgbd-sources/src/source.cpp @@ -158,6 +158,16 @@ void Source::reset() { auto uristr = get<string>("uri"); if (!uristr) return; + + restore(*uristr, { + "min_depth", + "max_depth", + "name", + "offset_z", + "size", + "focal", + "device_left" + }); impl_ = createImplementation(*uristr, this); } diff --git a/components/rgbd-sources/src/sources/stereovideo/stereovideo.cpp b/components/rgbd-sources/src/sources/stereovideo/stereovideo.cpp index f09820922..aede12bec 100644 --- a/components/rgbd-sources/src/sources/stereovideo/stereovideo.cpp +++ b/components/rgbd-sources/src/sources/stereovideo/stereovideo.cpp @@ -170,6 +170,14 @@ void StereoVideoSource::init(const string &file) { LOG(INFO) << "StereoVideo source ready..."; ready_ = true; + + host_->on("size", [this](const ftl::config::Event &e) { + do_update_params_ = true; + }); + + host_->on("offset_z", [this](const ftl::config::Event &e) { + do_update_params_ = true; + }); } ftl::rgbd::Camera StereoVideoSource::parameters(Channel chan) { -- GitLab