traverso-commit
[Top][All Lists]
Advanced

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

[Traverso-commit] traverso/src/core AbstractAudioReader.cpp Abstr...


From: Ben Levitt
Subject: [Traverso-commit] traverso/src/core AbstractAudioReader.cpp Abstr...
Date: Fri, 20 Jul 2007 23:04:21 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Ben Levitt <benjie>     07/07/20 23:04:21

Modified files:
        src/core       : AbstractAudioReader.cpp AbstractAudioReader.h 
                         FlacAudioReader.cpp FlacAudioReader.h 
                         MadAudioReader.cpp MadAudioReader.h 
                         ResampleAudioReader.cpp ResampleAudioReader.h 
                         SFAudioReader.cpp SFAudioReader.h 
                         VorbisAudioReader.cpp VorbisAudioReader.h 
                         WPAudioReader.cpp WPAudioReader.h 

Log message:
        Clean up abstract class, and seperate read and seek from read_private 
and seek_private

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AbstractAudioReader.cpp?cvsroot=traverso&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AbstractAudioReader.h?cvsroot=traverso&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/FlacAudioReader.cpp?cvsroot=traverso&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/FlacAudioReader.h?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/MadAudioReader.cpp?cvsroot=traverso&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/MadAudioReader.h?cvsroot=traverso&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ResampleAudioReader.cpp?cvsroot=traverso&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ResampleAudioReader.h?cvsroot=traverso&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/SFAudioReader.cpp?cvsroot=traverso&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/SFAudioReader.h?cvsroot=traverso&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/VorbisAudioReader.cpp?cvsroot=traverso&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/VorbisAudioReader.h?cvsroot=traverso&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/WPAudioReader.cpp?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/WPAudioReader.h?cvsroot=traverso&r1=1.2&r2=1.3

Patches:
Index: AbstractAudioReader.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/AbstractAudioReader.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- AbstractAudioReader.cpp     19 Jul 2007 05:25:58 -0000      1.11
+++ AbstractAudioReader.cpp     20 Jul 2007 23:04:20 -0000      1.12
@@ -48,13 +48,6 @@
 }
 
 
-bool AbstractAudioReader::seek(nframes_t start)
-{
-       m_readPos = start;
-       return true;
-}
-
-
 // Read cnt frames starting at start from the AudioReader, into dst
 // uses seek() and read() from AudioReader subclass
 nframes_t AbstractAudioReader::read_from(audio_sample_t** buffer, nframes_t 
start, nframes_t count)
@@ -63,16 +56,32 @@
        
 //     printf("read_from:: before_seek from %d, framepos is %d\n", start, 
m_readPos);
        
-       if (m_readPos != start) {
-//             printf("starting seek\n");
                if (!seek(start)) {
                        return 0;
                }
+       
+       return read(buffer, count);
+}
+
+
+bool AbstractAudioReader::seek(nframes_t start)
+{
+       if (m_readPos != start) {
+               if (!seek_private(start)) {
+                       return false;
+               }
+               m_readPos = start;
        }
        
+       return true;
+}
+
+
+nframes_t AbstractAudioReader::read(audio_sample_t** buffer, nframes_t count)
+{
        if (count) {
        //      printf("read_from:: after_seek from %d, framepos is %d\n", 
start, m_readPos);
-               nframes_t framesRead = read(buffer, count);
+               nframes_t framesRead = read_private(buffer, count);
                
                m_readPos += framesRead;
                

Index: AbstractAudioReader.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/AbstractAudioReader.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- AbstractAudioReader.h       19 Jul 2007 06:58:39 -0000      1.10
+++ AbstractAudioReader.h       20 Jul 2007 23:04:21 -0000      1.11
@@ -41,13 +41,16 @@
        virtual nframes_t get_length() = 0;
        virtual int get_rate() = 0;
        nframes_t read_from(audio_sample_t** buffer, nframes_t start, nframes_t 
count);
-       virtual bool seek(nframes_t start);
-       virtual nframes_t read(audio_sample_t** buffer, nframes_t frameCount) = 
0;
+       bool seek(nframes_t start);
+       nframes_t read(audio_sample_t** buffer, nframes_t frameCount);
        
        static AbstractAudioReader* create_audio_reader(const QString& 
filename);
        static AbstractAudioReader* create_resampled_audio_reader(const 
QString& filename, int converter_type);
 
 protected:
+       virtual bool seek_private(nframes_t start) = 0;
+       virtual nframes_t read_private(audio_sample_t** buffer, nframes_t 
frameCount) = 0;
+       
        QString         m_fileName;
        QMutex          m_mutex;
        nframes_t       m_readPos;

Index: FlacAudioReader.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/FlacAudioReader.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- FlacAudioReader.cpp 19 Jul 2007 04:05:57 -0000      1.7
+++ FlacAudioReader.cpp 20 Jul 2007 23:04:21 -0000      1.8
@@ -365,7 +365,7 @@
 }
 
 
-bool FlacAudioReader::seek(nframes_t start)
+bool FlacAudioReader::seek_private(nframes_t start)
 {
        Q_ASSERT(m_flac);
        
@@ -384,13 +384,11 @@
                return false;
        }
        
