diff --git a/http/httpsocket.cpp b/http/httpsocket.cpp index 4b25d81b3..25d65ca15 100644 --- a/http/httpsocket.cpp +++ b/http/httpsocket.cpp @@ -31,7 +31,7 @@ #include #ifdef ENABLE_KDE_SUPPORT #include -#else +#endif #include #ifdef TAGLIB_FOUND #include @@ -39,16 +39,18 @@ #include #include #endif -#endif static QString detectMimeType(const QString &file) { #ifdef ENABLE_KDE_SUPPORT - return KMimeType::findByPath(file)->name(); - #else - QString suffix = QFileInfo(file).suffix(); + QString km=KMimeType::findByPath(file)->name(); + if (!km.isEmpty() && (km.startsWith("audio/") || km.startsWith("application/"))) { + return QLatin1String("audio/x-ape")==km ? QLatin1String("audio/x-monkeys-audio") : km; + } + #endif + QString suffix = QFileInfo(file).suffix().toLower(); if (suffix == QLatin1String("mp3")) { - return "audio/mpeg"; + return QLatin1String("audio/mpeg"); } #ifdef TAGLIB_FOUND if (suffix == QLatin1String("ogg")) { @@ -64,48 +66,52 @@ static QString detectMimeType(const QString &file) QString mime; TagLib::File *result = new TagLib::Ogg::Vorbis::File(encodedName, false, TagLib::AudioProperties::Fast); if (result->isValid()) { - mime="audio/x-vorbis+ogg"; + mime=QLatin1String("audio/x-vorbis+ogg"); } delete result; if (mime.isEmpty()) { result = new TagLib::Ogg::FLAC::File(encodedName, false, TagLib::AudioProperties::Fast); if (result->isValid()) { - mime="audio/x-flac+ogg"; + mime=QLatin1String("audio/x-flac+ogg"); } delete result; } if (mime.isEmpty()) { result = new TagLib::TrueAudio::File(encodedName, false, TagLib::AudioProperties::Fast); if (result->isValid()) { - mime="audio/x-speex+ogg"; + mime=QLatin1String("audio/x-speex+ogg"); } delete result; } - return "audio/ogg"; + return QLatin1String("audio/ogg"); } #endif else if (suffix == QLatin1String("flac")) { - return "audio/x-flac"; + return QLatin1String("audio/x-flac"); } else if (suffix == QLatin1String("wma")) { - return "audio/x-ms-wma"; + return QLatin1String("audio/x-ms-wma"); } else if (suffix == QLatin1String("m4a") || suffix == QLatin1String("m4b") || suffix == QLatin1String("m4p") || suffix == QLatin1String("mp4")) { - return "audio/mp4"; + return QLatin1String("audio/mp4"); } else if (suffix == QLatin1String("wav")) { - return "audio/x-wav"; + return QLatin1String("audio/x-wav"); } else if (suffix == QLatin1String("wv") || suffix == QLatin1String("wvp")) { - return "audio/x-wavpack"; + return QLatin1String("audio/x-wavpack"); } else if (suffix == QLatin1String("ape")) { - return "audio/x-ape"; + return QLatin1String("audio/x-monkeys-audio"); // "audio/x-ape"; } else if (suffix == QLatin1String("spx")) { - return "audio/x-speex"; + return QLatin1String("audio/x-speex"); } else if (suffix == QLatin1String("tta")) { - return "audio/x-tta"; + return QLatin1String("audio/x-tta"); } else if (suffix == QLatin1String("aiff") || suffix == QLatin1String("aif") || suffix == QLatin1String("aifc")) { - return "audio/x-aiff"; + return QLatin1String("audio/x-aiff"); } else if (suffix == QLatin1String("mpc") || suffix == QLatin1String("mpp") || suffix == QLatin1String("mp+")) { - return "audio/x-musepack"; + return QLatin1String("audio/x-musepack"); + } else if (suffix == QLatin1String("dff")) { + return QLatin1String("application/x-dff"); + } else if (suffix == QLatin1String("dsf")) { + return QLatin1String("application/x-dsf"); } - #endif + return QString(); }