diff --git a/app/task/project/CMakeLists.txt b/app/task/project/CMakeLists.txt index 4b7bab31f..c88f4a35c 100644 --- a/app/task/project/CMakeLists.txt +++ b/app/task/project/CMakeLists.txt @@ -14,10 +14,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +add_subdirectory(exportotio) add_subdirectory(import) add_subdirectory(load) add_subdirectory(save) -add_subdirectory(saveotio) set(OLIVE_SOURCES ${OLIVE_SOURCES} diff --git a/app/task/project/saveotio/CMakeLists.txt b/app/task/project/exportotio/CMakeLists.txt similarity index 88% rename from app/task/project/saveotio/CMakeLists.txt rename to app/task/project/exportotio/CMakeLists.txt index 033c7457e..b604d7a1e 100644 --- a/app/task/project/saveotio/CMakeLists.txt +++ b/app/task/project/exportotio/CMakeLists.txt @@ -16,7 +16,7 @@ set(OLIVE_SOURCES ${OLIVE_SOURCES} - task/project/saveotio/projectsaveasotiotask.h - task/project/saveotio/projectsaveasotiotask.cpp + task/project/exportotio/exportotiotask.h + task/project/exportotio/exportotiotask.cpp PARENT_SCOPE ) diff --git a/app/task/project/saveotio/projectsaveasotiotask.cpp b/app/task/project/exportotio/exportotiotask.cpp similarity index 85% rename from app/task/project/saveotio/projectsaveasotiotask.cpp rename to app/task/project/exportotio/exportotiotask.cpp index cc52260a0..5acef888b 100644 --- a/app/task/project/saveotio/projectsaveasotiotask.cpp +++ b/app/task/project/exportotio/exportotiotask.cpp @@ -18,7 +18,7 @@ ***/ -#include "projectsaveasotiotask.h" +#include "exportotiotask.h" #include #include @@ -29,21 +29,20 @@ OLIVE_NAMESPACE_ENTER -ProjectSaveAsOTIOTask::ProjectSaveAsOTIOTask(Sequence *sequence) : - sequence_(sequence) +ExportOTIOTask::ExportOTIOTask(ViewerOutput *sequence, const QString &filename) : + sequence_(sequence), + filename_(filename) { - SetTitle(tr("Saving '%1' as OpenTimelineIO").arg(sequence->name())); + SetTitle(tr("Saving '%1' as OpenTimelineIO").arg(sequence_->media_name())); } -bool ProjectSaveAsOTIOTask::Run() +bool ExportOTIOTask::Run() { auto otio_timeline = new opentimelineio::v1_0::Timeline(); - ViewerOutput* viewer = sequence_->viewer_output(); - opentimelineio::v1_0::ErrorStatus es; - foreach (TrackOutput* track, viewer->track_list(Timeline::kTrackTypeVideo)->GetTracks()) { + foreach (TrackOutput* track, sequence_->track_list(Timeline::kTrackTypeVideo)->GetTracks()) { auto otio_track = new opentimelineio::v1_0::Track(); otio_track->set_kind("Video"); @@ -105,7 +104,9 @@ bool ProjectSaveAsOTIOTask::Run() } } - return true; + otio_timeline->to_json_file(filename_.toStdString(), &es); + + return (es == opentimelineio::v1_0::ErrorStatus::OK); } OLIVE_NAMESPACE_EXIT diff --git a/app/task/project/saveotio/projectsaveasotiotask.h b/app/task/project/exportotio/exportotiotask.h similarity index 86% rename from app/task/project/saveotio/projectsaveasotiotask.h rename to app/task/project/exportotio/exportotiotask.h index b64495c1f..5f5f77684 100644 --- a/app/task/project/saveotio/projectsaveasotiotask.h +++ b/app/task/project/exportotio/exportotiotask.h @@ -26,17 +26,19 @@ OLIVE_NAMESPACE_ENTER -class ProjectSaveAsOTIOTask : public Task +class ExportOTIOTask : public Task { Q_OBJECT public: - ProjectSaveAsOTIOTask(Sequence* sequence); + ExportOTIOTask(ViewerOutput* sequence, const QString& filename); protected: virtual bool Run() override; private: - Sequence* sequence_; + ViewerOutput* sequence_; + + QString filename_; };