#pragma once /*========================================================================= medInria Copyright (c) INRIA 2013. All rights reserved. See LICENSE.txt for details in the root of the sources or: https://github.com/medInria/medInria-public/blob/master/LICENSE.txt This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. =========================================================================*/ #include "medExportVideoPluginExport.h" #include #include namespace med { class ExportVideoPrivate; class EXPORTVIDEOPLUGIN_EXPORT ExportVideo : public medAbstractProcessLegacy { Q_OBJECT public: ExportVideo(); virtual ~ExportVideo(); virtual QString description() const; virtual QString identifier() const; static bool registered(); enum VideoFormat { OGGVORBIS, JPGBATCH, FFMPEG }; public slots: //! Parameters are set through here, channel allows to handle multiple parameters void setParameter(int *data, int frame); //! Method to actually start the filter int update(); //! The output function is needed in medAbstractProcess even if not used medAbstractData *output(); //! Adapt widgets in FileDialog according to the format type chosen void handleWidgetDisplayAccordingToType(int index); protected: //! Export only each slice of the view as JPEG. Useful for home encoding video int exportAsJPEG(); //! Export the current view as a video file int exportAsVideo(); //! Display a File dialog with several video parameters int displayFileDialog(); private: ExportVideoPrivate *d; }; dtkAbstractProcess *createExportVideo(); }