QList<AudioSource> CommonRead2Sources (const ReadParams& params) { const auto& plDir = QFileInfo (params.Path_).absoluteDir (); QList<AudioSource> result; for (const auto& src : params.RawParser_ (params.Path_)) { QUrl url (src); if (!url.scheme ().isEmpty ()) { result << (url.scheme () == "file" ? url.toLocalFile () : url); continue; } const QFileInfo fi (src); if (params.Suffixes_.contains (fi.suffix ())) result += CommonRead2Sources ({ params.Suffixes_, plDir.absoluteFilePath (src), params.RawParser_ }); else if (fi.isRelative ()) result << plDir.absoluteFilePath (src); else result << src; } return result; }
QList<Phonon::MediaSource> Read2Sources (const QString& path) { return CommonRead2Sources ({ QStringList ("xspf"), path, Read }); }
QList<AudioSource> Read2Sources (const QString& path) { return CommonRead2Sources ({ QStringList ("pls"), path, Read }); }
Playlist Read2Sources (const QString& path) { return CommonRead2Sources ({ { "xspf" }, path, Read }); }