From 40de8d615f48dbbcd731753b33ef2ca16f92e9ba Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Mon, 10 Jun 2024 02:04:21 +0800 Subject: [PATCH] replay: add stop() function (#32673) add stop() func old-commit-hash: 3f84fe3557099ba74895241e8f4059b1001cd6ec --- tools/cabana/streams/replaystream.cc | 4 +++- tools/replay/replay.cc | 6 +++++- tools/replay/replay.h | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/tools/cabana/streams/replaystream.cc b/tools/cabana/streams/replaystream.cc index b1768fcdce..5fda6b0487 100644 --- a/tools/cabana/streams/replaystream.cc +++ b/tools/cabana/streams/replaystream.cc @@ -65,7 +65,9 @@ void ReplayStream::start() { } void ReplayStream::stop() { - replay.reset(nullptr); + if (replay) { + replay->stop(); + } } bool ReplayStream::eventFilter(const Event *event) { diff --git a/tools/replay/replay.cc b/tools/replay/replay.cc index f477e327ee..8616437188 100644 --- a/tools/replay/replay.cc +++ b/tools/replay/replay.cc @@ -46,11 +46,15 @@ Replay::Replay(QString route, QStringList allow, QStringList block, SubMaster *s } Replay::~Replay() { + stop(); +} + +void Replay::stop() { if (!stream_thread_ && segments_.empty()) return; rInfo("shutdown: in progress..."); if (stream_thread_ != nullptr) { - exit_ =true; + exit_ = true; paused_ = true; stream_cv_.notify_one(); stream_thread_->quit(); diff --git a/tools/replay/replay.h b/tools/replay/replay.h index e3f321e1d7..4adbc14df8 100644 --- a/tools/replay/replay.h +++ b/tools/replay/replay.h @@ -54,6 +54,7 @@ public: ~Replay(); bool load(); void start(int seconds = 0); + void stop(); void pause(bool pause); void seekToFlag(FindFlag flag); void seekTo(double seconds, bool relative);