X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fdocclipbase.h;h=60e1402baa9fd3d1c6ce3205e09a1625b451be04;hb=ca29ebdd78229edb2eb03d75a846ab116c5c970e;hp=82c0566b41fc11466aec178a6267e9d432e4a876;hpb=9472299b931b35891fb78bc18ec06d921bf59a33;p=kdenlive diff --git a/src/docclipbase.h b/src/docclipbase.h index 82c0566b..60e1402b 100644 --- a/src/docclipbase.h +++ b/src/docclipbase.h @@ -47,6 +47,11 @@ namespace Mlt class Producer; }; +struct CutZoneInfo { + QPoint zone; + QString description; +}; + class DocClipBase: public QObject { @@ -56,7 +61,7 @@ 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, const QString &id, bool placeHolder = false); + DocClipBase(ClipManager *clipManager, QDomElement xml, const QString &id); // DocClipBase & operator=(const DocClipBase & clip); virtual ~ DocClipBase(); @@ -110,7 +115,7 @@ Q_OBJECT public: } /** Sets producers for the current clip (one for each track due to a limitation in MLT's track mixing */ - void setProducer(Mlt::Producer *producer); + void setProducer(Mlt::Producer *producer, bool reset = false); /** Retrieve a producer for a track */ Mlt::Producer *producer(int track = -1); /** Retrieve the producer that shows only video */ @@ -147,7 +152,7 @@ Q_OBJECT public: bool hasFileSize() const; /** Returns the filesize, or 0 if there is no appropriate filesize. */ - uint fileSize() const; + qulonglong fileSize() const; /** Returns true if this clip refers to the clip passed in. A clip refers to another clip if * it uses it as part of it's own composition. */ @@ -173,7 +178,9 @@ Q_OBJECT public: void refreshThumbUrl(); const char *producerProperty(const char *name) const; void setProducerProperty(const char *name, const char *data); - void deleteProducers(); + void resetProducerProperty(const char *name); + void clearProducers(); + void deleteProducers(bool clearThumbCreator = true); /** Set default play zone for clip monitor */ void setZone(QPoint zone); @@ -182,6 +189,19 @@ Q_OBJECT public: /** Returns true is clip is missing but user wants to keep it as placeholder */ bool isPlaceHolder() const; + void setValid(); + static QString getHash(const QString &path); + + void addCutZone(int in, int out, QString desc = QString()); + bool hasCutZone(QPoint p) const; + void removeCutZone(int in, int out); + QList cutZones() const; + void updateCutZone(int oldin, int oldout, int in, int out, QString desc = QString()); + + bool hasVideoCodec(const QString &codec) const; + bool hasAudioCodec(const QString &codec) const; + bool checkHash() const; + void setPlaceHolder(bool place); private: // Private attributes @@ -210,6 +230,8 @@ private: // Private attributes /** Wheter the clip is a placeholder (clip missing but user wants to see it) */ bool m_placeHolder; + QList m_cutZones; + void setAudioThumbCreated(bool isDone); /** Holds clip infos like fps, size,... */ QMap m_properties; @@ -219,13 +241,13 @@ private: // Private attributes void slotCreateAudioTimer(); void slotRefreshProducer(); void setProducerProperty(const char *name, int data); + void setProducerProperty(const char *name, double data); void getFileHash(const QString url); public slots: void updateAudioThumbnail(QMap > data); bool slotGetAudioThumbs(); QList < CommentedTime > commentedSnapMarkers() const; - void setSnapMarkers(QList < CommentedTime > markers); GenTime findNextSnapMarker(const GenTime & currTime); GenTime findPreviousSnapMarker(const GenTime & currTime); GenTime hasSnapMarkers(const GenTime & time); @@ -243,7 +265,6 @@ public slots: signals: - void getAudioThumbs(); void gotAudioData(); };