-       AbstractAudioReader::seek(start);
-       
        return true;
 }
 
 
-nframes_t FlacAudioReader::read(audio_sample_t** buffer, nframes_t frameCount)
+nframes_t FlacAudioReader::read_private(audio_sample_t** buffer, nframes_t 
frameCount)
 {
        Q_ASSERT(m_flac);
        

Index: FlacAudioReader.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/FlacAudioReader.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- FlacAudioReader.h   19 Jul 2007 04:05:58 -0000      1.3
+++ FlacAudioReader.h   20 Jul 2007 23:04:21 -0000      1.4
@@ -36,12 +36,13 @@
        int get_num_channels();
        nframes_t get_length();
        int get_rate();
-       bool seek(nframes_t start);
-       nframes_t read(audio_sample_t** buffer, nframes_t sampleCount);
        
        static bool can_decode(QString filename);
        
 protected:
+       bool seek_private(nframes_t start);
+       nframes_t read_private(audio_sample_t** buffer, nframes_t sampleCount);
+       
        FlacPrivate *m_flac;
 };
 

Index: MadAudioReader.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/MadAudioReader.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- MadAudioReader.cpp  19 Jul 2007 04:05:58 -0000      1.8
+++ MadAudioReader.cpp  20 Jul 2007 23:04:21 -0000      1.9
@@ -623,7 +623,7 @@
 }
 
 
-bool MadAudioReader::seek(nframes_t start)
+bool MadAudioReader::seek_private(nframes_t start)
 {
        Q_ASSERT(d);
        
@@ -693,8 +693,6 @@
        d->overflowStart = 0;
        d->overflowSize = 0;
        
-       AbstractAudioReader::seek(start);
-       
        // Seek to exact traverso frame, within this mp3 frame
        if (frameOffset > 0) {
                //printf("seekOffset: %lu (start: %lu)\n", frameOffset, start);
@@ -776,7 +774,7 @@
 }
 
 
-nframes_t MadAudioReader::read(audio_sample_t** buffer, nframes_t frameCount)
+nframes_t MadAudioReader::read_private(audio_sample_t** buffer, nframes_t 
frameCount)
 {
        d->outputBuffers = buffer;
        d->outputSize = frameCount;

Index: MadAudioReader.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/MadAudioReader.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- MadAudioReader.h    19 Jul 2007 04:05:58 -0000      1.4
+++ MadAudioReader.h    20 Jul 2007 23:04:21 -0000      1.5
@@ -38,12 +38,13 @@
        int get_num_channels();
        nframes_t get_length();
        int get_rate();
-       bool seek(nframes_t start);
-       nframes_t read(audio_sample_t** buffer, nframes_t frameCount);
        
        static bool can_decode(QString filename);
        
 protected:
+       bool seek_private(nframes_t start);
+       nframes_t read_private(audio_sample_t** buffer, nframes_t frameCount);
+       
        bool initDecoderInternal();
        unsigned long countFrames();
        bool createPcmSamples(mad_synth* synth);

Index: ResampleAudioReader.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ResampleAudioReader.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- ResampleAudioReader.cpp     19 Jul 2007 04:05:58 -0000      1.11
+++ ResampleAudioReader.cpp     20 Jul 2007 23:04:21 -0000      1.12
@@ -135,25 +135,23 @@
 
 // if no conversion is necessary, pass the seek straight to the child 
AudioReader,
 // otherwise convert and seek
-bool ResampleAudioReader::seek(nframes_t start)
+bool ResampleAudioReader::seek_private(nframes_t start)
 {
        Q_ASSERT(m_reader);
        
        if (audiodevice().get_sample_rate() == (uint)m_reader->get_rate()) {
-               AbstractAudioReader::seek(start);
                return m_reader->seek(start);
        }
        
        reset();
        
-       AbstractAudioReader::seek(start);
        return m_reader->seek(song_to_file_frame(start));
 }
 
 
 // If no conversion is necessary, pass the read straight to the child 
AudioReader,
 // otherwise get data from childreader and use libsamplerate to convert
-nframes_t ResampleAudioReader::read(audio_sample_t** buffer, nframes_t 
frameCount)
+nframes_t ResampleAudioReader::read_private(audio_sample_t** buffer, nframes_t 
frameCount)
 {
        nframes_t sourceFramesRead;
        nframes_t framesRead;

Index: ResampleAudioReader.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/ResampleAudioReader.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- ResampleAudioReader.h       19 Jul 2007 04:05:58 -0000      1.8
+++ ResampleAudioReader.h       20 Jul 2007 23:04:21 -0000      1.9
@@ -37,13 +37,14 @@
        int get_num_channels();
        nframes_t get_length();
        int get_rate();
-       bool seek(nframes_t start);
-       nframes_t read(audio_sample_t** buffer, nframes_t frameCount);
        
 protected:
        void init(int converter_type);
        void reset();
        
+       bool seek_private(nframes_t start);
+       nframes_t read_private(audio_sample_t** buffer, nframes_t frameCount);
+       
        nframes_t song_to_file_frame(nframes_t frame);
        nframes_t file_to_song_frame(nframes_t frame);
        

Index: SFAudioReader.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/SFAudioReader.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- SFAudioReader.cpp   19 Jul 2007 04:05:58 -0000      1.6
+++ SFAudioReader.cpp   20 Jul 2007 23:04:21 -0000      1.7
@@ -111,7 +111,7 @@
 }
 
 
-bool SFAudioReader::seek(nframes_t start)
+bool SFAudioReader::seek_private(nframes_t start)
 {
        Q_ASSERT(m_sf);
        
@@ -127,13 +127,11 @@
                return false;
        }
        
-       AbstractAudioReader::seek(start);
-       
        return true;
 }
 
 
-nframes_t SFAudioReader::read(audio_sample_t** buffer, nframes_t frameCount)
+nframes_t SFAudioReader::read_private(audio_sample_t** buffer, nframes_t 
frameCount)
 {
        Q_ASSERT(m_sf);
        

Index: SFAudioReader.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/SFAudioReader.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- SFAudioReader.h     18 Jul 2007 18:15:22 -0000      1.4
+++ SFAudioReader.h     20 Jul 2007 23:04:21 -0000      1.5
@@ -35,12 +35,13 @@
        int get_num_channels();
        nframes_t get_length();
        int get_rate();
-       bool seek(nframes_t start);
-       nframes_t read(audio_sample_t** buffer, nframes_t frameCount);
 
        static bool can_decode(QString filename);
 
 protected:
+       bool seek_private(nframes_t start);
+       nframes_t read_private(audio_sample_t** buffer, nframes_t frameCount);
+       
        SNDFILE*        m_sf;
        SF_INFO         m_sfinfo;
        audio_sample_t  *m_tmpBuffer;

Index: VorbisAudioReader.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/VorbisAudioReader.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- VorbisAudioReader.cpp       19 Jul 2007 04:05:58 -0000      1.8
+++ VorbisAudioReader.cpp       20 Jul 2007 23:04:21 -0000      1.9
@@ -110,7 +110,7 @@
 }
 
 
-bool VorbisAudioReader::seek(nframes_t start)
+bool VorbisAudioReader::seek_private(nframes_t start)
 {
        Q_ASSERT(m_file);
        
@@ -123,13 +123,11 @@
                return false;
        }
        
-       AbstractAudioReader::seek(start);
-       
        return true;
 }
 
 
