#pragma once #include #include #include "cereal/messaging/messaging.h" #include "cereal/visionipc/visionipc_server.h" #include "selfdrive/common/clutil.h" #include "selfdrive/ui/replay/filereader.h" #include "tools/clib/framereader.h" class Unlogger : public QObject { Q_OBJECT public: Unlogger(Events *events_, QReadWriteLock* events_lock_, QMap *frs_, int seek); uint64_t getCurrentTime() { return tc; } void setSeekRequest(uint64_t seek_request_) { seek_request = seek_request_; } void setPause(bool pause) { paused = pause; } void togglePause() { paused = !paused; } QMap > eidx; public slots: void process(SubMaster *sm = nullptr); signals: void elapsed(); void finished(); void loadSegment(); private: Events *events; QReadWriteLock *events_lock; QMap *frs; QMap socks; Context *ctx; uint64_t tc = 0; float last_print = 0; uint64_t seek_request = 0; bool paused = false; bool loading_segment = false; VisionIpcServer *vipc_server = nullptr; };