[Top][All Lists]
[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;
- [Traverso-commit] traverso/src/core AbstractAudioReader.cpp Abstr..., Ben Levitt, 2007/07/08
- [Traverso-commit] traverso/src/core AbstractAudioReader.cpp Abstr..., Ben Levitt, 2007/07/09
- [Traverso-commit] traverso/src/core AbstractAudioReader.cpp Abstr..., Ben Levitt, 2007/07/13
- [Traverso-commit] traverso/src/core AbstractAudioReader.cpp Abstr..., Ben Levitt, 2007/07/15
- [Traverso-commit] traverso/src/core AbstractAudioReader.cpp Abstr..., Ben Levitt, 2007/07/18
- [Traverso-commit] traverso/src/core AbstractAudioReader.cpp Abstr..., Ben Levitt, 2007/07/19
- [Traverso-commit] traverso/src/core AbstractAudioReader.cpp Abstr...,
Ben Levitt <=
- [Traverso-commit] traverso/src/core AbstractAudioReader.cpp Abstr..., Ben Levitt, 2007/07/24
- [Traverso-commit] traverso/src/core AbstractAudioReader.cpp Abstr..., Ben Levitt, 2007/07/25