mirror of
https://github.com/MoreTore/openpilot.git
synced 2026-08-04 15:56:08 +08:00
@@ -91,6 +91,11 @@ void CANMessages::seekTo(double ts) {
|
||||
emit updated();
|
||||
}
|
||||
|
||||
void CANMessages::pause(bool pause) {
|
||||
replay->pause(pause);
|
||||
emit (pause ? paused() : resume());
|
||||
}
|
||||
|
||||
void CANMessages::settingChanged() {
|
||||
replay->setSegmentCacheLimit(settings.cached_segment_limit);
|
||||
}
|
||||
|
||||
@@ -38,10 +38,12 @@ public:
|
||||
inline const std::vector<Event *> *events() const { return replay->events(); }
|
||||
inline void setSpeed(float speed) { replay->setSpeed(speed); }
|
||||
inline bool isPaused() const { return replay->isPaused(); }
|
||||
inline void pause(bool pause) { replay->pause(pause); }
|
||||
void pause(bool pause);
|
||||
inline const std::vector<std::tuple<int, int, TimelineType>> getTimeline() { return replay->getTimeline(); }
|
||||
|
||||
signals:
|
||||
void paused();
|
||||
void resume();
|
||||
void seekedTo(double sec);
|
||||
void streamStarted();
|
||||
void eventsMerged();
|
||||
|
||||
@@ -63,22 +63,19 @@ VideoWidget::VideoWidget(QWidget *parent) : QFrame(parent) {
|
||||
}
|
||||
main_layout->addLayout(control_layout);
|
||||
|
||||
QObject::connect(can, &CANMessages::updated, this, &VideoWidget::updateState);
|
||||
QObject::connect(slider, &QSlider::sliderReleased, [this]() { can->seekTo(slider->value() / 1000.0); });
|
||||
QObject::connect(slider, &QSlider::valueChanged, [=](int value) { time_label->setText(formatTime(value / 1000)); });
|
||||
QObject::connect(cam_widget, &CameraWidget::clicked, [this]() { pause(!can->isPaused()); });
|
||||
QObject::connect(play_btn, &QPushButton::clicked, [=]() { pause(!can->isPaused()); });
|
||||
QObject::connect(cam_widget, &CameraWidget::clicked, []() { can->pause(!can->isPaused()); });
|
||||
QObject::connect(play_btn, &QPushButton::clicked, []() { can->pause(!can->isPaused()); });
|
||||
QObject::connect(can, &CANMessages::updated, this, &VideoWidget::updateState);
|
||||
QObject::connect(can, &CANMessages::paused, [this]() { play_btn->setText("▶"); });
|
||||
QObject::connect(can, &CANMessages::resume, [this]() { play_btn->setText("⏸"); });
|
||||
QObject::connect(can, &CANMessages::streamStarted, [this]() {
|
||||
end_time_label->setText(formatTime(can->totalSeconds()));
|
||||
slider->setRange(0, can->totalSeconds() * 1000);
|
||||
});
|
||||
}
|
||||
|
||||
void VideoWidget::pause(bool pause) {
|
||||
play_btn->setText(!pause ? "⏸" : "▶");
|
||||
can->pause(pause);
|
||||
}
|
||||
|
||||
void VideoWidget::rangeChanged(double min, double max, bool is_zoomed) {
|
||||
if (!is_zoomed) {
|
||||
min = 0;
|
||||
|
||||
@@ -44,7 +44,6 @@ public:
|
||||
|
||||
protected:
|
||||
void updateState();
|
||||
void pause(bool pause);
|
||||
|
||||
CameraWidget *cam_widget;
|
||||
QLabel *end_time_label;
|
||||
|
||||
Reference in New Issue
Block a user