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: Thu, 16 Aug 2007 14:26:51 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       07/08/16 14:26:51

Modified files:
        src/audiofileio/decode: AbstractAudioReader.cpp 
                                AbstractAudioReader.h 
                                FlacAudioReader.cpp FlacAudioReader.h 
                                MadAudioReader.h ResampleAudioReader.cpp 
                                ResampleAudioReader.h SFAudioReader.cpp 
                                SFAudioReader.h VorbisAudioReader.cpp 
                                VorbisAudioReader.h WPAudioReader.cpp 
                                WPAudioReader.h 
        src/audiofileio/encode: SFAudioWriter.cpp 
        src/core       : AudioClip.cpp AudioSource.cpp AudioSource.h 
                         DiskIO.cpp DiskIO.h ReadSource.cpp 
        src/engine     : AlsaDriver.cpp JackDriver.cpp 

Log message:
        * store ReadSources filereader decoder type
        * added pure virtual function decoder_type() in AbstractAudioReader
        * init the m_length and m_channels in AbstractAudioReader constructor, 
so the newly added AbstractAudioReader ;;is_valid() function works as expected.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/AbstractAudioReader.cpp?cvsroot=traverso&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/AbstractAudioReader.h?cvsroot=traverso&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/FlacAudioReader.cpp?cvsroot=traverso&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/FlacAudioReader.h?cvsroot=traverso&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/MadAudioReader.h?cvsroot=traverso&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/ResampleAudioReader.cpp?cvsroot=traverso&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/ResampleAudioReader.h?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/SFAudioReader.cpp?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/SFAudioReader.h?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/VorbisAudioReader.cpp?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/VorbisAudioReader.h?cvsroot=traverso&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/WPAudioReader.cpp?cvsroot=traverso&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/WPAudioReader.h?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/encode/SFAudioWriter.cpp?cvsroot=traverso&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AudioClip.cpp?cvsroot=traverso&r1=1.124&r2=1.125
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AudioSource.cpp?cvsroot=traverso&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AudioSource.h?cvsroot=traverso&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/DiskIO.cpp?cvsroot=traverso&r1=1.44&r2=1.45
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/DiskIO.h?cvsroot=traverso&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ReadSource.cpp?cvsroot=traverso&r1=1.48&r2=1.49
http://cvs.savannah.gnu.org/viewcvs/traverso/src/engine/AlsaDriver.cpp?cvsroot=traverso&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/traverso/src/engine/JackDriver.cpp?cvsroot=traverso&r1=1.19&r2=1.20

Patches:
Index: audiofileio/decode/AbstractAudioReader.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/audiofileio/decode/AbstractAudioReader.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- audiofileio/decode/AbstractAudioReader.cpp  14 Aug 2007 10:49:52 -0000      
1.2
+++ audiofileio/decode/AbstractAudioReader.cpp  16 Aug 2007 14:26:49 -0000      
1.3
@@ -37,7 +37,7 @@
 AbstractAudioReader::AbstractAudioReader(const QString& filename)
 {
        m_fileName = filename;
-       m_readPos = 0;
+       m_readPos = m_channels = m_length = 0;
 }
 
 
@@ -119,9 +119,25 @@
 
 
 // Static method used by other classes to get an AudioReader for the correct 
