File indexing completed on 2025-02-09 07:08:06
0001 /* 0002 * SPDX-FileCopyrightText: 2020 Jonah BrĂ¼chert <jbb@kaidan.im> 0003 * SPDX-FileCopyrightText: 2021 Devin Lin <espidev@gmail.com> 0004 * 0005 * SPDX-License-Identifier: GPL-3.0-or-later 0006 */ 0007 0008 #pragma once 0009 0010 #include <QObject> 0011 #include <QDateTime> 0012 #include <QJsonObject> 0013 0014 class Recording : public QObject 0015 { 0016 Q_OBJECT 0017 Q_PROPERTY(QString filePath READ filePath WRITE setFilePath NOTIFY propertyChanged) 0018 Q_PROPERTY(QString fileExtension READ fileExtension NOTIFY propertyChanged) 0019 Q_PROPERTY(QString fileName READ fileName WRITE setFileName NOTIFY propertyChanged) 0020 Q_PROPERTY(QString recordDate READ recordDatePretty NOTIFY propertyChanged) 0021 Q_PROPERTY(QString recordingLength READ recordingLengthPretty NOTIFY propertyChanged) 0022 0023 public: 0024 explicit Recording(QObject *parent = nullptr, const QString &filePath = {}, const QString &fileName = {}, QDateTime recordDate = QDateTime::currentDateTime(), int recordingLength = 0); 0025 explicit Recording(QObject *parent, const QJsonObject &obj); 0026 0027 QJsonObject toJson() const; 0028 0029 QString filePath() const; 0030 QString fileName() const; 0031 QString fileExtension() const; 0032 0033 QDateTime recordDate() const; 0034 QString recordDatePretty() const; 0035 0036 int recordingLength() const; 0037 QString recordingLengthPretty() const; 0038 0039 void setFilePath(const QString &filePath); 0040 void setFileName(const QString &fileName); 0041 0042 void setRecordDate(const QDateTime &date); 0043 void setRecordingLength(int recordingLength); 0044 0045 Q_INVOKABLE void createCopyOfFile(const QString &path); 0046 0047 private: 0048 QString m_filePath, m_fileName; 0049 QDateTime m_recordDate; 0050 int m_recordingLength; // seconds 0051 0052 Q_SIGNALS: 0053 void propertyChanged(); 0054 };