traverso-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Traverso-commit] traverso/src audiofileio/decode/AbstractAudioRe...


From: Remon Sijrier
Subject: [Traverso-commit] traverso/src audiofileio/decode/AbstractAudioRe...
Date: Wed, 30 Jan 2008 13:56:49 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       08/01/30 13:56:49

Modified files:
        src/audiofileio/decode: AbstractAudioReader.cpp 
                                FlacAudioReader.cpp MadAudioReader.cpp 
                                SFAudioReader.cpp SFAudioReader.h 
                                VorbisAudioReader.cpp WPAudioReader.cpp 
        src/audiofileio/encode: FlacAudioWriter.cpp SFAudioWriter.cpp 
                                SFAudioWriter.h WPAudioWriter.cpp 
        src/common     : Utils.h 
        src/core       : Peak.cpp 
        src/traverso/widgets: InfoWidgets.cpp 

Log message:
        * remove as much QString::toUtf8() as possible, the remaining ones are 
used for file open (read or write) which are still potential problematic when 
the local encoding doesn't support Utf8. Or something like that.
        For the one person Utf8 works, whereas the other person needs toLatin1.
        QFile seems to pick the correct one somehow, so SFAudioReader/Writer 
uses a file descriptor now returned from a QFile.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/AbstractAudioReader.cpp?cvsroot=traverso&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/FlacAudioReader.cpp?cvsroot=traverso&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/MadAudioReader.cpp?cvsroot=traverso&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/SFAudioReader.cpp?cvsroot=traverso&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/SFAudioReader.h?cvsroot=traverso&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/VorbisAudioReader.cpp?cvsroot=traverso&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/WPAudioReader.cpp?cvsroot=traverso&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/encode/FlacAudioWriter.cpp?cvsroot=traverso&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/encode/SFAudioWriter.cpp?cvsroot=traverso&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/encode/SFAudioWriter.h?cvsroot=traverso&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/encode/WPAudioWriter.cpp?cvsroot=traverso&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/traverso/src/common/Utils.h?cvsroot=traverso&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Peak.cpp?cvsroot=traverso&r1=1.83&r2=1.84
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/InfoWidgets.cpp?cvsroot=traverso&r1=1.56&r2=1.57

Patches:
Index: audiofileio/decode/AbstractAudioReader.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/audiofileio/decode/AbstractAudioReader.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- audiofileio/decode/AbstractAudioReader.cpp  28 Jan 2008 21:09:56 -0000      
1.23
+++ audiofileio/decode/AbstractAudioReader.cpp  30 Jan 2008 13:56:47 -0000      
1.24
@@ -141,7 +141,7 @@
 #endif
                
                if (newReader && !newReader->is_valid()) {
-                       PERROR("new %s reader is invalid! (channels: %d, 
frames: %d)", (const char *)(newReader->decoder_type().toUtf8()), 
newReader->get_num_channels(), newReader->get_nframes());
+                       PERROR("new %s reader is invalid! (channels: %d, 
frames: %d)", QS_C(newReader->decoder_type()), newReader->get_num_channels(), 
newReader->get_nframes());
                        delete newReader;
                        newReader = 0;
                }
@@ -169,7 +169,7 @@
        }
        
        if (newReader && !newReader->is_valid()) {
-               PERROR("new %s reader is invalid! (channels: %d, frames: %d)", 
(const char *)(newReader->decoder_type().toUtf8()), 
newReader->get_num_channels(), newReader->get_nframes());
+               PERROR("new %s reader is invalid! (channels: %d, frames: %d)", 
QS_C(newReader->decoder_type()), newReader->get_num_channels(), 
newReader->get_nframes());
                delete newReader;
                newReader = 0;
        }

