From 05a3f90055c3a2c94fe8ee9c72b798a23b5baf11 Mon Sep 17 00:00:00 2001 From: Sebastian Hahta <joseha@utu.fi> Date: Thu, 25 Jun 2020 13:12:25 +0300 Subject: [PATCH] fix broken test, use FrameSetPtr --- CMakeLists.txt | 2 +- applications/gui2/src/frameview.cpp | 2 +- applications/gui2/src/frameview.hpp | 2 +- applications/gui2/src/inputoutput.hpp | 6 ++--- .../gui2/src/modules/camera/control.cpp | 2 +- applications/gui2/src/modules/camera/view.cpp | 2 +- applications/gui2/src/modules/camera/view.hpp | 2 +- .../gui2/src/modules/thumbnails/control.cpp | 2 +- .../gui2/src/modules/thumbnails/view.cpp | 2 +- .../gui2/src/modules/thumbnails/view.hpp | 2 +- components/common/cpp/test/msgpack_unit.cpp | 22 ++++++++++++------ .../rgbd-sources/include/ftl/rgbd/source.hpp | 2 +- .../streams/include/ftl/streams/builder.hpp | 4 ++-- .../streams/include/ftl/streams/feed.hpp | 2 +- .../streams/include/ftl/streams/receiver.hpp | 4 ++-- .../streams/include/ftl/streams/renderer.hpp | 7 +++--- components/streams/src/feed.cpp | 6 ++--- components/streams/src/receiver.cpp | 4 ++-- components/streams/src/renderer.cpp | 23 ++++++++++++++----- components/streams/test/builder_unit.cpp | 6 ++--- components/streams/test/receiver_unit.cpp | 18 +++++++-------- .../include/ftl/data/new_frameset.hpp | 4 ++-- components/structures/src/new_frame.cpp | 8 +++---- 23 files changed, 77 insertions(+), 57 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 761a7fa81..c2702880e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -475,7 +475,7 @@ if (BUILD_CALIBRATION) endif() if (BUILD_RECONSTRUCT) - add_subdirectory(applications/reconstruct) + #add_subdirectory(applications/reconstruct) endif() if (HAVE_NANOGUI) diff --git a/applications/gui2/src/frameview.cpp b/applications/gui2/src/frameview.cpp index c22596b64..190a9ddda 100644 --- a/applications/gui2/src/frameview.cpp +++ b/applications/gui2/src/frameview.cpp @@ -119,7 +119,7 @@ void FrameView::draw(NVGcontext *ctx) { glDisable(GL_SCISSOR_TEST); } -void FrameView::set(const std::shared_ptr<ftl::data::FrameSet> &fs, int fid, ftl::codecs::Channel c, cudaStream_t s, bool cp) { +void FrameView::set(const ftl::data::FrameSetPtr &fs, int fid, ftl::codecs::Channel c, cudaStream_t s, bool cp) { if (!std::atomic_load(&fs_)) { fid_ = fid; channel_ = c; diff --git a/applications/gui2/src/frameview.hpp b/applications/gui2/src/frameview.hpp index 0d23ccf90..32176ee12 100644 --- a/applications/gui2/src/frameview.hpp +++ b/applications/gui2/src/frameview.hpp @@ -22,7 +22,7 @@ public: * at next draw() call. Can be called from any thread. Saves parameters * and copies the shared pointer. The other set() method is used in next * draw call to perform the operation. */ - void set(const std::shared_ptr<ftl::data::FrameSet>& fs, int fid, ftl::codecs::Channel channel, cudaStream_t stream=0, bool copy=true); + void set(const ftl::data::FrameSetPtr& fs, int fid, ftl::codecs::Channel channel, cudaStream_t stream=0, bool copy=true); /** Set a frame in OpenGL context. May only be called from GUI thread (draw * or GUI callback */ void set(const NVGcontext *ctx, ftl::data::Frame &f, ftl::codecs::Channel c, cudaStream_t s=0, bool cp=true); diff --git a/applications/gui2/src/inputoutput.hpp b/applications/gui2/src/inputoutput.hpp index 38722e161..529af2427 100644 --- a/applications/gui2/src/inputoutput.hpp +++ b/applications/gui2/src/inputoutput.hpp @@ -30,16 +30,16 @@ public: InputOutput(const InputOutput&) = delete; void operator=(const InputOutput&) = delete; - ftl::Handle addCallback(const std::function<bool(const std::shared_ptr<ftl::data::FrameSet>&)>&); + ftl::Handle addCallback(const std::function<bool(const ftl::data::FrameSetPtr&)>&); ftl::net::Universe* net() const; ftl::ctrl::Master* master() const { return master_.get(); } ftl::stream::Feed* feed() const { return feed_.get(); } private: - void processFrameSet_(const std::shared_ptr<ftl::data::FrameSet>&); + void processFrameSet_(const ftl::data::FrameSetPtr&); - ftl::Handler<const std::shared_ptr<ftl::data::FrameSet>&> cb_; + ftl::Handler<const ftl::data::FrameSetPtr&> cb_; ftl::Handle hr_; // receiver handle ftl::net::Universe* net_; diff --git a/applications/gui2/src/modules/camera/control.cpp b/applications/gui2/src/modules/camera/control.cpp index 771f38f8f..305940612 100644 --- a/applications/gui2/src/modules/camera/control.cpp +++ b/applications/gui2/src/modules/camera/control.cpp @@ -8,7 +8,7 @@ void Camera::activate() { filter = io->feed()->filter({ftl::codecs::Channel::Colour}); filter->on( - [this, view](const std::shared_ptr<ftl::data::FrameSet>& fs){ + [this, view](const ftl::data::FrameSetPtr& fs){ view->update(fs, source_idx); screen->redraw(); return true; diff --git a/applications/gui2/src/modules/camera/view.cpp b/applications/gui2/src/modules/camera/view.cpp index ab576b950..44f25b1c6 100644 --- a/applications/gui2/src/modules/camera/view.cpp +++ b/applications/gui2/src/modules/camera/view.cpp @@ -44,7 +44,7 @@ void CameraView::draw(NVGcontext *ctx) { View::draw(ctx); } -void CameraView::update(const std::shared_ptr<ftl::data::FrameSet>& fs, int fid) { +void CameraView::update(const ftl::data::FrameSetPtr& fs, int fid) { auto channel = ftl::codecs::Channel::Colour; fview->set(fs, fid, channel, 0, true); diff --git a/applications/gui2/src/modules/camera/view.hpp b/applications/gui2/src/modules/camera/view.hpp index 5213820fb..225987df4 100644 --- a/applications/gui2/src/modules/camera/view.hpp +++ b/applications/gui2/src/modules/camera/view.hpp @@ -21,7 +21,7 @@ public: ~CameraView(); virtual void draw(NVGcontext *ctx) override; - void update(const std::shared_ptr<ftl::data::FrameSet>& fs, int fid); + void update(const ftl::data::FrameSetPtr& fs, int fid); private: diff --git a/applications/gui2/src/modules/thumbnails/control.cpp b/applications/gui2/src/modules/thumbnails/control.cpp index 06a114692..5628c59e2 100644 --- a/applications/gui2/src/modules/thumbnails/control.cpp +++ b/applications/gui2/src/modules/thumbnails/control.cpp @@ -34,7 +34,7 @@ void ThumbnailsController::show_thumbnails() { auto* filter = io->feed()->filter({Channel::Colour}); filter->on( - [this, thumb_view](const std::shared_ptr<ftl::data::FrameSet>& fs){ + [this, thumb_view](const ftl::data::FrameSetPtr& fs){ thumb_view->update(fs); screen->redraw(); return true; diff --git a/applications/gui2/src/modules/thumbnails/view.cpp b/applications/gui2/src/modules/thumbnails/view.cpp index 947d13e38..cf291110c 100644 --- a/applications/gui2/src/modules/thumbnails/view.cpp +++ b/applications/gui2/src/modules/thumbnails/view.cpp @@ -67,7 +67,7 @@ Thumbnails::~Thumbnails() { } -void Thumbnails::update(const std::shared_ptr<ftl::data::FrameSet>& fs) { +void Thumbnails::update(const ftl::data::FrameSetPtr& fs) { if (!fs_) { fs_ = fs; } diff --git a/applications/gui2/src/modules/thumbnails/view.hpp b/applications/gui2/src/modules/thumbnails/view.hpp index c84a2c744..0ceb9e641 100644 --- a/applications/gui2/src/modules/thumbnails/view.hpp +++ b/applications/gui2/src/modules/thumbnails/view.hpp @@ -17,7 +17,7 @@ public: Thumbnails(nanogui::Widget *parent, ThumbnailsController *controller); virtual ~Thumbnails(); - void update(const std::shared_ptr<ftl::data::FrameSet>& fs); + void update(const ftl::data::FrameSetPtr& fs); virtual void draw(NVGcontext *ctx) override; private: diff --git a/components/common/cpp/test/msgpack_unit.cpp b/components/common/cpp/test/msgpack_unit.cpp index c5e79d3bf..940706125 100644 --- a/components/common/cpp/test/msgpack_unit.cpp +++ b/components/common/cpp/test/msgpack_unit.cpp @@ -60,17 +60,25 @@ TEST_CASE( "msgpack cv::Mat" ) { SECTION( "Mat::ones(Size(1, 5), CV_8UC3)" ) { Mat A = Mat::ones(Size(1, 5), CV_8UC3); Mat B = msgpack_unpack<Mat>(msgpack_pack(A)); - + REQUIRE(A.size() == B.size()); REQUIRE(A.type() == B.type()); - REQUIRE(cv::countNonZero(A != B) == 0); + + cv::Mat diff; + cv::absdiff(A, B, diff); + REQUIRE(cv::countNonZero(diff.reshape(1, diff.total())) == 0); + + // how is it possible this REQUIRE() passed earlier? Multi-channel + // images can not be used in countNonZero() and A != B returns multi + // channel result. (test fixed by comparison above) + //REQUIRE(cv::countNonZero(A != B) == 0); } SECTION ( "Mat 10x10 CV_64FC1 with random values [-1000, 1000]" ) { Mat A(Size(10, 10), CV_64FC1); cv::randu(A, -1000, 1000); Mat B = msgpack_unpack<Mat>(msgpack_pack(A)); - + REQUIRE(A.size() == B.size()); REQUIRE(A.type() == B.type()); REQUIRE(cv::countNonZero(A != B) == 0); @@ -82,9 +90,9 @@ TEST_CASE( "msgpack cv::Mat" ) { msgpack::zone z; auto obj = msgpack::object(A, z); - + Mat B = msgpack_unpack<Mat>(msgpack_pack(obj)); - + REQUIRE(A.size() == B.size()); REQUIRE(A.type() == B.type()); REQUIRE(cv::countNonZero(A != B) == 0); @@ -97,7 +105,7 @@ TEST_CASE( "msgpack cv::Mat" ) { A.setTo(0); Mat B = msgpack_unpack<Mat>(msgpack_pack(A)); - + REQUIRE(A.size() == B.size()); REQUIRE(A.type() == B.type()); REQUIRE(cv::countNonZero(A != B) == 0); @@ -111,7 +119,7 @@ TEST_CASE( "msgpack cv::Mat" ) { auto res = msgpack_unpack<cv::Rect2d>(msgpack_pack(cv::Rect2d(1,2,3,4))); REQUIRE(res == cv::Rect2d(1,2,3,4)); } - + SECTION( "Vec<T, SIZE>" ) { auto res = msgpack_unpack<cv::Vec4d>(msgpack_pack(cv::Vec4d(1,2,3,4))); REQUIRE(res == cv::Vec4d(1,2,3,4)); diff --git a/components/rgbd-sources/include/ftl/rgbd/source.hpp b/components/rgbd-sources/include/ftl/rgbd/source.hpp index 1a3177d2c..1a1cb2a26 100644 --- a/components/rgbd-sources/include/ftl/rgbd/source.hpp +++ b/components/rgbd-sources/include/ftl/rgbd/source.hpp @@ -169,7 +169,7 @@ class SourceGenerator : public ftl::data::Generator { public: explicit SourceGenerator(Source *src) : source_(src) {} - inline ftl::Handle onFrameSet(const std::function<bool(const std::shared_ptr<ftl::data::FrameSet>&)> &cb) override { + inline ftl::Handle onFrameSet(const ftl::data::FrameSetCallback &cb) override { return source_->onFrame([this,cb](ftl::data::Frame &frame) { auto fs = ftl::data::FrameSet::fromFrame(frame); return cb(fs); diff --git a/components/streams/include/ftl/streams/builder.hpp b/components/streams/include/ftl/streams/builder.hpp index 38b18fd5c..040b14138 100644 --- a/components/streams/include/ftl/streams/builder.hpp +++ b/components/streams/include/ftl/streams/builder.hpp @@ -27,7 +27,7 @@ class Builder { //inline void setID(int id) { id_ = id; } - inline ftl::Handle onFrameSet(const std::function<bool(const std::shared_ptr<ftl::data::FrameSet>&)> &cb) { return cb_.on(cb); } + inline ftl::Handle onFrameSet(const ftl::data::FrameSetCallback &cb) { return cb_.on(cb); } /** * Instead of pushing a frame, find or create a direct reference to one. @@ -67,7 +67,7 @@ class Builder { //std::list<ftl::data::FrameSet*> allocated_; // Keep memory allocations size_t head_; - ftl::Handler<const std::shared_ptr<ftl::data::FrameSet>&> cb_; + ftl::Handler<const ftl::data::FrameSetPtr&> cb_; MUTEX mutex_; int mspf_; int64_t last_ts_; diff --git a/components/streams/include/ftl/streams/feed.hpp b/components/streams/include/ftl/streams/feed.hpp index 7992950ee..784b8f6de 100644 --- a/components/streams/include/ftl/streams/feed.hpp +++ b/components/streams/include/ftl/streams/feed.hpp @@ -34,7 +34,7 @@ public: const std::unordered_set<ftl::codecs::Channel>& channels() const { return channels_; }; const std::unordered_set<uint32_t>& sources() const { return sources_; }; - void on(const ftl::data::FrameSetHandler &cb); + void on(const ftl::data::FrameSetCallback &cb); private: Filter(Feed* feed, const std::unordered_set<uint32_t>& sources, const std::unordered_set<ftl::codecs::Channel>& channels); diff --git a/components/streams/include/ftl/streams/receiver.hpp b/components/streams/include/ftl/streams/receiver.hpp index c9a061ce3..4d109a1f0 100644 --- a/components/streams/include/ftl/streams/receiver.hpp +++ b/components/streams/include/ftl/streams/receiver.hpp @@ -34,7 +34,7 @@ class Receiver : public ftl::Configurable, public ftl::data::Generator { * Register a callback for received framesets. Sources are automatically * created to match the data received. */ - ftl::Handle onFrameSet(const std::function<bool(const std::shared_ptr<ftl::data::FrameSet>&)> &cb) override; + ftl::Handle onFrameSet(const ftl::data::FrameSetCallback &cb) override; /** * Add a frameset handler to a specific stream ID. @@ -48,7 +48,7 @@ class Receiver : public ftl::Configurable, public ftl::data::Generator { private: ftl::stream::Stream *stream_; ftl::data::Pool *pool_; - ftl::SingletonHandler<const std::shared_ptr<ftl::data::FrameSet>&> callback_; + ftl::SingletonHandler<const ftl::data::FrameSetPtr&> callback_; std::unordered_map<uint32_t, ftl::streams::Builder> builders_; std::list<ftl::Handle> handles_; ftl::codecs::Channel second_channel_; diff --git a/components/streams/include/ftl/streams/renderer.hpp b/components/streams/include/ftl/streams/renderer.hpp index 58c081ae7..9c286028b 100644 --- a/components/streams/include/ftl/streams/renderer.hpp +++ b/components/streams/include/ftl/streams/renderer.hpp @@ -1,7 +1,6 @@ #ifndef _FTL_RENDER_GENERATOR_HPP_ #define _FTL_RENDER_GENERATOR_HPP_ - #include <ftl/data/new_frameset.hpp> #include <ftl/rgbd/frameset.hpp> #include <ftl/audio/frameset.hpp> @@ -17,11 +16,13 @@ class Renderer : public ftl::Configurable, public ftl::data::Generator { public: explicit Renderer(nlohmann::json &config, ftl::data::Pool *, uint32_t fsid); ~Renderer(); - ftl::Handle onFrameSet(const std::function<bool(const std::shared_ptr<ftl::data::FrameSet>&)> &cb) override; + ftl::Handle onFrameSet(const ftl::data::FrameSetCallback &cb) override; + void submit(const ftl::data::FrameSetPtr &fs); + private: ftl::streams::Builder builder_; ftl::Handle builder_handle_; - ftl::SingletonHandler<const std::shared_ptr<ftl::data::FrameSet>&> callback_; + ftl::SingletonHandler<const ftl::data::FrameSetPtr&> callback_; ftl::data::FrameSetPtr input_; std::unique_ptr<ftl::render::CUDARender> renderer_; }; diff --git a/components/streams/src/feed.cpp b/components/streams/src/feed.cpp index 2d846136e..584785f4e 100644 --- a/components/streams/src/feed.cpp +++ b/components/streams/src/feed.cpp @@ -19,7 +19,7 @@ Feed::Filter::~Filter() { } -void Feed::Filter::on(const ftl::data::FrameSetHandler &cb) { +void Feed::Filter::on(const ftl::data::FrameSetCallback &cb) { std::unique_lock<std::mutex> lk(feed_->mtx_); if (std::find(feed_->filters_.begin(), feed_->filters_.end(),this) == feed_->filters_.end()) { @@ -74,7 +74,7 @@ Feed::Feed(nlohmann::json &config, ftl::net::Universe*net) : }); handle_receiver_ = receiver_->onFrameSet( - [this](const std::shared_ptr<ftl::data::FrameSet>& fs) { + [this](const ftl::data::FrameSetPtr& fs) { if (pre_pipelines_.count(fs->frameset()) == 1) { pre_pipelines_[fs->frameset()]->apply(*fs, *fs, 0); } @@ -288,6 +288,6 @@ uint32_t Feed::allocateFrameSetId() { } -/*ftl::Handle Feed::onFrameSet(const ftl::stream::ftl::data::FrameSetHandler &f) { +/*ftl::Handle Feed::onFrameSet(const ftl::stream::ftl::data::FrameSetCallback &f) { return frameset_cb_.on(f); }*/ diff --git a/components/streams/src/receiver.cpp b/components/streams/src/receiver.cpp index 839d7cde1..cf21177f0 100644 --- a/components/streams/src/receiver.cpp +++ b/components/streams/src/receiver.cpp @@ -63,7 +63,7 @@ ftl::streams::Builder &Receiver::builder(uint32_t id) { b.setID(id); b.setPool(pool_); b.setBufferSize(value("frameset_buffer_size", 3)); - handles_.push_back(std::move(b.onFrameSet([this](const std::shared_ptr<ftl::data::FrameSet>& fs) { + handles_.push_back(std::move(b.onFrameSet([this](const ftl::data::FrameSetPtr& fs) { callback_.trigger(fs); return true; }))); @@ -430,7 +430,7 @@ void Receiver::setStream(ftl::stream::Stream *s) { }); } -ftl::Handle Receiver::onFrameSet(const std::function<bool(const std::shared_ptr<ftl::data::FrameSet>&)> &cb) { +ftl::Handle Receiver::onFrameSet(const std::function<bool(const ftl::data::FrameSetPtr&)> &cb) { //for (auto &b : builders_) // b.second.onFrameSet(cb); return callback_.on(cb); diff --git a/components/streams/src/renderer.cpp b/components/streams/src/renderer.cpp index 910589dce..243d1a876 100644 --- a/components/streams/src/renderer.cpp +++ b/components/streams/src/renderer.cpp @@ -20,22 +20,33 @@ Renderer::Renderer(nlohmann::json &config, ftl::data::Pool *p, uint32_t fsid) : builder_handle_ = builder_.onFrameSet([this](const ftl::data::FrameSetPtr &fs){ // wrong way auto &frame_out = builder_.get(fs->timestamp(), 0).cast<ftl::rgbd::Frame>(); + auto input = input_; + renderer_->begin(frame_out, ftl::codecs::Channel::Left); renderer_->submit( - fs.get(), + input.get(), ftl::codecs::Channels<0>(ftl::codecs::Channel::Colour), Eigen::Matrix4d::Identity()); - //auto &frame = fs_out->frames[0].cast<ftl::rgbd::Frame>(); - //frame.get<ftl::rgbd::Frame>(); - // return true; }); } +void Renderer::submit(const ftl::data::FrameSetPtr &fs) { + input_ = fs; + auto &frame_out = builder_.get(fs->timestamp(), 0).cast<ftl::rgbd::Frame>(); + auto input = input_; + renderer_->begin(frame_out, ftl::codecs::Channel::Left); + renderer_->submit( + input.get(), + ftl::codecs::Channels<0>(ftl::codecs::Channel::Colour), + Eigen::Matrix4d::Identity()); +} + Renderer::~Renderer() { } -ftl::Handle Renderer::onFrameSet(const std::function<bool(const std::shared_ptr<ftl::data::FrameSet>&)> &cb) { - return callback_.on(cb); +ftl::Handle Renderer::onFrameSet(const std::function<bool(const ftl::data::FrameSetPtr&)> &cb) { + //return callback_.on(cb); + return builder_.onFrameSet(cb); } diff --git a/components/streams/test/builder_unit.cpp b/components/streams/test/builder_unit.cpp index cb3f4b0d2..345f1885b 100644 --- a/components/streams/test/builder_unit.cpp +++ b/components/streams/test/builder_unit.cpp @@ -73,7 +73,7 @@ TEST_CASE("ftl::streams::Builder can complete a frameset", "[]") { int fsid = 0; - auto h = builder.onFrameSet([&fsid](const std::shared_ptr<ftl::data::FrameSet>& fs) { + auto h = builder.onFrameSet([&fsid](const ftl::data::FrameSetPtr& fs) { fsid = fs->frameset(); return false; }); @@ -96,7 +96,7 @@ TEST_CASE("ftl::streams::Builder can complete a frameset", "[]") { int fsid = 0; - auto h = builder.onFrameSet([&fsid](const std::shared_ptr<ftl::data::FrameSet>& fs) { + auto h = builder.onFrameSet([&fsid](const ftl::data::FrameSetPtr& fs) { fsid = fs->frameset(); return false; }); @@ -120,7 +120,7 @@ TEST_CASE("ftl::streams::Builder can complete a frameset", "[]") { int fsid = 0; - auto h = builder.onFrameSet([&fsid](const std::shared_ptr<ftl::data::FrameSet>& fs) { + auto h = builder.onFrameSet([&fsid](const ftl::data::FrameSetPtr& fs) { fsid = fs->frameset(); return false; }); diff --git a/components/streams/test/receiver_unit.cpp b/components/streams/test/receiver_unit.cpp index 6f6ebe291..97694aaac 100644 --- a/components/streams/test/receiver_unit.cpp +++ b/components/streams/test/receiver_unit.cpp @@ -108,7 +108,7 @@ TEST_CASE( "Receiver generating onFrameSet" ) { stream.post(spkt, pkt); int count = 0; - auto h = receiver->onFrameSet([&count](const std::shared_ptr<ftl::data::FrameSet>& fs) { + auto h = receiver->onFrameSet([&count](const ftl::data::FrameSetPtr& fs) { ++count; REQUIRE( fs->timestamp() == 10 ); @@ -138,7 +138,7 @@ TEST_CASE( "Receiver generating onFrameSet" ) { stream.post(spkt, pkt); std::atomic<int> mask = 0; - auto h = receiver->onFrameSet([&mask](const std::shared_ptr<ftl::data::FrameSet>& fs) { + auto h = receiver->onFrameSet([&mask](const ftl::data::FrameSetPtr& fs) { mask |= 1 << fs->frameset(); return true; }); @@ -163,7 +163,7 @@ TEST_CASE( "Receiver generating onFrameSet" ) { stream.post(spkt, pkt); int count = 0; - auto h = receiver->onFrameSet([&count](const std::shared_ptr<ftl::data::FrameSet>& fs) { + auto h = receiver->onFrameSet([&count](const ftl::data::FrameSetPtr& fs) { ++count; REQUIRE( fs->timestamp() == 10 ); @@ -197,7 +197,7 @@ TEST_CASE( "Receiver generating onFrameSet" ) { stream.post(spkt, pkt); int count = 0; - auto h = receiver->onFrameSet([&count](const std::shared_ptr<ftl::data::FrameSet>& fs) { + auto h = receiver->onFrameSet([&count](const ftl::data::FrameSetPtr& fs) { ++count; REQUIRE( fs->timestamp() == 10 ); @@ -232,7 +232,7 @@ TEST_CASE( "Receiver generating onFrameSet" ) { stream.post(spkt, pkt); int count = 0; - auto h = receiver->onFrameSet([&count](const std::shared_ptr<ftl::data::FrameSet>& fs) { + auto h = receiver->onFrameSet([&count](const ftl::data::FrameSetPtr& fs) { ++count; REQUIRE( fs->timestamp() == 10 ); @@ -314,7 +314,7 @@ TEST_CASE( "Receiver sync bugs" ) { int count = 0; int64_t ts = 0; bool haswrongchan = false; - auto h = receiver->onFrameSet([&count,&ts,&haswrongchan](const std::shared_ptr<ftl::data::FrameSet>& fs) { + auto h = receiver->onFrameSet([&count,&ts,&haswrongchan](const ftl::data::FrameSetPtr& fs) { ++count; ts = fs->timestamp(); @@ -398,7 +398,7 @@ TEST_CASE( "Receiver non zero buffer" ) { REQUIRE( r ); int count = 0; - auto h = receiver->onFrameSet([&count](const std::shared_ptr<ftl::data::FrameSet>& fs) { + auto h = receiver->onFrameSet([&count](const ftl::data::FrameSetPtr& fs) { ++count; REQUIRE( fs->timestamp() == 10 ); @@ -469,7 +469,7 @@ TEST_CASE( "Receiver for data channels" ) { stream.post(spkt, pkt); int count = 0; - auto h = receiver->onFrameSet([&count](const std::shared_ptr<ftl::data::FrameSet>& fs) { + auto h = receiver->onFrameSet([&count](const ftl::data::FrameSetPtr& fs) { ++count; REQUIRE( fs->timestamp() == 10 ); @@ -497,7 +497,7 @@ TEST_CASE( "Receiver for data channels" ) { stream.post(spkt, pkt); int count = 0; - auto h = receiver->onFrameSet([&count](const std::shared_ptr<ftl::data::FrameSet>& fs) { + auto h = receiver->onFrameSet([&count](const ftl::data::FrameSetPtr& fs) { ++count; REQUIRE( fs->timestamp() == 10 ); diff --git a/components/structures/include/ftl/data/new_frameset.hpp b/components/structures/include/ftl/data/new_frameset.hpp index 6b4a95311..6acba56a1 100644 --- a/components/structures/include/ftl/data/new_frameset.hpp +++ b/components/structures/include/ftl/data/new_frameset.hpp @@ -100,11 +100,11 @@ class FrameSet : public ftl::data::Frame { }; using FrameSetPtr = std::shared_ptr<ftl::data::FrameSet>; -using FrameSetHandler = std::function<bool(const FrameSetPtr&)>; +using FrameSetCallback = std::function<bool(const FrameSetPtr&)>; class Generator { public: - virtual ftl::Handle onFrameSet(const FrameSetHandler &)=0; + virtual ftl::Handle onFrameSet(const FrameSetCallback &)=0; }; /** diff --git a/components/structures/src/new_frame.cpp b/components/structures/src/new_frame.cpp index 0e8befa0d..c91aef2f7 100644 --- a/components/structures/src/new_frame.cpp +++ b/components/structures/src/new_frame.cpp @@ -85,7 +85,7 @@ bool ftl::data::Frame::has(ftl::codecs::Channel c) const { if (i != data_.end() && i->second.status != ftl::data::ChannelStatus::INVALID) { return true; } else { - return (parent_ && parent_->has(c)); + return (parent_ && parent_->has(c)); } } @@ -113,7 +113,7 @@ std::any &Frame::createAnyChange(ftl::codecs::Channel c, ftl::data::ChangeType t if (status_ != FrameStatus::CREATED) throw FTL_Error("Cannot apply change after store " << static_cast<int>(status_)); ftl::data::Frame::ChannelData *d; - + if (parent_) { UNIQUE_LOCK(mutex(), lk); d = &(data_[c]); @@ -136,7 +136,7 @@ std::any &Frame::createAnyChange(ftl::codecs::Channel c, ftl::data::ChangeType t if (status_ != FrameStatus::CREATED) throw FTL_Error("Cannot apply change after store " << static_cast<int>(status_)); ftl::data::Frame::ChannelData *d; - + if (parent_) { UNIQUE_LOCK(mutex(), lk); d = &(data_[c]); @@ -370,7 +370,7 @@ ftl::Handle Session::onFlush(const std::function<bool(Frame&,ftl::codecs::Channe } void Session::notifyChanges(Frame &f) { - + } void Session::flush(Frame &f) { -- GitLab