aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/vorbis/decodervorbisfactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Input/vorbis/decodervorbisfactory.cpp')
-rw-r--r--src/plugins/Input/vorbis/decodervorbisfactory.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/plugins/Input/vorbis/decodervorbisfactory.cpp b/src/plugins/Input/vorbis/decodervorbisfactory.cpp
index 794850c52..b8d19db0b 100644
--- a/src/plugins/Input/vorbis/decodervorbisfactory.cpp
+++ b/src/plugins/Input/vorbis/decodervorbisfactory.cpp
@@ -29,6 +29,12 @@
#include "vorbismetadatamodel.h"
#include "decodervorbisfactory.h"
+#ifdef Q_OS_WIN
+#define QStringToFileName(s) TagLib::FileName(reinterpret_cast<const wchar_t *>(s.utf16())
+#else
+#define QStringToFileName(s) s.toLocal8Bit().constData()
+#endif
+
// DecoderOggFactory
@@ -82,10 +88,10 @@ QList<FileInfo *> DecoderVorbisFactory::createPlayList(const QString &fileName,
FileInfo *info = new FileInfo(fileName);
#if (TAGLIB_MAJOR_VERSION > 1) || ((TAGLIB_MAJOR_VERSION == 1) && (TAGLIB_MINOR_VERSION >= 8))
- TagLib::FileStream stream(fileName.toLocal8Bit().constData(), true);
+ TagLib::FileStream stream(QStringToFileName(fileName), true);
TagLib::Ogg::Vorbis::File fileRef(&stream);
#else
- TagLib::Ogg::Vorbis::File fileRef(fileName.toLocal8Bit().constData());
+ TagLib::Ogg::Vorbis::File fileRef(QStringToFileName(fileName));
#endif
TagLib::Ogg::XiphComment *tag = useMetaData ? fileRef.tag() : 0;