-nframes_t VorbisAudioReader::read(audio_sample_t** buffer, nframes_t 
frameCount)
+nframes_t VorbisAudioReader::read_private(audio_sample_t** buffer, nframes_t 
frameCount)
 {
        Q_ASSERT(m_file);
        

Index: VorbisAudioReader.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/VorbisAudioReader.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- VorbisAudioReader.h 18 Jul 2007 18:15:23 -0000      1.5
+++ VorbisAudioReader.h 20 Jul 2007 23:04:21 -0000      1.6
@@ -37,12 +37,13 @@
        int get_num_channels();
        nframes_t get_length();
        int get_rate();
-       bool seek(nframes_t start);
-       nframes_t read(audio_sample_t** buffer, nframes_t frameCount);
 
        static bool can_decode(QString filename);
 
 protected:
+       bool seek_private(nframes_t start);
+       nframes_t read_private(audio_sample_t** buffer, nframes_t frameCount);
+       
        FILE*           m_file;
        OggVorbis_File  m_vf;
        vorbis_info*    m_vi;

Index: WPAudioReader.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/WPAudioReader.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- WPAudioReader.cpp   19 Jul 2007 06:58:39 -0000      1.3
+++ WPAudioReader.cpp   20 Jul 2007 23:04:21 -0000      1.4
@@ -103,7 +103,7 @@
 }
 
 
-bool WPAudioReader::seek(nframes_t start)
+bool WPAudioReader::seek_private(nframes_t start)
 {
        Q_ASSERT(m_wp);
        
@@ -117,13 +117,11 @@
                return false;
        }
        
-       AbstractAudioReader::seek(start);
-       
        return true;
 }
 
 
-nframes_t WPAudioReader::read(audio_sample_t** buffer, nframes_t frameCount)
+nframes_t WPAudioReader::read_private(audio_sample_t** buffer, nframes_t 
frameCount)
 {
        Q_ASSERT(m_wp);
        

Index: WPAudioReader.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/WPAudioReader.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- WPAudioReader.h     19 Jul 2007 06:58:39 -0000      1.2
+++ WPAudioReader.h     20 Jul 2007 23:04:21 -0000      1.3
@@ -35,12 +35,13 @@
        int get_num_channels();
        nframes_t get_length();
        int get_rate();
-       bool seek(nframes_t start);
-       nframes_t read(audio_sample_t** buffer, nframes_t frameCount);
 
        static bool can_decode(QString filename);
 
 protected:
+       bool seek_private(nframes_t start);
+       nframes_t read_private(audio_sample_t** buffer, nframes_t frameCount);
+       
        WavpackContext* m_wp;
        bool            m_isFloat;
        int             m_bitsPerSample;




reply via email to

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