18#ifndef SLIDESHOWGENERATORWIDGET_H
19#define SLIDESHOWGENERATORWIDGET_H
21#include <MltProducer.h>
35class ProducerPreviewWidget;
37class SlideshowGeneratorWidget :
public QWidget
42 SlideshowGeneratorWidget(Mlt::Playlist *clips, QWidget *parent = 0);
43 virtual ~SlideshowGeneratorWidget();
45 Mlt::Playlist *getSlideshow();
48 void on_parameterChanged();
51 struct SlideshowConfig
54 double audioVideoDuration;
57 double transitionDuration;
59 int transitionSoftness;
62 void attachAffineFilter(SlideshowConfig &config, Mlt::Producer *producer,
int endPosition);
63 void attachBlurFilter(SlideshowConfig &config, Mlt::Producer *producer);
64 void applyLumaTransitionProperties(Mlt::Transition *luma, SlideshowConfig &config);
65 void generatePreviewSlideshow();
66 Q_INVOKABLE
void startPreview();
68 QDoubleSpinBox *m_imageDurationSpinner;
69 QDoubleSpinBox *m_audioVideoDurationSpinner;
70 QComboBox *m_aspectConversionCombo;
71 QSpinBox *m_zoomPercentSpinner;
72 QDoubleSpinBox *m_transitionDurationSpinner;
73 QComboBox *m_transitionStyleCombo;
74 QSpinBox *m_softnessSpinner;
75 ProducerPreviewWidget *m_preview;
76 Mlt::Playlist *m_clips;
79 QFuture<void> m_future;
81 bool m_refreshPreview;
82 SlideshowConfig m_config;
83 Mlt::Producer m_previewProducer;