From 39e8cbbefb5e70d1ddc7f294bcfc56d184b301ad Mon Sep 17 00:00:00 2001 From: "Stephen F. Booth" Date: Fri, 24 Jun 2011 10:43:13 -0400 Subject: Added sampleFrames() to AIFFProperties and WAVProperties --- taglib/riff/aiff/aiffproperties.cpp | 13 ++++++++++--- taglib/riff/aiff/aiffproperties.h | 1 + taglib/riff/wav/wavproperties.cpp | 8 ++++++++ taglib/riff/wav/wavproperties.h | 1 + 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/taglib/riff/aiff/aiffproperties.cpp b/taglib/riff/aiff/aiffproperties.cpp index 77c3d277..647696fd 100644 --- a/taglib/riff/aiff/aiffproperties.cpp +++ b/taglib/riff/aiff/aiffproperties.cpp @@ -85,7 +85,8 @@ public: bitrate(0), sampleRate(0), channels(0), - sampleWidth(0) + sampleWidth(0), + sampleFrames(0) { } @@ -95,6 +96,7 @@ public: int sampleRate; int channels; int sampleWidth; + uint sampleFrames; }; //////////////////////////////////////////////////////////////////////////////// @@ -137,6 +139,11 @@ int RIFF::AIFF::Properties::sampleWidth() const return d->sampleWidth; } +uint RIFF::AIFF::Properties::sampleFrames() const +{ + return d->sampleFrames; +} + //////////////////////////////////////////////////////////////////////////////// // private members //////////////////////////////////////////////////////////////////////////////// @@ -144,10 +151,10 @@ int RIFF::AIFF::Properties::sampleWidth() const void RIFF::AIFF::Properties::read(const ByteVector &data) { d->channels = data.mid(0, 2).toShort(); - uint sampleFrames = data.mid(2, 4).toUInt(); + d->sampleFrames = data.mid(2, 4).toUInt(); d->sampleWidth = data.mid(6, 2).toShort(); double sampleRate = ConvertFromIeeeExtended(reinterpret_cast(data.mid(8, 10).data())); d->sampleRate = sampleRate; d->bitrate = (sampleRate * d->sampleWidth * d->channels) / 1000.0; - d->length = sampleFrames / d->sampleRate; + d->length = d->sampleFrames / d->sampleRate; } diff --git a/taglib/riff/aiff/aiffproperties.h b/taglib/riff/aiff/aiffproperties.h index 4c578dc6..ceefe32e 100644 --- a/taglib/riff/aiff/aiffproperties.h +++ b/taglib/riff/aiff/aiffproperties.h @@ -65,6 +65,7 @@ namespace TagLib { virtual int channels() const; int sampleWidth() const; + uint sampleFrames() const; private: Properties(const Properties &); diff --git a/taglib/riff/wav/wavproperties.cpp b/taglib/riff/wav/wavproperties.cpp index 37216860..a50979bd 100644 --- a/taglib/riff/wav/wavproperties.cpp +++ b/taglib/riff/wav/wavproperties.cpp @@ -42,6 +42,7 @@ public: sampleRate(0), channels(0), sampleWidth(0), + sampleFrames(0), streamLength(streamLength) { @@ -53,6 +54,7 @@ public: int sampleRate; int channels; int sampleWidth; + uint sampleFrames; uint streamLength; }; @@ -102,6 +104,11 @@ int RIFF::WAV::Properties::sampleWidth() const return d->sampleWidth; } +uint RIFF::WAV::Properties::sampleFrames() const +{ + return d->sampleFrames; +} + //////////////////////////////////////////////////////////////////////////////// // private members //////////////////////////////////////////////////////////////////////////////// @@ -117,4 +124,5 @@ void RIFF::WAV::Properties::read(const ByteVector &data) d->bitrate = byteRate * 8 / 1000; d->length = byteRate > 0 ? d->streamLength / byteRate : 0; + d->sampleFrames = d->streamLength / (d->channels * (d->sampleWidth / 8)); } diff --git a/taglib/riff/wav/wavproperties.h b/taglib/riff/wav/wavproperties.h index bf87ffe2..e75ec0fb 100644 --- a/taglib/riff/wav/wavproperties.h +++ b/taglib/riff/wav/wavproperties.h @@ -74,6 +74,7 @@ namespace TagLib { virtual int channels() const; int sampleWidth() const; + uint sampleFrames() const; private: Properties(const Properties &); -- cgit v1.2.3 From 937d69f91d12615315b743a8da62adb825d97a8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Lalinsk=C3=BD?= Date: Sat, 25 Jun 2011 12:17:31 +0200 Subject: Fix indentation --- taglib/riff/aiff/aiffproperties.cpp | 2 +- taglib/riff/wav/wavproperties.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/taglib/riff/aiff/aiffproperties.cpp b/taglib/riff/aiff/aiffproperties.cpp index 647696fd..c7cbaa34 100644 --- a/taglib/riff/aiff/aiffproperties.cpp +++ b/taglib/riff/aiff/aiffproperties.cpp @@ -86,7 +86,7 @@ public: sampleRate(0), channels(0), sampleWidth(0), - sampleFrames(0) + sampleFrames(0) { } diff --git a/taglib/riff/wav/wavproperties.cpp b/taglib/riff/wav/wavproperties.cpp index a50979bd..6c3e2f41 100644 --- a/taglib/riff/wav/wavproperties.cpp +++ b/taglib/riff/wav/wavproperties.cpp @@ -42,7 +42,7 @@ public: sampleRate(0), channels(0), sampleWidth(0), - sampleFrames(0), + sampleFrames(0), streamLength(streamLength) { -- cgit v1.2.3