12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #ifndef METADATAVALUE_H
- #define METADATAVALUE_H
- #include <QTime>
- #include <QString>
- #include <QImage>
- #include <QDateTime>
- #include <QTextStream>
- #include <QVariant>
- #include <QUrl>
- //start
- /** Simple Value type for audio metadata.
- Can be used in streams, QVariant, Collections and QFuture.
- Defines common interface for programs that need audio metadata.
- @author Alan Ezust
- */
- class MetaDataValue {
- public:
- friend QTextStream& operator<< (QTextStream& os, const MetaDataValue& mdv);
- friend QTextStream& operator>> (QTextStream& is, MetaDataValue& mdv);
- friend QDataStream& operator<< (QDataStream& os, const MetaDataValue& mdv);
- friend QDataStream& operator>> (QDataStream& is, MetaDataValue& mdv);
- friend bool operator==(const MetaDataValue&, const MetaDataValue&);
- //end
- MetaDataValue(): m_isNull(true) {}
- MetaDataValue(const MetaDataValue& other);
- virtual ~MetaDataValue() {}
- virtual MetaDataValue& operator=(const MetaDataValue& other) ;
- //start
- virtual QString genre() const;
- virtual QString artist() const;
- virtual QString albumTitle() const;
- virtual QString trackTitle() const;
- virtual QString trackNumber() const;
- virtual QDateTime lastModified() const;
- virtual const QImage &image() const;
- virtual QUrl url() const;
- /**
- @return duration of track
- */
- virtual QTime trackTime() const;
- virtual QString trackTimeString() const;
- virtual QString comment() const;
- //end
- virtual bool isNull() const;
- virtual void setNull(bool n);
- // Setters
- /** May cause a metadata fetch in some implementations */
- virtual void setUrl(QUrl url);
- virtual void setGenre(const QString & newGenre);
- virtual void setArtist(const QString & newArtist);
- virtual void setTrackNumber(const QString& newTrackNumber);
- virtual void setTrackTitle(const QString &newTitle);
- virtual void setLastModified(const QDateTime& newDateTime) {
- m_lastModified = newDateTime;
- }
- virtual void setImage(const QImage& img) {
- m_Image = img;
- }
- virtual void setTrackTime(const QTime &time) {
- m_TrackTime = time;
- }
- virtual void setAlbumTitle(const QString &newAlbumTitle);
- virtual void setComment(const QString &newComment);
- //start
- protected:
- bool m_isNull;
- QUrl m_url;
- QString m_TrackNumber;
- QString m_TrackTitle;
- QString m_Comment;
- QDateTime m_lastModified;
- QString m_Genre;
- QString m_Artist;
- QTime m_TrackTime;
- QString m_AlbumTitle;
- QImage m_Image;
- };
- Q_DECLARE_METATYPE(MetaDataValue); /* Add to QVariant type system */
- //end
- bool operator==(const MetaDataValue&, const MetaDataValue&);
- QTextStream& operator<< (QTextStream& os, const MetaDataValue& mdv);
- QTextStream& operator>> (QTextStream& is, MetaDataValue& mdv);
- QDataStream& operator<< (QDataStream& os, const MetaDataValue& mdv);
- QDataStream& operator>> (QDataStream& is, MetaDataValue& mdv);
- #endif // #ifndef METADATAVALUE_H
|