X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fdefinitions.h;h=f370573f804e6fb93659389074b21b2f18fc1143;hb=ce68de86827a11cd0dc96465fba021b2f7ceea55;hp=c8725fc0b00de5367ee976593e5990adda87c55a;hpb=2b1c40908368fff4b20912551c266e45c89f6607;p=kdenlive diff --git a/src/definitions.h b/src/definitions.h index c8725fc0..f370573f 100644 --- a/src/definitions.h +++ b/src/definitions.h @@ -22,14 +22,29 @@ #define DEFINITIONS_H #include "gentime.h" +#include "effectslist.h" #include +#include + +#include + #include -const int FRAME_SIZE = 90; const int MAXCLIPDURATION = 15000; +namespace Kdenlive { + enum MONITORID { noMonitor, clipMonitor, projectMonitor, recordMonitor, stopmotionMonitor, dvdMonitor }; + /*const QString clipMonitor("clipMonitor"); + const QString recordMonitor("recordMonitor"); + const QString projectMonitor("projectMonitor"); + const QString stopmotionMonitor("stopmotionMonitor");*/ +} + 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 CLIPTYPE { UNKNOWN = 0, AUDIO = 1, VIDEO = 2, AV = 3, COLOR = 4, IMAGE = 5, TEXT = 6, SLIDESHOW = 7, VIRTUAL = 8, PLAYLIST = 9 }; + +enum PROJECTITEMTYPE { PROJECTCLIPTYPE = QTreeWidgetItem::UserType, PROJECTFOLDERTYPE, PROJECTSUBCLIPTYPE }; + enum GRAPHICSRECTITEM { AVWIDGET = 70000 , LABELWIDGET , TRANSITIONWIDGET , GROUPWIDGET}; enum PROJECTTOOL { SELECTTOOL = 0 , RAZORTOOL = 1 , SPACERTOOL = 2 }; @@ -53,28 +68,46 @@ enum MessageType { enum TRACKTYPE { AUDIOTRACK = 0, VIDEOTRACK = 1 }; +enum CLIPJOBSTATUS { NOJOB = 0, JOBWAITING = -1, JOBWORKING = -2, JOBDONE = -3, JOBCRASHED = -4, JOBABORTED = -5}; + struct TrackInfo { TRACKTYPE type; QString trackName; bool isMute; bool isBlind; bool isLocked; + EffectsList effectsList; + int duration; }; +typedef QMap stringMap; +typedef QMap > audioByteArray; + struct ItemInfo { /** startPos is the position where the clip starts on the track */ GenTime startPos; /** endPos is the duration where the clip ends on the track */ GenTime endPos; - /** cropStart is the position where the sub-clip starts, relative to the clip's 0 position. Doe not depend on speed */ - GenTime originalcropStart; - /** adjustedCropStart is the position where the sub-clip starts, depend on effects (speed,...) */ + /** cropStart is the position where the sub-clip starts, relative to the clip's 0 position */ GenTime cropStart; - /** cropDuration is the position where the sub-clip ends, relative to the clip's 0 position. Doe not depend on speed */ + /** cropDuration is the duration of the clip */ GenTime cropDuration; int track; }; +struct TransitionInfo { +/** startPos is the position where the clip starts on the track */ + GenTime startPos; + /** endPos is the duration where the clip ends on the track */ + GenTime endPos; + /** the track on which the transition is (b_track)*/ + int b_track; + /** the track on which the transition is applied (a_track)*/ + int a_track; + /** Does the user request for a special a_track */ + bool forceTrack; +}; + struct MltVideoProfile { QString path; QString description; @@ -87,20 +120,63 @@ struct MltVideoProfile { int sample_aspect_den; int display_aspect_num; int display_aspect_den; + int colorspace; + bool operator==(const MltVideoProfile& point) const + { + if (!description.isEmpty() && point.description == description) return true; + return point.frame_rate_num == frame_rate_num && + point.frame_rate_den == frame_rate_den && + point.width == width && + point.height == height && + point.progressive == progressive && + point.sample_aspect_num == sample_aspect_num && + point.sample_aspect_den == sample_aspect_den && + point.display_aspect_den == display_aspect_den && + point.colorspace == colorspace; + } + bool operator!=(const MltVideoProfile &other) const { + return !(*this == other); + } }; +/**) + * @class EffectInfo + * @brief A class holding some meta info for effects widgets, like state (collapsed or not, ...) + * @author Jean-Baptiste Mardelle + */ + +class EffectInfo +{ +public: + EffectInfo() {isCollapsed = false; groupIndex = -1;} + bool isCollapsed; + int groupIndex; + QString groupName; + QString toString() const { + QStringList data; + data << QString::number(isCollapsed) << QString::number(groupIndex) << groupName; + return data.join("/"); + } + void fromString(QString value) { + if (value.isEmpty()) return; + QStringList data = value.split("/"); + isCollapsed = data.at(0).toInt(); + if (data.count() > 1) groupIndex = data.at(1).toInt(); + if (data.count() > 2) groupName = data.at(2); + } +}; class EffectParameter { public: - EffectParameter(const QString name, const QString value): m_name(name), m_value(value) {} + 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) { + void setValue(const QString &value) { m_value = value; } @@ -116,12 +192,12 @@ class EffectsParameterList: public QList < EffectParameter > { public: EffectsParameterList(): QList < EffectParameter >() {} - bool hasParam(const QString name) const { + 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 { + 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(); } @@ -131,7 +207,7 @@ public: if (name.isEmpty()) return; append(EffectParameter(name, value)); } - void removeParam(const QString name) { + void removeParam(const QString &name) { for (int i = 0; i < size(); i++) if (at(i).name() == name) { removeAt(i); @@ -144,8 +220,8 @@ class CommentedTime { public: CommentedTime(): t(GenTime(0)) {} - CommentedTime(const GenTime time, QString comment) - : t(time), c(comment) { } + CommentedTime(const GenTime &time, QString comment) + : t(time), c(comment) { } QString comment() const { return (c.isEmpty() ? i18n("Marker") : c); @@ -189,5 +265,7 @@ private: }; +QDebug operator << (QDebug qd, const ItemInfo &info); + #endif