From: Scott Wheeler Date: Fri, 16 May 2008 07:09:20 +0000 (+0000) Subject: Add a skeleton (unimplemented) AIFF properties class. X-Git-Tag: v1.6rc1~77 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c52f3a497415960612a0d3806458b5fb5e1ebd40;p=taglib Add a skeleton (unimplemented) AIFF properties class. git-svn-id: svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib@808255 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- diff --git a/taglib/CMakeLists.txt b/taglib/CMakeLists.txt index 6e0970e0..73347e01 100644 --- a/taglib/CMakeLists.txt +++ b/taglib/CMakeLists.txt @@ -125,6 +125,7 @@ riff/rifffile.cpp SET(aiff_SRCS riff/aiff/aifffile.cpp +riff/aiff/aiffproperties.cpp ) SET(toolkit_SRCS diff --git a/taglib/riff/aiff/CMakeLists.txt b/taglib/riff/aiff/CMakeLists.txt index 463cbe43..7e8cdd66 100644 --- a/taglib/riff/aiff/CMakeLists.txt +++ b/taglib/riff/aiff/CMakeLists.txt @@ -1 +1 @@ -INSTALL( FILES aifffile.h DESTINATION ${INCLUDE_INSTALL_DIR}/taglib) +INSTALL( FILES aifffile.h aiffproperties.h DESTINATION ${INCLUDE_INSTALL_DIR}/taglib) diff --git a/taglib/riff/aiff/Makefile.am b/taglib/riff/aiff/Makefile.am index c465245c..dff13a5a 100644 --- a/taglib/riff/aiff/Makefile.am +++ b/taglib/riff/aiff/Makefile.am @@ -7,7 +7,7 @@ INCLUDES = \ noinst_LTLIBRARIES = libaiff.la -libaiff_la_SOURCES = aifffile.cpp +libaiff_la_SOURCES = aifffile.cpp aiffproperties.cpp -taglib_include_HEADERS = aifffile.h +taglib_include_HEADERS = aifffile.h aiffproperties.h taglib_includedir = $(includedir)/taglib diff --git a/taglib/riff/aiff/aifffile.h b/taglib/riff/aiff/aifffile.h index f81b4a15..d2408c12 100644 --- a/taglib/riff/aiff/aifffile.h +++ b/taglib/riff/aiff/aifffile.h @@ -26,9 +26,9 @@ #ifndef TAGLIB_AIFFFILE_H #define TAGLIB_AIFFFILE_H -#include -#include -#include +#include "rifffile.h" +#include "id3v2tag.h" +#include "aiffproperties.h" namespace TagLib { @@ -47,8 +47,6 @@ namespace TagLib { namespace AIFF { - class Properties : public AudioProperties {}; - //! An implementation of TagLib::File with AIFF specific methods /*! diff --git a/taglib/riff/aiff/aiffproperties.cpp b/taglib/riff/aiff/aiffproperties.cpp new file mode 100644 index 00000000..dd4a5244 --- /dev/null +++ b/taglib/riff/aiff/aiffproperties.cpp @@ -0,0 +1,95 @@ +/*************************************************************************** + copyright : (C) 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * + * USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#include +#include +#include + +#include "aiffproperties.h" + +using namespace TagLib; + +class RIFF::AIFF::Properties::PropertiesPrivate +{ +public: + PropertiesPrivate() : + length(0), + bitrate(0), + sampleRate(0), + channels(0) + { + + } + + int length; + int bitrate; + int sampleRate; + int channels; +}; + +//////////////////////////////////////////////////////////////////////////////// +// public members +//////////////////////////////////////////////////////////////////////////////// + +RIFF::AIFF::Properties::Properties(const ByteVector &data, ReadStyle style) : AudioProperties(style) +{ + d = new PropertiesPrivate; + read(data); +} + +RIFF::AIFF::Properties::~Properties() +{ + delete d; +} + +int RIFF::AIFF::Properties::length() const +{ + return d->length; +} + +int RIFF::AIFF::Properties::bitrate() const +{ + return d->bitrate; +} + +int RIFF::AIFF::Properties::sampleRate() const +{ + return d->sampleRate; +} + +int RIFF::AIFF::Properties::channels() const +{ + return d->channels; +} + + +//////////////////////////////////////////////////////////////////////////////// +// private members +//////////////////////////////////////////////////////////////////////////////// + +void RIFF::AIFF::Properties::read(const ByteVector &data) +{ + +} diff --git a/taglib/riff/aiff/aiffproperties.h b/taglib/riff/aiff/aiffproperties.h new file mode 100644 index 00000000..1408cb3e --- /dev/null +++ b/taglib/riff/aiff/aiffproperties.h @@ -0,0 +1,80 @@ +/*************************************************************************** + copyright : (C) 2008 by Scott Wheeler + email : wheeler@kde.org +***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * + * USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_AIFFPROPERTIES_H +#define TAGLIB_AIFFPROPERTIES_H + +#include "audioproperties.h" + +namespace TagLib { + + namespace RIFF { + + namespace AIFF { + + class File; + + //! An implementation of audio property reading for AIFF + + /*! + * This reads the data from an AIFF stream found in the AudioProperties + * API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of AIFF::Properties with the data read from the + * ByteVector \a data. + */ + Properties(const ByteVector &data, ReadStyle style); + + /*! + * Destroys this AIFF::Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void read(const ByteVector &data); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } + } +} + +#endif