X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fdefinitions.h;h=d5fe0d66c0818d1d1afad82280d8b32309b45a6f;hb=56aee6aedeeed3efd10ada8fe3c229eddc01ef05;hp=9c69a485806da5b53252f000ed7db63b1b0c8cdc;hpb=10d1bb96853f69dc99d8c3c85b1f51510a56baed;p=kdenlive diff --git a/src/definitions.h b/src/definitions.h index 9c69a485..d5fe0d66 100644 --- a/src/definitions.h +++ b/src/definitions.h @@ -24,27 +24,91 @@ #include "gentime.h" #include "effectslist.h" +#include +#include + #include -#include +#include 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 }; +namespace Kdenlive { -enum PROJECTITEMTYPE { PROJECTCLIPTYPE = QTreeWidgetItem::UserType, PROJECTFOLDERTYPE, PROJECTSUBCLIPTYPE }; +enum MonitorId { + NoMonitor, + ClipMonitor, + ProjectMonitor, + RecordMonitor, + StopMotionMonitor, + DvdMonitor +}; -enum GRAPHICSRECTITEM { AVWIDGET = 70000 , LABELWIDGET , TRANSITIONWIDGET , GROUPWIDGET}; +const int DefaultThumbHeight = 100; +/* +const QString clipMonitor("clipMonitor"); +const QString recordMonitor("recordMonitor"); +const QString projectMonitor("projectMonitor"); +const QString stopmotionMonitor("stopmotionMonitor"); +*/ -enum PROJECTTOOL { SELECTTOOL = 0 , RAZORTOOL = 1 , SPACERTOOL = 2 }; +} + +enum OperationType { + None = 0, + MoveOperation = 1, + ResizeStart = 2, + ResizeEnd = 3, + FadeIn = 4, + FadeOut = 5, + TransitionStart = 6, + TransitionEnd = 7, + MoveGuide = 8, + KeyFrame = 9, + Seek = 10, + Spacer = 11, + RubberSelection = 12, + ScrollTimeline = 13 +}; + +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, + ProjectFoldeType, + ProjectSubclipType +}; -enum TRANSITIONTYPE { +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 */ - LUMA_TRANSITION = 0, - COMPOSITE_TRANSITION = 1, - PIP_TRANSITION = 2, - LUMAFILE_TRANSITION = 3, - MIX_TRANSITION = 200 + LumaTransition = 0, + CompositeTransition = 1, + PipTransition = 2, + LumaFileTransition = 3, + MixTransition = 200 }; enum MessageType { @@ -55,24 +119,43 @@ enum MessageType { MltError }; -enum TRACKTYPE { AUDIOTRACK = 0, VIDEOTRACK = 1 }; +enum TrackType { + AudioTrack = 0, + VideoTrack = 1 +}; + +enum ClipJobStatus { + NoJob = 0, + JobWaiting = -1, + JobWorking = -2, + JobDone = -3, + JobCrashed = -4, + JobAborted = -5 +}; -enum CLIPJOBSTATUS { NOJOB = 0, JOBWAITING = -1, JOBWORKING = -2, JOBDONE = -3, JOBCRASHED = -4, JOBABORTED = -5}; +class TrackInfo { -struct TrackInfo { - TRACKTYPE type; +public: + TrackType type; QString trackName; bool isMute; bool isBlind; bool isLocked; EffectsList effectsList; int duration; + TrackInfo() : + type(VideoTrack), + isMute(0), + isBlind(0), + isLocked(0), + duration(0) {} }; typedef QMap stringMap; typedef QMap > audioByteArray; -struct ItemInfo { +class ItemInfo { +public: /** startPos is the position where the clip starts on the track */ GenTime startPos; /** endPos is the duration where the clip ends on the track */ @@ -82,9 +165,29 @@ struct ItemInfo { /** cropDuration is the duration of the clip */ GenTime cropDuration; int track; + ItemInfo() : track(0) {} }; -struct MltVideoProfile { +class TransitionInfo { +public: + /** 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; + TransitionInfo() : + b_track(0), + a_track(0), + forceTrack(0) {} +}; + +class MltVideoProfile { +public: QString path; QString description; int frame_rate_num; @@ -97,38 +200,36 @@ struct MltVideoProfile { 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); - } + MltVideoProfile(); + bool operator==(const MltVideoProfile& point) const; + bool operator!=(const MltVideoProfile &other) const; }; +/**) + * @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(); + bool isCollapsed; + bool groupIsCollapsed; + int groupIndex; + QString groupName; + QString toString() const; + void fromString(QString value); +}; 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; - } + EffectParameter(const QString &name, const QString &value); + QString name() const; + QString value() const; + void setValue(const QString &value); private: QString m_name; @@ -141,79 +242,47 @@ private: 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; - } - } + EffectsParameterList(); + bool hasParam(const QString &name) const; + void setParamValue(const QString &name, const QString &value); + + QString paramValue(const QString &name, const QString &defaultValue = QString()) const; + void addParam(const QString &name, const QString &value); + void removeParam(const QString &name); }; 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; - } + CommentedTime(); + CommentedTime(const GenTime &time, const QString& comment, int markerType = 0); + + QString comment() const; + GenTime time() const; + void setComment(const QString &comm); + void setMarkerType(int t); + int markerType() const; + static QColor markerColor(int type); /* Implementation of > operator; Works identically as with basic types. */ - bool operator>(CommentedTime op) const { - return t > op.time(); - } + bool operator>(CommentedTime op) const; /* Implementation of < operator; Works identically as with basic types. */ - bool operator<(CommentedTime op) const { - return t < op.time(); - } + bool operator<(CommentedTime op) const; /* Implementation of >= operator; Works identically as with basic types. */ - bool operator>=(CommentedTime op) const { - return t >= op.time(); - } + bool operator>=(CommentedTime op) const; /* Implementation of <= operator; Works identically as with basic types. */ - bool operator<=(CommentedTime op) const { - return t <= op.time(); - } + bool operator<=(CommentedTime op) const; /* Implementation of == operator; Works identically as with basic types. */ - bool operator==(CommentedTime op) const { - return t == op.time(); - } + bool operator==(CommentedTime op) const; /* Implementation of != operator; Works identically as with basic types. */ - bool operator!=(CommentedTime op) const { - return t != op.time(); - } + bool operator!=(CommentedTime op) const; private: GenTime t; QString c; - - + int type; }; +QDebug operator << (QDebug qd, const ItemInfo &info); #endif