class EffectsList;
-class initEffectsThumbnailer : public QThread {
+class initEffectsThumbnailer : public QThread
+{
Q_OBJECT
public:
initEffectsThumbnailer();
};
-class initEffects : public QObject {
-
+class initEffects
+{
public:
- initEffects();
- ~initEffects();
- static Mlt::Repository *parseEffectFiles();
+ /** @brief Fills the effects and transitions lists.
+ * @ref fillTransitionsList
+ * @ref parseEffectFile
+ * @return pointer to the MLT repository
+ *
+ * It checks for all available effects and transitions, removes blacklisted
+ * ones, calls fillTransitionsList() and parseEffectFile() to fill the lists
+ * (with sorted, unique items) and then fills the global lists. */
+ static void parseEffectFiles(const QString &locale = QString());
+ static void refreshLumas();
static QDomDocument createDescriptionFromMlt(Mlt::Repository* repository, const QString& type, const QString& name);
- static void fillTransitionsList(Mlt::Repository *, EffectsList* transitions, QStringList names);
- static QDomElement quickParameterFill(QDomDocument & doc, QString name, QString tag, QString type, QString def = QString(), QString min = QString(), QString max = QString(), QString list = QString(), QString listdisplaynames = QString(), QString factor = QString(), QString namedesc = QString(), QString format = QString());
- static void parseEffectFile(EffectsList *audioEffectList, EffectsList *videoEffectList, QString name, QStringList filtersList, QStringList producersList);
- static char* ladspaEffectString(int ladspaId, QStringList params);
- static void ladspaEffectFile(const QString & fname, int ladspaId, QStringList params);
-
- static char* ladspaPitchEffectString(QStringList params);
- static char* ladspaReverbEffectString(QStringList params);
- static char* ladspaRoomReverbEffectString(QStringList params);
- static char* ladspaEqualizerEffectString(QStringList params);
- static char* ladspaDeclipEffectString(QStringList);
- static char* ladspaVinylEffectString(QStringList params);
- static char* ladspaLimiterEffectString(QStringList params);
- static char* ladspaPitchShifterEffectString(QStringList params);
- static char* ladspaPhaserEffectString(QStringList params);
- static char* ladspaRateScalerEffectString(QStringList params);
+ static QDomDocument getUsedCustomEffects(const QMap<QString, QString> &effectids);
+
+ /** @brief Fills the transitions list.
+ * @param repository MLT repository
+ * @param transitions list to save the transitions data in
+ * @param names list of transitions names
+ *
+ * It creates an element for each transition, asking to MLT for information
+ * when possible, using default parameters otherwise. It also adds some
+ * "virtual" transition, and removes those not implemented. */
+ static void fillTransitionsList(Mlt::Repository *repository,
+ EffectsList *transitions,
+ QStringList names);
+
+ /** @brief Creates an element describing a transition parameter.
+ * @param doc document containing the transition element
+ * @param name parameter name
+ * @param tag parameter tag
+ * @param type parameter type (string, double, bool, etc.)
+ * @return element with the parameter information */
+ static QDomElement quickParameterFill(QDomDocument & doc,
+ const QString &name,
+ const QString &tag,
+ const QString &type,
+ const QString &def = QString(),
+ const QString &min = QString(),
+ const QString &max = QString(),
+ const QString &list = QString(),
+ const QString &listdisplaynames = QString(),
+ const QString &factor = QString(),
+ const QString &namedesc = QString(),
+ const QString &format = QString(),
+ const QString &opacity = QString());
+
+ /** @brief Parses a file to record information about one or more effects.
+ * @param customEffectList list of custom effect
+ * @param audioEffectList list of audio effects
+ * @param videoEffectList list of video effects
+ * @param name file name
+ * @param filtersList list of filters in the MLT repository
+ * @param producersList list of producers in the MLT repository
+ * @param repository MLT repository */
+ static void parseEffectFile(EffectsList *customEffectList,
+ EffectsList *audioEffectList,
+ EffectsList *videoEffectList,
+ const QString &name, QStringList filtersList,
+ QStringList producersList,
+ Mlt::Repository *repository);
+
+ /** @brief Reloads information about custom effects. */
+ static void parseCustomEffectsFile();
+
private:
+ initEffects(); // disable the constructor
static initEffectsThumbnailer thumbnailer;
};