+/** Use our own list for effect parameters so that they are not sorted in any ways, because
+ some effects like sox need a precise order
+*/
+class EffectsParameterList: public QList < EffectParameter >
+{
+public:
+ EffectsParameterList(): QList < EffectParameter >() {}
+ bool hasParam(const QString &name) const {
+ for (int i = 0; i < size(); i++)
+ if (at(i).name() == name) return true;
+ return false;
+ }
+ void setParamValue(const QString &name, const QString &value) {
+ bool found = false;
+ for (int i = 0; i < size(); i++)
+ if (at(i).name() == name) {
+ // update value
+ replace(i, EffectParameter(name, value));
+ found = true;
+ }
+ if (!found) addParam(name, value);
+ }
+
+ QString paramValue(const QString &name, QString defaultValue = QString()) const {
+ for (int i = 0; i < size(); i++) {
+ if (at(i).name() == name) return at(i).value();
+ }
+ return defaultValue;
+ }
+ void addParam(const QString &name, const QString &value) {
+ if (name.isEmpty()) return;
+ append(EffectParameter(name, value));
+ }
+ void removeParam(const QString &name) {
+ for (int i = 0; i < size(); i++)
+ if (at(i).name() == name) {
+ removeAt(i);
+ break;
+ }
+ }
+};
+
+class CommentedTime
+{
+public:
+ CommentedTime(): t(GenTime(0)), type(0) {}
+ CommentedTime(const GenTime &time, QString comment, int markerType = 0)
+ : t(time), c(comment), type(markerType) { }
+
+ QString comment() const {
+ return (c.isEmpty() ? i18n("Marker") : c);
+ }
+ GenTime time() const {
+ return t;
+ }
+ void setComment(QString comm) {
+ c = comm;
+ }
+ void setMarkerType(int t) {
+ type = t;
+ }
+ int markerType() const {
+ return type;
+ }
+ static QColor markerColor(int type) {
+ switch (type) {
+ case 0:
+ return Qt::red;
+ break;
+ case 1:
+ return Qt::blue;
+ break;
+ case 2:
+ return Qt::green;
+ break;
+ case 3:
+ return Qt::yellow;
+ break;
+ default:
+ return Qt::cyan;
+ break;
+ }
+ };
+
+ /* Implementation of > operator; Works identically as with basic types. */
+ bool operator>(CommentedTime op) const {
+ return t > op.time();
+ }
+ /* Implementation of < operator; Works identically as with basic types. */
+ bool operator<(CommentedTime op) const {
+ return t < op.time();
+ }
+ /* Implementation of >= operator; Works identically as with basic types. */
+ bool operator>=(CommentedTime op) const {
+ return t >= op.time();
+ }
+ /* Implementation of <= operator; Works identically as with basic types. */
+ bool operator<=(CommentedTime op) const {
+ return t <= op.time();
+ }
+ /* Implementation of == operator; Works identically as with basic types. */
+ bool operator==(CommentedTime op) const {
+ return t == op.time();
+ }
+ /* Implementation of != operator; Works identically as with basic types. */
+ bool operator!=(CommentedTime op) const {
+ return t != op.time();
+ }
+
+private:
+ GenTime t;
+ QString c;
+ int type;
+
+
+
+};
+
+QDebug operator << (QDebug qd, const ItemInfo &info);
+
+