X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fdefinitions.h;h=d5fe0d66c0818d1d1afad82280d8b32309b45a6f;hb=c24658bd34221d735f0641c924b890e1a6be7101;hp=660c3ab7538ce452ec80e67c5820b1a07881d47c;hpb=c42a026234a44a2d766e57bc64a6ac7bbd094000;p=kdenlive diff --git a/src/definitions.h b/src/definitions.h index 660c3ab7..d5fe0d66 100644 --- a/src/definitions.h +++ b/src/definitions.h @@ -21,52 +21,173 @@ #ifndef DEFINITIONS_H #define DEFINITIONS_H -#include - #include "gentime.h" +#include "effectslist.h" + +#include +#include + +#include +#include -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}; +namespace Kdenlive { + +enum MonitorId { + NoMonitor, + ClipMonitor, + ProjectMonitor, + RecordMonitor, + StopMotionMonitor, + DvdMonitor +}; + +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 TRANSITIONTYPE { +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 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 { DefaultMessage, OperationCompletedMessage, InformationMessage, - ErrorMessage + ErrorMessage, + 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 +}; + +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) {} }; -struct ItemInfo { +typedef QMap stringMap; +typedef QMap > audioByteArray; + +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 */ GenTime endPos; + /** cropStart is the position where the sub-clip starts, relative to the clip's 0 position */ GenTime cropStart; + /** cropDuration is the duration of the clip */ + GenTime cropDuration; int track; + ItemInfo() : track(0) {} +}; + +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) {} }; -struct MltVideoProfile { +class MltVideoProfile { +public: QString path; QString description; int frame_rate_num; @@ -78,22 +199,37 @@ struct MltVideoProfile { int sample_aspect_den; int display_aspect_num; int display_aspect_den; + int colorspace; + 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; @@ -106,77 +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