# HG changeset patch # User Hasan Yavuz Ă–ZDERYA # Date 2018-03-26 15:52:23 # Node ID 8554454db965f5fd05fc9126e2daa463a6695fbe # Parent 1e7920e956a9f58b75d6de2c4f824a5eca4c5fd8 added stream clear method to zero the buffers diff --git a/src/stream.cpp b/src/stream.cpp --- a/src/stream.cpp +++ b/src/stream.cpp @@ -159,6 +159,14 @@ void Stream::pause(bool paused) _paused = paused; } +void Stream::clear() +{ + for (auto c : channels) + { + static_cast(c->yData())->clear(); + } +} + void Stream::setNumSamples(unsigned value) { if (value == _numSamples) return; diff --git a/src/stream.h b/src/stream.h --- a/src/stream.h +++ b/src/stream.h @@ -85,6 +85,9 @@ public slots: /// When paused data feed is ignored void pause(bool paused); + /// Clears buffer data (fills with 0) + void clear(); + private: unsigned _numSamples; bool _paused; diff --git a/tests/test_stream.cpp b/tests/test_stream.cpp --- a/tests/test_stream.cpp +++ b/tests/test_stream.cpp @@ -179,7 +179,7 @@ TEST_CASE("adding data to a stream with } } -TEST_CASE("paused stream shoulnd't store data", "[memory, stream, pause]") +TEST_CASE("paused stream shouldn't store data", "[memory, stream, pause]") { Stream s(3, false, 10); @@ -211,3 +211,36 @@ TEST_CASE("paused stream shoulnd't store } } } + +TEST_CASE("clear stream data", "[memory, stream, pause]") +{ + Stream s(3, false, 10); + + // prepare data + SamplePack pack(5, 3, false); + for (unsigned ci = 0; ci < 3; ci++) + { + for (unsigned i = 0; i < 5; i++) + { + pack.data(ci)[i] = i; + } + } + + TestSource so(3, false); + so.connect(&s); + + // test + so._feed(pack); + s.clear(); + + for (unsigned ci = 0; ci < 3; ci++) + { + const StreamChannel* c = s.channel(ci); + const FrameBuffer* y = c->yData(); + + for (unsigned i = 0; i < 10; i++) + { + REQUIRE(y->sample(i) == 0); + } + } +}