#ifndef PAPERREPLAY_H #define PAPERREPLAY_H #include #include #include #include #include #define PAPER_REPLAY "Paper Replay" class PaperReplay : public QObject { Q_OBJECT public: explicit PaperReplay(QObject *parent = 0); bool open(const QString &path, const QString &penSerial, quint64 notebookGuid); void close(); struct Session { QDateTime start, end; QString name; QVector pages; QString file; }; QList sessions(); QList sessions(quint64 pageAddress); private: static bool parseSessionInfo(Session &session, const QString &path); static bool parseSessionInfo(Session &session, QIODevice *dev); static bool parseSessionInfoV3(Session &session, QIODevice *dev); static bool parseSessionPages(Session &session, const QString &path); static bool parseSessionPages(Session &session, QIODevice *dev); static bool parseSessionPagesV1(Session &session, QIODevice *dev); private: QDir _dir; QHash _sessions; QMultiMap _byPage; }; #endif // PAPERREPLAY_H