18#ifndef SLIDESHOWGENERATORWIDGET_H
19#define SLIDESHOWGENERATORWIDGET_H
21#include <MltProducer.h>
36class ProducerPreviewWidget;
38class SlideshowGeneratorWidget :
public QWidget
43 SlideshowGeneratorWidget(Mlt::Playlist *clips, QWidget *parent = 0);
44 virtual ~SlideshowGeneratorWidget();
46 Mlt::Playlist *getSlideshow();
49 void on_parameterChanged();
52 struct SlideshowConfig {
56 double transitionDuration;
58 int transitionSoftness;
61 void attachAffineFilter(SlideshowConfig &config, Mlt::Producer *producer,
int endPosition);
62 void attachBlurFilter(SlideshowConfig &config, Mlt::Producer *producer);
63 void applyLumaTransitionProperties(Mlt::Transition *luma, SlideshowConfig &config);
64 void generatePreviewSlideshow();
65 Q_INVOKABLE
void startPreview();
67 QDoubleSpinBox *m_clipDurationSpinner;
68 QComboBox *m_aspectConversionCombo;
69 QSpinBox *m_zoomPercentSpinner;
70 QDoubleSpinBox *m_transitionDurationSpinner;
71 QComboBox *m_transitionStyleCombo;
72 QSpinBox *m_softnessSpinner;
73 ProducerPreviewWidget *m_preview;
74 Mlt::Playlist *m_clips;
77 QFuture<void> m_future;
79 bool m_refreshPreview;
80 SlideshowConfig m_config;
81 Mlt::Producer m_previewProducer;