You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
3.0 KiB
96 lines
3.0 KiB
/***************************************************************************
|
|
begin : Sun Feb 17 2002
|
|
copyright : (C) 2002 - 2004 by Scott Wheeler
|
|
email : wheeler@kde.org
|
|
***************************************************************************/
|
|
|
|
/***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
#ifndef TAG_H
|
|
#define TAG_H
|
|
|
|
#include <qfileinfo.h>
|
|
|
|
namespace TagLib { class File; }
|
|
|
|
class CacheDataStream;
|
|
|
|
/*!
|
|
* This should really be called "metadata" and may at some point be titled as
|
|
* such. Right now it's mostly a Qt wrapper around TagLib.
|
|
*/
|
|
|
|
class Tag
|
|
{
|
|
friend class FileHandle;
|
|
public:
|
|
Tag(const QString &fileName);
|
|
/**
|
|
* Create an empty tag. Used in FileHandle for cache restoration.
|
|
*/
|
|
Tag(const QString &fileName, bool);
|
|
|
|
bool save();
|
|
|
|
QString title() const { return m_title; }
|
|
QString artist() const { return m_artist; }
|
|
QString album() const { return m_album; }
|
|
QString genre() const { return m_genre; }
|
|
int track() const { return m_track; }
|
|
int year() const { return m_year; }
|
|
QString comment() const { return m_comment; }
|
|
|
|
QString fileName() const { return m_fileName; }
|
|
|
|
void setTitle(const QString &value) { m_title = value; }
|
|
void setArtist(const QString &value) { m_artist = value; }
|
|
void setAlbum(const QString &value) { m_album = value; }
|
|
void setGenre(const QString &value) { m_genre = value; }
|
|
void setTrack(int value) { m_track = value; }
|
|
void setYear(int value) { m_year = value; }
|
|
void setComment(const QString &value) { m_comment = value; }
|
|
|
|
void setFileName(const QString &value) { m_fileName = value; }
|
|
|
|
int seconds() const { return m_seconds; }
|
|
int bitrate() const { return m_bitrate; }
|
|
|
|
bool isValid() const { return m_isValid; }
|
|
|
|
/**
|
|
* As a convenience, since producing a length string from a number of second
|
|
* isn't a one liner, provide the lenght in string form.
|
|
*/
|
|
QString lengthString() const { return m_lengthString; }
|
|
CacheDataStream &read(CacheDataStream &s);
|
|
|
|
private:
|
|
void setup(TagLib::File *file);
|
|
|
|
QString m_fileName;
|
|
QString m_title;
|
|
QString m_artist;
|
|
QString m_album;
|
|
QString m_genre;
|
|
QString m_comment;
|
|
int m_track;
|
|
int m_year;
|
|
int m_seconds;
|
|
int m_bitrate;
|
|
QDateTime m_modificationTime;
|
|
QString m_lengthString;
|
|
bool m_isValid;
|
|
};
|
|
|
|
QDataStream &operator<<(QDataStream &s, const Tag &t);
|
|
CacheDataStream &operator>>(CacheDataStream &s, Tag &t);
|
|
|
|
#endif
|