X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fdefinitions.h;h=b18502a9fed812e2096200d358a47c6955d6e9bc;hb=cd85961a9520f2f3c909e889dacd8de539468b89;hp=857ba6856a8b38575bc350bc0718b82c2457b8ce;hpb=2d4d29392f9772ccf46d8f327686ce4e5f390df0;p=kdenlive diff --git a/src/definitions.h b/src/definitions.h index 857ba685..b18502a9 100644 --- a/src/definitions.h +++ b/src/definitions.h @@ -21,12 +21,18 @@ #ifndef DEFINITIONS_H #define DEFINITIONS_H -#define FRAME_SIZE 90 -#define MAXCLIPDURATION 15000 +#include -enum OPERATIONTYPE { NONE = 0, MOVE = 1, RESIZESTART = 2, RESIZEEND = 3, FADEIN = 4, FADEOUT = 5, TRANSITIONSTART = 6, TRANSITIONEND = 7}; -enum CLIPTYPE { UNKNOWN = 0, AUDIO = 1, VIDEO = 2, AV = 3, COLOR = 4, IMAGE = 5, TEXT = 6, SLIDESHOW = 7, VIRTUAL = 8, PLAYLIST = 9}; -enum GRAPHICSRECTITEM { AVWIDGET = 70000 , LABELWIDGET , TRANSITIONWIDGET }; +#include "gentime.h" + +const int FRAME_SIZE = 90; +const int MAXCLIPDURATION = 15000; + +enum OPERATIONTYPE { NONE = 0, MOVE = 1, RESIZESTART = 2, RESIZEEND = 3, FADEIN = 4, FADEOUT = 5, TRANSITIONSTART = 6, TRANSITIONEND = 7, MOVEGUIDE = 8, KEYFRAME = 9, SEEK = 10, SPACER = 11, RUBBERSELECTION = 12}; +enum CLIPTYPE { UNKNOWN = 0, AUDIO = 1, VIDEO = 2, AV = 3, COLOR = 4, IMAGE = 5, TEXT = 6, SLIDESHOW = 7, VIRTUAL = 8, PLAYLIST = 9, FOLDER = 10}; +enum GRAPHICSRECTITEM { AVWIDGET = 70000 , LABELWIDGET , TRANSITIONWIDGET , GROUPWIDGET}; + +enum PROJECTTOOL { SELECTTOOL = 0 , RAZORTOOL = 1 , SPACERTOOL = 2 }; enum TRANSITIONTYPE { /** TRANSITIONTYPE: between 0-99: video trans, 100-199: video+audio trans, 200-299: audio trans */ @@ -37,8 +43,29 @@ enum TRANSITIONTYPE { MIX_TRANSITION = 200 }; +enum MessageType { + DefaultMessage, + OperationCompletedMessage, + InformationMessage, + ErrorMessage +}; + enum TRACKTYPE { AUDIOTRACK = 0, VIDEOTRACK = 1 }; +struct TrackInfo { + TRACKTYPE type; + bool isMute; + bool isBlind; + bool isLocked; +}; + +struct ItemInfo { + GenTime startPos; + GenTime endPos; + GenTime cropStart; + int track; +}; + struct MltVideoProfile { QString path; QString description; @@ -53,4 +80,100 @@ struct MltVideoProfile { int display_aspect_den; }; + +class EffectParameter { +public: + EffectParameter(const QString name, const QString value): m_name(name), m_value(value) {} + QString name() const { + return m_name; + } + QString value() const { + return m_value; + } + void setValue(const QString value) { + m_value = value; + } + +private: + QString m_name; + QString m_value; +}; + +/** 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; + } + 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)) {} + CommentedTime(const GenTime time, QString comment) + : t(time), c(comment) { } + + QString comment() const { + return (c.isEmpty() ? i18n("Marker") : c); + } + GenTime time() const { + return t; + } + void setComment(QString comm) { + c = comm; + } + + /* 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; + + +}; #endif