file type
-AbstractAudioReader* AbstractAudioReader::create_audio_reader(const QString& 
filename)
+AbstractAudioReader* AbstractAudioReader::create_audio_reader(const QString& 
filename, const QString& decoder)
 {
-       AbstractAudioReader* newReader;
+       AbstractAudioReader* newReader = 0;
+       
+       if ( ! (decoder.isEmpty() || decoder.isNull()) ) {
+               if (decoder == "sndfile") {
+                       newReader = new SFAudioReader(filename);
+               } else if (decoder == "wavpack") {
+                       newReader = new WPAudioReader(filename);
+               } else if (decoder == "flac") {
+                       newReader = new FlacAudioReader(filename);
+               } else if (decoder == "vorbis") {
+                       newReader = new VorbisAudioReader(filename);
+               } else if (decoder == "mad") {
+                       newReader = new MadAudioReader(filename);
+               }
+       }
+       
+       if ( (!newReader) || (!newReader->is_valid()) ) {
        
        if (FlacAudioReader::can_decode(filename)) {
                newReader = new FlacAudioReader(filename);
@@ -141,9 +157,10 @@
        else {
                return 0;
        }
+       }
        
-       if (newReader->get_num_channels() <= 0) {
-               PERROR("new reader has 0 channels!");
+       if (!newReader->is_valid()) {
+               PERROR("new reader is invalid! (channels: %d, frames: %d", 
newReader->get_num_channels(), newReader->get_length());
                return 0;
        }
 

Index: audiofileio/decode/AbstractAudioReader.h
===================================================================
RCS file: 
/sources/traverso/traverso/src/audiofileio/decode/AbstractAudioReader.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- audiofileio/decode/AbstractAudioReader.h    16 Aug 2007 06:43:50 -0000      
1.4
+++ audiofileio/decode/AbstractAudioReader.h    16 Aug 2007 14:26:49 -0000      
1.5
@@ -116,7 +116,10 @@
        bool seek(nframes_t start);
        nframes_t read(DecodeBuffer* buffer, nframes_t frameCount);
        
-       static AbstractAudioReader* create_audio_reader(const QString& 
filename);
+       bool is_valid() {return (m_channels > 0 && m_length > 0);}
+       virtual QString decoder_type() const = 0;
+       
+       static AbstractAudioReader* create_audio_reader(const QString& 
filename, const QString& decoder = 0);
        
 protected:
        virtual bool seek_private(nframes_t start) = 0;

Index: audiofileio/decode/FlacAudioReader.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/audiofileio/decode/FlacAudioReader.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- audiofileio/decode/FlacAudioReader.cpp      14 Aug 2007 10:49:53 -0000      
1.4
+++ audiofileio/decode/FlacAudioReader.cpp      16 Aug 2007 14:26:49 -0000      
1.5
@@ -382,7 +382,7 @@
 {
        m_flac = new FlacPrivate(filename);
        
-       if (m_flac) {
+       if (m_flac->is_valid()) {
                m_channels = m_flac->m_channels;
                m_length = m_flac->m_samples;
                m_rate = m_flac->m_rate;

Index: audiofileio/decode/FlacAudioReader.h
===================================================================
RCS file: /sources/traverso/traverso/src/audiofileio/decode/FlacAudioReader.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- audiofileio/decode/FlacAudioReader.h        14 Aug 2007 10:49:53 -0000      
1.2
+++ audiofileio/decode/FlacAudioReader.h        16 Aug 2007 14:26:49 -0000      
1.3
@@ -33,6 +33,8 @@
        FlacAudioReader(QString filename);
        ~FlacAudioReader();
        
+       QString decoder_type() const {return "flac";}
+
        static bool can_decode(QString filename);
        
 protected:

Index: audiofileio/decode/MadAudioReader.h
===================================================================
RCS file: /sources/traverso/traverso/src/audiofileio/decode/MadAudioReader.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- audiofileio/decode/MadAudioReader.h 14 Aug 2007 10:49:53 -0000      1.2
+++ audiofileio/decode/MadAudioReader.h 16 Aug 2007 14:26:49 -0000      1.3
@@ -35,6 +35,8 @@
        MadAudioReader(QString filename);
        ~MadAudioReader();
        
+       QString decoder_type() const {return "mad";}
+       
        static bool can_decode(QString filename);
        
 protected:

Index: audiofileio/decode/ResampleAudioReader.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/audiofileio/decode/ResampleAudioReader.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- audiofileio/decode/ResampleAudioReader.cpp  16 Aug 2007 06:43:50 -0000      
1.5
+++ audiofileio/decode/ResampleAudioReader.cpp  16 Aug 2007 14:26:49 -0000      
1.6
@@ -30,10 +30,10 @@
 
 
 // On init, creates a child AudioReader for any filetype, and a samplerate 
converter
-ResampleAudioReader::ResampleAudioReader(QString filename, int converter_type)
+ResampleAudioReader::ResampleAudioReader(QString filename, int converter_type, 
const QString& decoder)
  : AbstractAudioReader(filename)
 {
-       m_reader = AbstractAudioReader::create_audio_reader(filename);
+       m_reader = AbstractAudioReader::create_audio_reader(filename, decoder);
        if (!m_reader) {
                PERROR("ResampleAudioReader: couldn't create AudioReader");
                return;
@@ -44,10 +44,7 @@
        m_length = m_reader->get_length();
        m_outputRate = m_rate;
        
-       m_overflowBuffers = new audio_sample_t*[m_channels];
-       for (int chan = 0; chan < m_channels; chan++) {
-               m_overflowBuffers[chan] = new audio_sample_t[OVERFLOW_SIZE];
-       }
+       m_overflowBuffers = 0;
        m_overflowUsed = 0;
        
        init(converter_type);
@@ -65,10 +62,12 @@
                delete m_reader;
        }
        
+       if (m_overflowBuffers) {
        for (int chan = 0; chan < m_channels; chan++) {
                delete [] m_overflowBuffers[chan];
        }
        delete [] m_overflowBuffers;
+       }
 }
 
 
@@ -156,6 +155,8 @@
        // pass through if not changing sampleRate.
        if (m_outputRate == m_rate) {
                return m_reader->read(buffer, frameCount);
+       } else if (!m_overflowBuffers) {
+               create_overflow_buffers();
        }
        
        nframes_t bufferUsed;
@@ -264,3 +265,11 @@
        return (nframes_t)(frame * ((double) m_outputRate / m_rate));
 }
 
+void ResampleAudioReader::create_overflow_buffers()
+{
+       m_overflowBuffers = new audio_sample_t*[m_channels];
+       for (int chan = 0; chan < m_channels; chan++) {
+               m_overflowBuffers[chan] = new audio_sample_t[OVERFLOW_SIZE];
+       }
+}
+

Index: audiofileio/decode/ResampleAudioReader.h
===================================================================
RCS file: 
/sources/traverso/traverso/src/audiofileio/decode/ResampleAudioReader.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- audiofileio/decode/ResampleAudioReader.h    16 Aug 2007 06:43:50 -0000      
1.3
+++ audiofileio/decode/ResampleAudioReader.h    16 Aug 2007 14:26:49 -0000      
1.4
@@ -31,9 +31,11 @@
 {
 
 public:
-       ResampleAudioReader(QString filename, int converter_type);
+       ResampleAudioReader(QString filename, int converter_type, const 
QString& decoder);
        ~ResampleAudioReader();
        
+       QString decoder_type() const {return m_reader->decoder_type();}
+       
        int get_output_rate();
        void set_output_rate(int rate);
        
@@ -55,6 +57,9 @@
        long                    m_overflowUsed;
        int                     m_outputRate;
        nframes_t               m_readExtraFrames;
+       
+private:
+       void create_overflow_buffers();
 };
 
 #endif

Index: audiofileio/decode/SFAudioReader.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/audiofileio/decode/SFAudioReader.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- audiofileio/decode/SFAudioReader.cpp        14 Aug 2007 10:49:53 -0000      
1.3
+++ audiofileio/decode/SFAudioReader.cpp        16 Aug 2007 14:26:50 -0000      
1.4
@@ -39,11 +39,13 @@
 
        if ((m_sf = sf_open (m_fileName.toUtf8().data(), SFM_READ, &m_sfinfo)) 
== 0) {
                PERROR("Couldn't open soundfile (%s)", 
m_fileName.toUtf8().data());
+               return;
        }
        
        m_channels = m_sfinfo.channels;
        m_length = m_sfinfo.frames;
        m_rate = m_sfinfo.samplerate;
+       
 }
 
 

Index: audiofileio/decode/SFAudioReader.h
===================================================================
RCS file: /sources/traverso/traverso/src/audiofileio/decode/SFAudioReader.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- audiofileio/decode/SFAudioReader.h  14 Aug 2007 10:49:54 -0000      1.3
+++ audiofileio/decode/SFAudioReader.h  16 Aug 2007 14:26:50 -0000      1.4
@@ -32,6 +32,8 @@
        SFAudioReader(QString filename);
        ~SFAudioReader();
        
+       QString decoder_type() const {return "sndfile";}
+       
        static bool can_decode(QString filename);
 
 protected:

Index: audiofileio/decode/VorbisAudioReader.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/audiofileio/decode/VorbisAudioReader.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- audiofileio/decode/VorbisAudioReader.cpp    14 Aug 2007 10:49:54 -0000      
1.3
+++ audiofileio/decode/VorbisAudioReader.cpp    16 Aug 2007 14:26:50 -0000      
1.4
@@ -75,7 +75,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", filename.toUtf8().data());
                return false;
        }
        

Index: audiofileio/decode/VorbisAudioReader.h
===================================================================
RCS file: 
/sources/traverso/traverso/src/audiofileio/decode/VorbisAudioReader.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- audiofileio/decode/VorbisAudioReader.h      14 Aug 2007 10:49:54 -0000      
1.2
+++ audiofileio/decode/VorbisAudioReader.h      16 Aug 2007 14:26:50 -0000      
1.3
@@ -34,6 +34,8 @@
        VorbisAudioReader(QString filename);
        ~VorbisAudioReader();
        
+       QString decoder_type() const {return "vorbis";}
+       
        static bool can_decode(QString filename);
 
 protected:

Index: audiofileio/decode/WPAudioReader.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/audiofileio/decode/WPAudioReader.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- audiofileio/decode/WPAudioReader.cpp        14 Aug 2007 10:49:54 -0000      
1.4
+++ audiofileio/decode/WPAudioReader.cpp        16 Aug 2007 14:26:50 -0000      
1.5
@@ -38,6 +38,7 @@
        
        if (m_wp == 0) {
                PERROR("Couldn't open soundfile (%s) %s", 
filename.toUtf8().data(), error);
+               return;
        }
        
        m_isFloat = ((WavpackGetMode(m_wp) & MODE_FLOAT) != 0);

Index: audiofileio/decode/WPAudioReader.h
===================================================================
RCS file: /sources/traverso/traverso/src/audiofileio/decode/WPAudioReader.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- audiofileio/decode/WPAudioReader.h  14 Aug 2007 10:49:54 -0000      1.3
+++ audiofileio/decode/WPAudioReader.h  16 Aug 2007 14:26:50 -0000      1.4
@@ -32,6 +32,8 @@
        WPAudioReader(QString filename);
        ~WPAudioReader();
        
+       QString decoder_type() const {return "wavpack";}
+       
        static bool can_decode(QString filename);
 
 protected:

Index: audiofileio/encode/SFAudioWriter.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/audiofileio/encode/SFAudioWriter.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- audiofileio/encode/SFAudioWriter.cpp        13 Aug 2007 00:01:52 -0000      
1.4
+++ audiofileio/encode/SFAudioWriter.cpp        16 Aug 2007 14:26:50 -0000      
1.5
@@ -48,6 +48,9 @@
        if (m_fileType == SF_FORMAT_WAV) {
                return ".wav";
        }
+       else if (m_fileType == SF_FORMAT_W64) {
+               return ".w64";
+       }
        else if (m_fileType == SF_FORMAT_AIFF) {
                return ".aiff";
        }
@@ -65,6 +68,10 @@
                        m_fileType = SF_FORMAT_WAV;
                        return true;
                }
+               else if (value == "w64") {
+                       m_fileType = SF_FORMAT_W64;
+                       return true;
+               }
                else if (value == "aiff") {
                        m_fileType = SF_FORMAT_AIFF;
                        return true;

Index: core/AudioClip.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/AudioClip.cpp,v
retrieving revision 1.124
retrieving revision 1.125
diff -u -b -r1.124 -r1.125

Index: core/AudioSource.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/AudioSource.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- core/AudioSource.cpp        18 Jul 2007 13:13:05 -0000      1.26
+++ core/AudioSource.cpp        16 Aug 2007 14:26:50 -0000      1.27
@@ -75,6 +75,7 @@
        node.setAttribute("wasrecording", m_wasRecording);
        node.setAttribute("length", m_length);
        node.setAttribute("rate", m_rate);
+       node.setAttribute("decoder", m_decodertype);
 
        return node;
 }
@@ -93,6 +94,7 @@
        m_rate = e.attribute("rate", "0").toUInt();
        m_origBitDepth = e.attribute("origbitdepth", "0").toInt();
        m_wasRecording = e.attribute("wasrecording", "0").toInt();
+       m_decodertype = e.attribute("decoder", "");
        
        // For older project files, this should properly detect if the 
        // audio source was a recording or not., in fact this should suffice

Index: core/AudioSource.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/AudioSource.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- core/AudioSource.h  15 Aug 2007 20:07:41 -0000      1.23
+++ core/AudioSource.h  16 Aug 2007 14:26:50 -0000      1.24
@@ -76,6 +76,7 @@
        nframes_t       m_length;
        uint            m_rate;
        int             m_wasRecording;
+       QString         m_decodertype;
 };
 
 

Index: core/DiskIO.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/DiskIO.cpp,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -b -r1.44 -r1.45
--- core/DiskIO.cpp     16 Aug 2007 06:43:50 -0000      1.44
+++ core/DiskIO.cpp     16 Aug 2007 14:26:50 -0000      1.45
@@ -267,7 +267,7 @@
        m_processableWriteSources.clear();
        QList<ReadSource* > syncSources;
                
-       for (int i=6; i >= 0; --i) {
+       for (int i=(bufferdividefactor-2); i >= 0; --i) {
                
                for (int j=0; j<m_writeSources.size(); ++j) {
                        WriteSource* source = m_writeSources.at(j); 

Index: core/DiskIO.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/DiskIO.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- core/DiskIO.h       14 Aug 2007 10:49:55 -0000      1.20
+++ core/DiskIO.h       16 Aug 2007 14:26:50 -0000      1.21
@@ -52,7 +52,7 @@
        ~DiskIO();
        
        static const int writebuffertime = 5;
-       static const int bufferdividefactor = 8;
+       static const int bufferdividefactor = 5;
 
        void prepare_for_seek();
        void output_rate_changed();

Index: core/ReadSource.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ReadSource.cpp,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -b -r1.48 -r1.49
--- core/ReadSource.cpp 16 Aug 2007 06:43:50 -0000      1.48
+++ core/ReadSource.cpp 16 Aug 2007 14:26:50 -0000      1.49
@@ -176,8 +176,8 @@
                converter_type = config().get_property("Conversion", 
"RTResamplingConverterType", 2).toInt();
                // There should be another config option for ConverterType to 
use for export (higher quality)
                //converter_type = config().get_property("Conversion", 
"ExportResamplingConverterType", 0).toInt();
-               m_audioReader = new ResampleAudioReader(m_fileName, 
converter_type);
-               if (m_audioReader->get_num_channels()) {
+               m_audioReader = new ResampleAudioReader(m_fileName, 
converter_type, m_decodertype);
+               if (m_audioReader->is_valid()) {
                        output_rate_changed();
                }
                else {
@@ -186,13 +186,16 @@
                }
        }
        else {
-               m_audioReader = 
AbstractAudioReader::create_audio_reader(m_fileName);
+               m_audioReader = 
AbstractAudioReader::create_audio_reader(m_fileName, m_decodertype);
        }
        
        if (m_audioReader == 0) {
                return COULD_NOT_OPEN_FILE;
        }
        
+       // (re)set the decoder type
+       m_decodertype = m_audioReader->decoder_type();
+       
        if (m_channelCount > m_audioReader->get_num_channels()) {
                PERROR("ReadAudioSource: file only contains %d channels; %d is 
invalid as a channel number", m_audioReader->get_num_channels(), 
m_channelCount);
                delete m_audioReader;

Index: engine/AlsaDriver.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/engine/AlsaDriver.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- engine/AlsaDriver.cpp       14 May 2007 18:05:28 -0000      1.16
+++ engine/AlsaDriver.cpp       16 Aug 2007 14:26:51 -0000      1.17
@@ -20,12 +20,11 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
 
-$Id: AlsaDriver.cpp,v 1.16 2007/05/14 18:05:28 r_sijrier Exp $
+$Id: AlsaDriver.cpp,v 1.17 2007/08/16 14:26:51 r_sijrier Exp $
 */
 
 
 #include "AlsaDriver.h"
-#include "AudioDevice.h"
 #include "AudioChannel.h"
 #include <Utils.h>
 #include <Config.h>
@@ -46,6 +45,8 @@
 #include <sys/time.h>
 #include <time.h>
 
+#include "AudioDevice.h"
+
 // Always put me below _all_ includes, this is needed
 // in case we run with memory leak detection enabled!
 #include "Debugger.h"

Index: engine/JackDriver.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/engine/JackDriver.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- engine/JackDriver.cpp       19 Jul 2007 12:28:42 -0000      1.19
+++ engine/JackDriver.cpp       16 Aug 2007 14:26:51 -0000      1.20
@@ -17,14 +17,11 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
  
-    $Id: JackDriver.cpp,v 1.19 2007/07/19 12:28:42 r_sijrier Exp $
+    $Id: JackDriver.cpp,v 1.20 2007/08/16 14:26:51 r_sijrier Exp $
 */
 
 #include "JackDriver.h"
 
-#include "AudioDevice.h"
-#include "AudioChannel.h"
-
 #include <Information.h>
 #include "Config.h"
 
@@ -34,6 +31,9 @@
 #include "AlsaDriver.h"
 #endif
 
+#include "AudioDevice.h"
+#include "AudioChannel.h"
+
 // Always put me below _all_ includes, this is needed
 // in case we run with memory leak detection enabled!
 #include "Debugger.h"




reply via email to

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