diff options
Diffstat (limited to 'paperreplay.h')
-rw-r--r-- | paperreplay.h | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/paperreplay.h b/paperreplay.h index e771584..c9eb6f2 100644 --- a/paperreplay.h +++ b/paperreplay.h @@ -1,10 +1,9 @@ #ifndef PAPERREPLAY_H #define PAPERREPLAY_H -#include <QtCore/QDateTime> #include <QtCore/QDir> #include <QtCore/QHash> -#include <QtCore/QMultiMap> +#include <QtCore/QMap> #include <QtCore/QVector> #define PAPER_REPLAY "Paper Replay" @@ -14,8 +13,9 @@ class PaperReplay : public QObject Q_OBJECT struct SessionData : public QSharedData { + quint64 id; QString name; - QDateTime start, end; + qint64 start, end; QVector<quint64> pages; QString file; }; @@ -28,26 +28,45 @@ public: Session(); ~Session(); + bool isValid() const; + + quint64 id() const; + QString name() const; - QDateTime startTime() const; - QDateTime endTime() const; + qint64 startTime() const; + qint64 endTime() const; QVector<quint64> pages() const; QString fileName() const; private: + Session(quint64 id); QSharedDataPointer<SessionData> d; friend class PaperReplay; + friend class SessionList; + }; + + class SessionList { + public: + SessionList(); + + QList<Session> sessionsDuringTime(qint64 time) const; + + private: + explicit SessionList(const QMap<qint64, Session>& byTime); + + QMap<qint64, Session> _m; + + friend class PaperReplay; }; bool open(const QString &path, const QString &penSerial, quint64 notebookGuid); void close(); - QList<Session> sessions() const; - QList<Session> sessions(quint64 pageAddress) const; + SessionList sessions(quint64 pageAddress) const; private: static bool parseSessionInfo(SessionData *session, const QString &path); @@ -60,8 +79,7 @@ private: private: QDir _dir; - QHash<quint64, Session> _sessions; - QMultiMap<quint64, quint64> _byPage; + QMap<quint64, QMap<qint64, Session> > _byPageTime; }; #endif // PAPERREPLAY_H |