Index: audiofileio/decode/FlacAudioReader.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/audiofileio/decode/FlacAudioReader.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- audiofileio/decode/FlacAudioReader.cpp      30 Nov 2007 06:52:38 -0000      
1.13
+++ audiofileio/decode/FlacAudioReader.cpp      30 Jan 2008 13:56:47 -0000      
1.14
@@ -427,7 +427,7 @@
        QFile f(filename);
 
        if (!f.open(QIODevice::ReadOnly)) {
-               PERROR("Could not open file %s", filename.toUtf8().data());
+               PERROR("Could not open file %s", QS_C(filename));
                return false;
        }
 
@@ -479,7 +479,7 @@
        Q_ASSERT(m_flac);
        
        if (start >= m_nframes) {
-               PERROR("FlacAudioReader: could not seek to frame %d within %s, 
it's past the end.", start, m_fileName.toUtf8().data());
+               PERROR("FlacAudioReader: could not seek to frame %d within %s, 
it's past the end.", start, QS_C(m_fileName));
                return false;
        }
        
@@ -489,7 +489,7 @@
        m_flac->flush();
        
        if (!m_flac->seek(start)) {
-               PERROR("FlacAudioReader: could not seek to frame %d within %s", 
start, m_fileName.toUtf8().data());
+               PERROR("FlacAudioReader: could not seek to frame %d within %s", 
start, QS_C(m_fileName));
                return false;
        }
        

Index: audiofileio/decode/MadAudioReader.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/audiofileio/decode/MadAudioReader.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- audiofileio/decode/MadAudioReader.cpp       22 Oct 2007 16:49:42 -0000      
1.9
+++ audiofileio/decode/MadAudioReader.cpp       30 Jan 2008 13:56:47 -0000      
1.10
@@ -165,7 +165,7 @@
        m_inputFile.setFileName(filename);
        
        if (!m_inputFile.open(QIODevice::ReadOnly)) {
-               PERROR("could not open file %s", 
m_inputFile.fileName().toUtf8().data());
+               PERROR("could not open file %s", QS_C(filename));
                return false;
        }
        
@@ -275,7 +275,7 @@
                
                // skip the id3 tag
                if (!m_inputFile.seek(offset)) {
-                       PERROR("Couldn't seek to %u in %s", offset, 
m_inputFile.fileName().toUtf8().data());
+                       PERROR("Couldn't seek to %u in %s", offset, 
QS_C(m_inputFile.fileName()));
                        return false;
                }
        }

Index: audiofileio/decode/SFAudioReader.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/audiofileio/decode/SFAudioReader.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- audiofileio/decode/SFAudioReader.cpp        11 Jan 2008 13:32:25 -0000      
1.7
+++ audiofileio/decode/SFAudioReader.cpp        30 Jan 2008 13:56:48 -0000      
1.8
@@ -20,7 +20,6 @@
 */
 
 #include "SFAudioReader.h"
-#include <QFile>
 #include <QString>
 
 // Always put me below _all_ includes, this is needed
@@ -37,8 +36,15 @@
        */
        memset (&m_sfinfo, 0, sizeof(m_sfinfo));
 
-       if ((m_sf = sf_open (m_fileName.toUtf8().data(), SFM_READ, &m_sfinfo)) 
== 0) {
-               PERROR("Couldn't open soundfile (%s)", 
m_fileName.toUtf8().data());
+       m_file.setFileName(m_fileName);
+       
+       if (!m_file.open(QIODevice::ReadOnly)) {
+               qWarning("SFAudioReader::Could not open soundfile (%s)", 
QS_C(m_fileName));
+               return;
+       }
+       
+       if ((m_sf = sf_open_fd (m_file.handle(), SFM_READ, &m_sfinfo, false)) 
== 0) {
+               qWarning("SFAudioReader::Could not open soundfile (%s)", 
QS_C(m_fileName));
                return;
        }
  
@@ -69,7 +75,14 @@
        */
        memset (&infos, 0, sizeof(infos));
 
-       SNDFILE* sndfile = sf_open(filename.toUtf8().constData(), SFM_READ, 
&infos);
+       QFile file(filename);
+       
+       if (!file.open(QIODevice::ReadOnly)) {
+               qWarning("SFAudioReader::can_decode: Couldn't open soundfile 
(%s)", QS_C(filename));
+               return false;
+       }
+       
+       SNDFILE* sndfile = sf_open_fd(file.handle(), SFM_READ, &infos, false);
        
        //is it supported by libsndfile?
        if (!sndfile) {
@@ -94,7 +107,7 @@
        if (sf_seek (m_sf, (off_t) start, SEEK_SET) < 0) {
                char errbuf[256];
                sf_error_str (0, errbuf, sizeof (errbuf) - 1);
-               PERROR("ReadAudioSource: could not seek to frame %d within %s 
(%s)", start, m_fileName.toUtf8().data(), errbuf);
+               PERROR("ReadAudioSource: could not seek to frame %d within %s 
(%s)", start, QS_C(m_fileName), errbuf);
                return false;
        }
        

Index: audiofileio/decode/SFAudioReader.h
===================================================================
RCS file: /sources/traverso/traverso/src/audiofileio/decode/SFAudioReader.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- audiofileio/decode/SFAudioReader.h  17 Aug 2007 00:13:27 -0000      1.5
+++ audiofileio/decode/SFAudioReader.h  30 Jan 2008 13:56:48 -0000      1.6
@@ -25,6 +25,7 @@
 #include <AbstractAudioReader.h>
 #include "sndfile.h"
 
+#include <QFile>
 
 class SFAudioReader : public AbstractAudioReader
 {
@@ -42,6 +43,9 @@
        
        SNDFILE*        m_sf;
        SF_INFO         m_sfinfo;
+       
+private:
+       QFile m_file;
 };
 
 #endif

Index: audiofileio/decode/VorbisAudioReader.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/audiofileio/decode/VorbisAudioReader.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- audiofileio/decode/VorbisAudioReader.cpp    22 Oct 2007 16:49:42 -0000      
1.6
+++ audiofileio/decode/VorbisAudioReader.cpp    30 Jan 2008 13:56:48 -0000      
1.7
@@ -40,7 +40,7 @@
 {
        m_file = fopen(filename.toUtf8().data(), "rb");
        if (!m_file) {
-               PERROR("Couldn't open file %s.", filename.toUtf8().data());
+               PERROR("Couldn't open file %s.", QS_C(filename));
                return;
        }
        
@@ -76,7 +76,7 @@
        
        FILE* file = fopen(filename.toUtf8().data(), "rb");
        if (!file) {
-               PERROR("Could not open file: %s", filename.toUtf8().data());
+               PERROR("Could not open file: %s", QS_C(filename));
                return false;
        }
        
@@ -102,7 +102,7 @@
        }
        
        if (int result = ov_pcm_seek(&m_vf, start) < 0) {
-               PERROR("VorbisAudioReader: could not seek to frame %d within %s 
(%d)", start, m_fileName.toUtf8().data(), result);
+               PERROR("VorbisAudioReader: could not seek to frame %d within %s 
(%d)", start, QS_C(m_fileName), result);
                Q_UNUSED(result);
                return false;
        }

Index: audiofileio/decode/WPAudioReader.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/audiofileio/decode/WPAudioReader.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- audiofileio/decode/WPAudioReader.cpp        22 Oct 2007 16:49:42 -0000      
1.11
+++ audiofileio/decode/WPAudioReader.cpp        30 Jan 2008 13:56:48 -0000      
1.12
@@ -37,7 +37,7 @@
        m_wp = WavpackOpenFileInput(m_fileName.toUtf8().data(), error, 
OPEN_2CH_MAX | OPEN_NORMALIZE | OPEN_WVC, 0);
        
        if (m_wp == 0) {
-               PERROR("Couldn't open soundfile (%s) %s", 
filename.toUtf8().data(), error);
+               qWarning("Couldn't open soundfile (%s) %s", QS_C(filename), 
error);
                return;
        }
        
@@ -89,7 +89,7 @@
        }
        
        if (!WavpackSeekSample(m_wp, start)) {
-               PERROR("could not seek to frame %d within %s", start, 
m_fileName.toUtf8().data());
+               PERROR("could not seek to frame %d within %s", start, 
QS_C(m_fileName));
                return false;
        }
        

Index: audiofileio/encode/FlacAudioWriter.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/audiofileio/encode/FlacAudioWriter.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- audiofileio/encode/FlacAudioWriter.cpp      29 Oct 2007 09:00:09 -0000      
1.5
+++ audiofileio/encode/FlacAudioWriter.cpp      30 Jan 2008 13:56:48 -0000      
1.6
@@ -120,7 +120,7 @@
        ok &= FLAC__file_encoder_set_bits_per_sample(d->encoder, m_sampleWidth);
        ok &= FLAC__file_encoder_set_sample_rate(d->encoder, m_rate);
        ok &= FLAC__file_encoder_set_total_samples_estimate(d->encoder, 0);  // 
Set when done
-       ok &= FLAC__file_encoder_set_filename(d->encoder, 
m_fileName.toUtf8().data());
+       ok &= FLAC__file_encoder_set_filename(d->encoder, QS_C(m_fileName));
 #else
        ok &= FLAC__stream_encoder_set_compression_level(d->encoder, 
d->quality);
        ok &= FLAC__stream_encoder_set_channels(d->encoder, m_channels);
@@ -140,7 +140,7 @@
                }
 #else
                FLAC__StreamEncoderInitStatus init_status;
-               init_status = FLAC__stream_encoder_init_file(d->encoder, 
m_fileName.toUtf8().data(), NULL, /*client_data=*/NULL);
+               init_status = FLAC__stream_encoder_init_file(d->encoder, 
QS_C(m_fileName), NULL, /*client_data=*/NULL);
                if (init_status != FLAC__STREAM_ENCODER_INIT_STATUS_OK) {
                        PERROR("ERROR: initializing encoder: %s", 
FLAC__StreamEncoderInitStatusString[init_status]);
                        ok = false;

Index: audiofileio/encode/SFAudioWriter.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/audiofileio/encode/SFAudioWriter.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- audiofileio/encode/SFAudioWriter.cpp        26 Sep 2007 20:46:31 -0000      
1.7
+++ audiofileio/encode/SFAudioWriter.cpp        30 Jan 2008 13:56:48 -0000      
1.8
@@ -97,10 +97,18 @@
        m_sfinfo.channels = m_channels;
        //m_sfinfo.frames = m_spec->endLocation - m_spec->startLocation + 1;
        
-       m_sf = sf_open(m_fileName.toUtf8().data(), SFM_WRITE, &m_sfinfo);
+       m_file.setFileName(m_fileName);
+       
+       if (!m_file.open(QIODevice::WriteOnly)) {
+               qWarning("SFAudioReader::open_private: Could not create file 
(%s)", QS_C(m_fileName));
+               return false;
+       }
+       
+       m_sf = sf_open_fd(m_file.handle(), SFM_WRITE, &m_sfinfo, false);
+       
        if (m_sf == 0) {
                sf_error_str (0, errbuf, sizeof (errbuf) - 1);
-               PWARN("Export: cannot open output file \"%s\" (%s)", 
m_fileName.toUtf8().data(), errbuf);
+               PWARN("Export: cannot open output file \"%s\" (%s)", 
QS_C(m_fileName), errbuf);
                return false;
        }
        

Index: audiofileio/encode/SFAudioWriter.h
===================================================================
RCS file: /sources/traverso/traverso/src/audiofileio/encode/SFAudioWriter.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- audiofileio/encode/SFAudioWriter.h  5 Nov 2007 15:51:36 -0000       1.6
+++ audiofileio/encode/SFAudioWriter.h  30 Jan 2008 13:56:48 -0000      1.7
@@ -27,6 +27,8 @@
 #include "defines.h"
 #include "sndfile.h"
 
+#include <QFile>
+
 class QString;
 
 class SFAudioWriter : public AbstractAudioWriter
@@ -48,6 +50,10 @@
        int             m_fileType;     
        SNDFILE*        m_sf;
        SF_INFO         m_sfinfo;
+       
+private:
+       QFile m_file;
+
 };
 
 #endif

Index: audiofileio/encode/WPAudioWriter.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/audiofileio/encode/WPAudioWriter.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- audiofileio/encode/WPAudioWriter.cpp        24 Sep 2007 00:57:51 -0000      
1.13
+++ audiofileio/encode/WPAudioWriter.cpp        30 Jan 2008 13:56:48 -0000      
1.14
@@ -102,7 +102,7 @@
 {
        m_file = fopen(m_fileName.toUtf8().data(), "wb");
        if (!m_file) {
-               PERROR("Couldn't open file %s.", m_fileName.toUtf8().data());
+               qWarning("Couldn't open file %s.", QS_C(m_fileName));
                return false;
        }
        

Index: common/Utils.h
===================================================================
RCS file: /sources/traverso/traverso/src/common/Utils.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- common/Utils.h      21 Jan 2008 16:22:12 -0000      1.5
+++ common/Utils.h      30 Jan 2008 13:56:48 -0000      1.6
@@ -26,7 +26,7 @@
 #include <QPixmap>
 #include <QDateTime>
 
-#define QS_C(x) x.toAscii().data()
+#define QS_C(x) x.toUtf8().data()
 
 class QString;
 

Index: core/Peak.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Peak.cpp,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -b -r1.83 -r1.84
--- core/Peak.cpp       30 Jan 2008 12:24:35 -0000      1.83
+++ core/Peak.cpp       30 Jan 2008 13:56:48 -0000      1.84
@@ -134,7 +134,7 @@
                        }
                                
                        QString errorstring = 
FileHelper::fileerror_to_string(data->file.error());
-                       PERROR("Couldn't open peak file for reading! (%s, 
Error: %s)", data->fileName.toUtf8().data(), QS_C(errorstring));
+                       qWarning("Couldn't open peak file for reading! (%s, 
Error: %s)", QS_C(data->fileName), QS_C(errorstring));
                        return -1;
                }
 
@@ -918,7 +918,7 @@
                // only seek if we didn't mmap 
                if (!m_d->memory) {
                        if (!m_d->file.seek(start)) {
-                               PERROR("PeakDataReader: could not seek to data 
point %d within %s", start, m_d->fileName.toUtf8().data());
+                               qWarning("PeakDataReader: could not seek to 
data point %d within %s", start, QS_C(m_d->fileName));
                                return false;
                        }
                }

Index: traverso/widgets/InfoWidgets.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/InfoWidgets.cpp,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -b -r1.56 -r1.57
--- traverso/widgets/InfoWidgets.cpp    29 Jan 2008 10:55:20 -0000      1.56
+++ traverso/widgets/InfoWidgets.cpp    30 Jan 2008 13:56:48 -0000      1.57
@@ -305,7 +305,7 @@
        
 #if defined (Q_WS_WIN)
        __int64 freebytestocaller, totalbytes, freebytes; 
-       if (! GetDiskFreeSpaceEx ((const 
WCHAR*)(m_project->get_root_dir().toUtf8().data()),
+       if (! GetDiskFreeSpaceEx ((const 
WCHAR*)(QS_C(m_project->get_root_dir())),
                                        (PULARGE_INTEGER)&freebytestocaller,
                                        (PULARGE_INTEGER)&totalbytes,
                                        (PULARGE_INTEGER)&freebytes)) 
@@ -324,7 +324,7 @@
 #else
        
        struct statfs fs;
-       statfs(m_project->get_root_dir().toUtf8().data(), &fs);
+       statfs(QS_C(m_project->get_root_dir()), &fs);
        space = floor (fs.f_bavail * (fs.f_bsize / 1048576.0));
 #endif
 #endif




reply via email to

[Prev in Thread] Current Thread [Next in Thread]