22 ".atp|.ra|.dts|.aac|.m4a|.aa3|.tta|.mka|.aiff|.swa|.wv");
28 QString extension = fi.suffix().toLower();
32 LOG(VB_FILE, LOG_WARNING, QString(
"MetaIO: unknown extension: '%1'").arg(extension));
36 if (extension ==
"mp3" || extension ==
"mp2")
38 if (extension ==
"ogg" || extension ==
"oga")
40 if (extension ==
"flac")
48 if (extension ==
"m4a")
50 if (extension ==
"wv")
67 if (ignoreID3 || !mdata)
75 LOG(VB_GENERAL, LOG_ERR,
76 QString(
"MetaIO::readMetadata(): Could not read '%1'")
96 QString &artist, QString &album, QString &title,
97 QString &genre,
int &tracknum)
109 lfilename.replace(
'_',
' ');
110 lfilename = lfilename.section(
'.', 0, -2);
112 QStringList::iterator fmt_it = fmt_list.begin();
115 for (; fmt_it != fmt_list.end(); ++fmt_it, --part_num) {}
118 fmt_it = fmt_list.begin();
119 for(; fmt_it != fmt_list.end(); ++fmt_it, ++part_num)
121 QString part_str = lfilename.section(
"/", part_num, part_num);
123 if ( *fmt_it ==
"GENRE" )
125 else if ( *fmt_it ==
"ARTIST" )
127 else if ( *fmt_it ==
"ALBUM" )
129 else if ( *fmt_it ==
"TITLE" )
131 else if ( *fmt_it ==
"TRACK_TITLE" )
133 QStringList tracktitle_list = part_str.split(
"-");
134 if (tracktitle_list.size() > 1)
136 tracknum = tracktitle_list[0].toInt();
137 title = tracktitle_list[1].simplified();
144 else if ( *fmt_it ==
"ARTIST_TITLE" )
146 QStringList artisttitle_list = part_str.split(
"-");
147 if (artisttitle_list.size() > 1)
149 artist = artisttitle_list[0].simplified();
150 title = artisttitle_list[1].simplified();
156 if (artist.isEmpty())
176 0, tracknum, length);
201 if (metadata->
Artist().isEmpty())
204 if (metadata->
Album().isEmpty())
207 if (metadata->
Title().isEmpty())
210 if (metadata->
Genre().isEmpty())
213 if (metadata->
Track() <= 0)
221 LOG(VB_GENERAL, LOG_ERR,
222 QString(
"MetaIO::saveTimeStamps: failed to stat file: %1").arg(
m_filename) +
ENO);
230 if (utime(
m_filename.toLocal8Bit().constData(), &new_times) < 0)
232 LOG(VB_GENERAL, LOG_ERR,
233 QString(
"MetaIO::restoreTimeStamps: failed to utime file: %1").arg(
m_filename) +
ENO);