File indexing completed on 2025-01-05 04:01:11

0001 /*
0002  * SPDX-FileCopyrightText: 2019-2023 Mattia Basaglia <dev@dragon.best>
0003  *
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  */
0006 #pragma once
0007 
0008 #include "io/base.hpp"
0009 #include "io/io_registry.hpp"
0010 
0011 namespace glaxnimate::io::aep {
0012 
0013 struct RiffChunk;
0014 
0015 class AepFormat : public ImportExport
0016 {
0017     Q_OBJECT
0018 
0019 public:
0020     QString slug() const override { return "aep"; }
0021     QString name() const override { return i18n("Adobe After Effects Project"); }
0022     QStringList extensions() const override { return {"aep"}; }
0023     bool can_save() const override { return false; }
0024     bool can_open() const override { return true; }
0025 
0026 protected:
0027     bool on_open(QIODevice& file, const QString&, model::Document* document, const QVariantMap& options) override;
0028 
0029     bool riff_to_document(const RiffChunk& chunk, model::Document* document, const QString& filename);
0030 
0031 private:
0032     static Autoreg<AepFormat> autoreg;
0033 };
0034 
0035 
0036 class AepxFormat : public AepFormat
0037 {
0038     Q_OBJECT
0039 
0040 public:
0041     QString slug() const override { return "aepx"; }
0042     QString name() const override { return i18n("Adobe After Effects Project XML"); }
0043     QStringList extensions() const override { return {"aepx"}; }
0044     bool can_save() const override { return false; }
0045     bool can_open() const override { return true; }
0046 
0047 protected:
0048     bool on_open(QIODevice& file, const QString&, model::Document* document, const QVariantMap& options) override;
0049 
0050 private:
0051     static Autoreg<AepxFormat> autoreg;
0052 };
0053 
0054 } // namespace glaxnimate::io::aep
0055 
0056 
0057