diff --git a/src/Lib/Document/CRTPSubDocument/AssSubDocument.cc b/src/Lib/Document/CRTPSubDocument/AssSubDocument.cc new file mode 100644 index 0000000000000000000000000000000000000000..de627f85605be9edd4662813444fece40b11b7fb --- /dev/null +++ b/src/Lib/Document/CRTPSubDocument/AssSubDocument.cc @@ -0,0 +1,51 @@ +#include "../CRTPSubDocument.hh" + +#include <QJsonObject> +#include <QJsonDocument> + +using namespace Vivy; + +// Init a ASS sub-document from a file +void +AssSubDocument::initFromPath(const QString &path) +{ + Ass::AssFactory factory(path); + factory.getStyles(styles); + factory.getLines(lines); +} + +QString +AssSubDocument::getElementName() const noexcept +{ + return "AssSubDocument"; +} + +const QVector<Ass::LinePtr> & +AssSubDocument::getLines() const noexcept +{ + return lines; +} + +const QVector<Ass::StylePtr> & +AssSubDocument::getStyles() const noexcept +{ + return styles; +} + +QJsonDocument +AssSubDocument::getProperties() const noexcept +{ + QJsonDocument ret; + + QJsonObject styleObject; + for (const Ass::StylePtr &style : styles) { + styleObject.insert(style->getElementName(), style->getProperties().object()); + } + + QJsonObject object{ + { "Styles", styleObject }, + { "File", filePath }, + }; + ret.setObject(object); + return ret; +} diff --git a/src/Lib/Document/CRTPSubDocument.cc b/src/Lib/Document/CRTPSubDocument/AudioSubDocument.cc similarity index 53% rename from src/Lib/Document/CRTPSubDocument.cc rename to src/Lib/Document/CRTPSubDocument/AudioSubDocument.cc index ed788183a5f1acc939f1c28479d9cfeec9951e42..5a205fa7546126c759cad3db7f5cf941b27bfce8 100644 --- a/src/Lib/Document/CRTPSubDocument.cc +++ b/src/Lib/Document/CRTPSubDocument/AudioSubDocument.cc @@ -1,12 +1,10 @@ -#include "CRTPSubDocument.hh" +#include "../CRTPSubDocument.hh" #include <QJsonObject> #include <QJsonDocument> using namespace Vivy; -// AudioSubDocument implementation - // Get the default stream index or -1 if not possible int AudioSubDocument::getDefaultStreamIndex() const noexcept @@ -69,73 +67,3 @@ AudioSubDocument::getProperties() const noexcept ret.setObject(object); return ret; } - -// VideoSubDocument implementation - -// Init a video sub-document from a file -void -VideoSubDocument::initFromPath(const QString &) -{ -} - -QString -VideoSubDocument::getElementName() const noexcept -{ - return "VideoSubDocument"; -} - -QJsonDocument -VideoSubDocument::getProperties() const noexcept -{ - QJsonDocument ret; - QJsonObject object; - ret.setObject(object); - return ret; -} - -// AssSubDocument implementation - -// Init a ASS sub-document from a file -void -AssSubDocument::initFromPath(const QString &path) -{ - Ass::AssFactory factory(path); - factory.getStyles(styles); - factory.getLines(lines); -} - -QString -AssSubDocument::getElementName() const noexcept -{ - return "AssSubDocument"; -} - -const QVector<Ass::LinePtr> & -AssSubDocument::getLines() const noexcept -{ - return lines; -} - -const QVector<Ass::StylePtr> & -AssSubDocument::getStyles() const noexcept -{ - return styles; -} - -QJsonDocument -AssSubDocument::getProperties() const noexcept -{ - QJsonDocument ret; - - QJsonObject styleObject; - for (const Ass::StylePtr &style : styles) { - styleObject.insert(style->getElementName(), style->getProperties().object()); - } - - QJsonObject object{ - { "Styles", styleObject }, - { "File", filePath }, - }; - ret.setObject(object); - return ret; -} diff --git a/src/Lib/Document/CRTPSubDocument/VideoSubDocument.cc b/src/Lib/Document/CRTPSubDocument/VideoSubDocument.cc new file mode 100644 index 0000000000000000000000000000000000000000..87b70c0c4c60fdf8d4ed063fa0c8d2a5ad33e45e --- /dev/null +++ b/src/Lib/Document/CRTPSubDocument/VideoSubDocument.cc @@ -0,0 +1,27 @@ +#include "../CRTPSubDocument.hh" + +#include <QJsonObject> +#include <QJsonDocument> + +using namespace Vivy; + +// Init a video sub-document from a file +void +VideoSubDocument::initFromPath(const QString &) +{ +} + +QString +VideoSubDocument::getElementName() const noexcept +{ + return "VideoSubDocument"; +} + +QJsonDocument +VideoSubDocument::getProperties() const noexcept +{ + QJsonDocument ret; + QJsonObject object; + ret.setObject(object); + return ret; +}