aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/playlisttrack.h
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-08-05 11:50:37 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-08-05 11:50:37 +0000
commit245d0ac0cdb729c94ca71dc035342154d70aa8e5 (patch)
treef908567eb29ddba73c36e82511605d3635a897e8 /src/qmmpui/playlisttrack.h
parentd04ab1bfe9a70049e0c9ee753835c95a6ccf2086 (diff)
downloadqmmp-245d0ac0cdb729c94ca71dc035342154d70aa8e5.tar.gz
qmmp-245d0ac0cdb729c94ca71dc035342154d70aa8e5.tar.bz2
qmmp-245d0ac0cdb729c94ca71dc035342154d70aa8e5.zip
added playlist groups, disabled broken plugins
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3564 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/playlisttrack.h')
-rw-r--r--src/qmmpui/playlisttrack.h126
1 files changed, 126 insertions, 0 deletions
diff --git a/src/qmmpui/playlisttrack.h b/src/qmmpui/playlisttrack.h
new file mode 100644
index 000000000..1e6948bbd
--- /dev/null
+++ b/src/qmmpui/playlisttrack.h
@@ -0,0 +1,126 @@
+/***************************************************************************
+ * Copyright (C) 2013 by Ilya Kotov *
+ * forkotov02@hotmail.ru *
+ * *
+ * 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. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+#ifndef PLAYLISTTRACK_H
+#define PLAYLISTTRACK_H
+
+#include <QMap>
+#include <qmmp/fileinfo.h>
+#include <qmmp/qmmp.h>
+#include "playlistitem.h"
+
+
+//PlayListItem
+//PlayListTrack
+//PlayListGroup
+
+/** @brief The PlayListTrack class provides an item for use with the PlayListModel class.
+ * @author Ilya Kotov <forkotov02@hotmail.ru>
+ */
+class PlayListTrack : public QMap <Qmmp::MetaData, QString>, public PlayListItem
+{
+public:
+ /*!
+ * Current state of playlist item.
+ * FREE - instance is free and may be deleted
+ * EDITING - instance is currently busy in some kind of operation(tags editing etc.)
+ * and can't be deleted at the moment. Set flag SCHEDULED_FOR_DELETION for it
+ * instead of delete operator call.
+ */
+ enum FLAGS
+ {
+ FREE = 0, /*!< instance is free and may be deleted */
+ EDITING, /*!< instance is currently busy */
+ SCHEDULED_FOR_DELETION /*!< instance is sheduled for deletion */
+ };
+ /*!
+ * Constructs an empty plalist item.
+ */
+ PlayListTrack();
+ /*!
+ * Constructs a new PlayListTrack that is a copy of the given \b item
+ */
+ PlayListTrack(const PlayListTrack &item);
+ /*!
+ * Constructs plalist item with given metadata.
+ * @param info Media file information.
+ */
+ PlayListTrack(FileInfo *info);
+ /*!
+ * Object destructor.
+ */
+ ~PlayListTrack();
+ /*!
+ * Returns formatted title of the item.
+ */
+ const QString formattedTitle() const;
+ /*!
+ * Returns formatted length of the item.
+ */
+ const QString formattedLength() const;
+ /*!
+ * Direct access to the item short title.
+ * @param title New short title.
+ */
+ void setText(const QString &title);
+ /*!
+ * Returns song length in seconds.
+ */
+ qint64 length() const;
+ /*!
+ * Sets length in seconds.
+ */
+ void setLength(qint64 length);
+ /*!
+ * Same as url()
+ */
+ const QString url() const;
+ /*!
+ * Updates current metadata.
+ * @param metaData Map with metadata values.
+ */
+ void updateMetaData(const QMap <Qmmp::MetaData, QString> &metaData);
+ /*!
+ * Gets new metadata from file (works for local files only).
+ */
+ void updateTags();
+
+ const QString groupName() const;
+
+ bool isGroup() const;
+
+ /*!
+ * Returns current state of the playlist item.
+ */
+ FLAGS flag() const;
+ /*!
+ * Sets state of the playlist item.
+ */
+ void setFlag(FLAGS);
+
+private:
+ void readMetadata();
+ QString m_formattedTitle;
+ QString m_formattedLength;
+ FileInfo *m_info;
+ qint64 m_length;
+ FLAGS m_flag;
+};
+
+#endif