X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fdocclipbase.h;h=37ac0cf65552c0fa64af70f3249dbc82767c2873;hb=775ffad14be7ffa9cf277ed0eafff4aa9139950e;hp=85b2344edcf4c7c6416e9c7e951ee441c3f7288d;hpb=ddbfd46a476d99869653afc86a92f7450ca6583d;p=kdenlive diff --git a/src/docclipbase.h b/src/docclipbase.h index 85b2344e..37ac0cf6 100644 --- a/src/docclipbase.h +++ b/src/docclipbase.h @@ -28,7 +28,6 @@ #include #include -#include #include "gentime.h" #include "definitions.h" @@ -43,24 +42,8 @@ class KdenliveDoc; class KThumb; class ClipManager; -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; - } -private: - GenTime t; - QString c; +namespace Mlt { +class Producer; }; @@ -71,9 +54,8 @@ Q_OBJECT public: * done here. If a new clip type is added then it should be possible to combine it with both audio * and video. */ - DocClipBase(ClipManager *clipManager, QDomElement xml, uint id); - DocClipBase(const DocClipBase& clip); - DocClipBase & operator=(const DocClipBase & clip); + DocClipBase(ClipManager *clipManager, QDomElement xml, const QString &id); +// DocClipBase & operator=(const DocClipBase & clip); virtual ~ DocClipBase(); /** sets the name of this clip. */ @@ -82,21 +64,26 @@ Q_OBJECT public: /** returns the name of this clip. */ const QString & name() const; - /** Sets the description for this clip. */ - void setDescription(const QString & descripton); - /** Returns the description of this clip. */ - const QString & description() const; + const QString description() const; + /** Does this clip need a transparent background (e.g. for titles). */ + bool isTransparent() const; + + /** Returns any property of this clip. */ + const QString getProperty(const QString prop) const; + void setProperty(const QString &key, const QString &value); + void clearProperty(const QString &key); /** Returns the internal unique id of the clip. */ - uint getId() const; - void setId(const uint &newId); + const QString &getId() const; + void setId(const QString &newId); //KThumb *thumbCreator; bool audioThumbCreated() const; /** returns the duration of this clip */ const GenTime & duration() const; + const GenTime &maxDuration() const; /** returns the duration of this clip */ void setDuration(GenTime dur); @@ -122,6 +109,9 @@ Q_OBJECT public: return false; } + void setProducer(Mlt::Producer *producer); + Mlt::Producer *producer(); + /*virtual DocClipAVFile *toDocClipAVFile() { return 0; } @@ -157,7 +147,6 @@ Q_OBJECT public: const GenTime & endTime) const; /** returns a QString containing all of the XML data required to recreate this clip. */ QDomElement toXML() const; - QDomDocument generateSceneList(bool addProducers = true, bool rendering = false) const; /** Returns true if the xml passed matches the values in this clip */ bool matchesXML(const QDomElement & element) const; @@ -195,16 +184,10 @@ Q_OBJECT public: /** format is frame -> channel ->bytes */ QMap > audioFrameChache; - /** return english name for clip type */ - static QString getTypeName(CLIPTYPE type); - /** Clip is ready to get thumbs */ void slotRequestAudioThumbs(); /** Free cache data */ void slotClearAudioCache(); - /** puts the clip in a group (used for folder grouping) */ - void setGroup(const QString name, const QString id); - private: // Private attributes /** The name of this clip */ @@ -214,12 +197,11 @@ private: // Private attributes /** The number of times this clip is used in the project - the number of references to this clip * that exist. */ uint m_refcount; - + Mlt::Producer *m_clipProducer; CLIPTYPE m_clipType; /** A list of snap markers; these markers are added to a clips snap-to points, and are displayed as necessary. */ QList < CommentedTime > m_snapMarkers; - QDomElement m_xml; /** A thumbnail for this clip */ QPixmap m_thumbnail; @@ -230,9 +212,13 @@ private: // Private attributes bool m_audioThumbCreated; /** a unique numeric id */ - uint m_id; - uint m_projectThumbFrame; + QString m_id; void setAudioThumbCreated(bool isDone); + /** Holds clip infos like fps, size,... */ + QMap m_properties; + /** Create connections for audio thumbnails */ + void slotCreateAudioTimer(); + void slotRefreshProducer(); public slots: void updateAudioThumbnail(QMap > data); @@ -247,8 +233,10 @@ public slots: void addSnapMarker(const GenTime & time, QString comment); QList < GenTime > snapMarkers() const; QString markerComment(GenTime t); - void setProjectThumbFrame(const uint &ix); - uint getProjectThumbFrame() const; + void setClipThumbFrame(const uint &ix); + uint getClipThumbFrame() const; + void setProperties(QMap properties); + QMap properties() const; signals: void getAudioThumbs();