aboutsummaryrefslogtreecommitdiff
path: root/src/mediafile.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2007-08-20 14:50:52 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2007-08-20 14:50:52 +0000
commitfa0e5a0601c9aeb83747253cb6db892e011eea83 (patch)
tree007a7eea01c11bd53ba1f7fa5e8162ca80a49aa5 /src/mediafile.cpp
parentab5c39cd66869c339938628b9f72e7f6cc247e7e (diff)
downloadqmmp-fa0e5a0601c9aeb83747253cb6db892e011eea83.tar.gz
qmmp-fa0e5a0601c9aeb83747253cb6db892e011eea83.tar.bz2
qmmp-fa0e5a0601c9aeb83747253cb6db892e011eea83.zip
added feature to update playlist titles
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@105 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/mediafile.cpp')
-rw-r--r--src/mediafile.cpp66
1 files changed, 43 insertions, 23 deletions
diff --git a/src/mediafile.cpp b/src/mediafile.cpp
index 31065bc8b..a0e308e0e 100644
--- a/src/mediafile.cpp
+++ b/src/mediafile.cpp
@@ -29,30 +29,19 @@ MediaFile::MediaFile(QString path)
m_selected = FALSE;
m_current = FALSE;
m_path = path;
- m_tag = Decoder::createTag(path);
- //format
+ m_tag = 0;
+
QSettings settings ( QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat );
- QString format = settings.value("PlayList/title_format", "%p - %t").toString();
- bool use_meta = settings.value ("PlayList/load_metadata", TRUE).toBool();
- if (use_meta && m_tag && !m_tag->isEmpty() && !path.startsWith("http://"))
+ m_use_meta = settings.value ("PlayList/load_metadata", TRUE).toBool();
+ //format
+ m_format = settings.value("PlayList/title_format", "%p - %t").toString();
+ if (m_use_meta && !path.startsWith("http://"))
{
- m_year = m_tag->year();
- //m_title = m_tag->artist()+" - "+m_tag->title();
- m_title = format;
- m_title.replace("%p",m_tag->artist());
- m_title.replace("%a",m_tag->album());
- m_title.replace("%t",m_tag->title());
- m_title.replace("%n",QString("%1").arg(m_tag->track()));
- m_title.replace("%g",m_tag->genre ());
- m_title.replace("%f",m_path.section('/',-1));
- m_title.replace("%F",m_path);
- //m_title.replace("%d",);
- m_title.replace("%y",QString("%1").arg(m_tag->year ()));
- //m_title.replace("%c",);
+ m_tag = Decoder::createTag(path);
+ readMetadata();
}
else
m_title = path.startsWith("http://") ? m_path: m_path.section('/',-1);
-
}
@@ -71,12 +60,12 @@ const QString MediaFile::fileName() const
return m_path.section('/',-1);
}
-const QString MediaFile::title()const
+const QString MediaFile::title() const
{
return m_title;
}
-int MediaFile::length()const
+int MediaFile::length() const
{
if (m_tag)
return m_tag->length();
@@ -89,12 +78,12 @@ void MediaFile::setSelected(bool yes)
m_selected = yes;
}
-bool MediaFile::isSelected()const
+bool MediaFile::isSelected() const
{
return m_selected;
}
-uint MediaFile::year()const
+uint MediaFile::year() const
{
return m_year;
}
@@ -108,3 +97,34 @@ void MediaFile::setCurrent(bool cur)
{
m_current = cur;
}
+
+void MediaFile::updateTags(const FileTag *tag)
+{
+ if (m_tag)
+ {
+ delete m_tag;
+ m_tag = 0;
+ }
+ if (!tag->isEmpty())
+ m_tag = new FileTag(*tag);
+ readMetadata();
+}
+
+void MediaFile::readMetadata()
+{
+ if (m_use_meta && m_tag && !m_tag->isEmpty())
+ {
+ m_year = m_tag->year();
+ m_title = m_format;
+ m_title.replace("%p",m_tag->artist());
+ m_title.replace("%a",m_tag->album());
+ m_title.replace("%t",m_tag->title());
+ m_title.replace("%n",QString("%1").arg(m_tag->track()));
+ m_title.replace("%g",m_tag->genre ());
+ m_title.replace("%f",m_path.section('/',-1));
+ m_title.replace("%F",m_path);
+ //m_title.replace("%d",);
+ m_title.replace("%y",QString("%1").arg(m_tag->year ()));
+ //m_title.replace("%c",);
+ }
+}