From f196bf0eb34f01b8db35336b82ac31fd5f531ec6 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Wed, 15 Jun 2016 05:49:46 +0000 Subject: sndfile: fixed unicode support git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@6453 90c681e8-e032-0410-971d-27865f9a5e38 --- .../Input/sndfile/decodersndfilefactory.cpp | 23 ++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'src/plugins/Input/sndfile/decodersndfilefactory.cpp') diff --git a/src/plugins/Input/sndfile/decodersndfilefactory.cpp b/src/plugins/Input/sndfile/decodersndfilefactory.cpp index b6a464a6f..e800a0a95 100644 --- a/src/plugins/Input/sndfile/decodersndfilefactory.cpp +++ b/src/plugins/Input/sndfile/decodersndfilefactory.cpp @@ -21,11 +21,11 @@ #include #include #include -extern "C" -{ +#ifdef Q_OS_WIN +#include +#define ENABLE_SNDFILE_WINDOWS_PROTOTYPES 1 +#endif #include -} - #include "decoder_sndfile.h" #include "decodersndfilefactory.h" @@ -38,9 +38,16 @@ bool DecoderSndFileFactory::supports(const QString &source) const { //try top open the file SF_INFO snd_info; - SNDFILE *sndfile = sf_open(source.toLocal8Bit(), SFM_READ, &snd_info); +#ifdef Q_OS_WIN + SNDFILE *sndfile = sf_wchar_open(reinterpret_cast(source.utf16()), SFM_READ, &snd_info); +#else + SNDFILE *sndfile = sf_open(source.toLocal8Bit().constData(), SFM_READ, &snd_info); +#endif if (!sndfile) + { + qDebug("failed!!"); return false; + } sf_close (sndfile); sndfile = 0; return true; @@ -87,7 +94,11 @@ QList DecoderSndFileFactory::createPlayList(const QString &fileName, SNDFILE *sndfile = 0; memset (&snd_info, 0, sizeof(snd_info)); snd_info.format = 0; - sndfile = sf_open(fileName.toLocal8Bit(), SFM_READ, &snd_info); +#ifdef Q_OS_WIN + sndfile = sf_wchar_open(reinterpret_cast(fileName.utf16()), SFM_READ, &snd_info); +#else + sndfile = sf_open(fileName.toLocal8Bit().constData(), SFM_READ, &snd_info); +#endif if (!sndfile) return list; -- cgit v1.2.3-13-gbd6f