From 1b28af00a202c581a61c4452b6437f940687c234 Mon Sep 17 00:00:00 2001 From: Scott Wheeler Date: Tue, 30 Mar 2004 13:50:26 +0000 Subject: [PATCH] Add a constructor that takes an ID3v2::FrameFactory. CCMAIL:Jonathan Giannuzzi git-svn-id: svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib@299846 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- mpeg/mpegfile.cpp | 15 +++++++++++++-- mpeg/mpegfile.h | 11 +++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/mpeg/mpegfile.cpp b/mpeg/mpegfile.cpp index 96a4af0c..bfb56e12 100644 --- a/mpeg/mpegfile.cpp +++ b/mpeg/mpegfile.cpp @@ -167,8 +167,8 @@ namespace TagLib { class MPEG::File::FilePrivate { public: - FilePrivate() : - ID3v2FrameFactory(ID3v2::FrameFactory::instance()), + FilePrivate(ID3v2::FrameFactory *frameFactory = ID3v2::FrameFactory::instance()) : + ID3v2FrameFactory(frameFactory), ID3v2Tag(0), ID3v2Location(-1), ID3v2OriginalSize(0), @@ -219,6 +219,17 @@ MPEG::File::File(const char *file, bool readProperties, } } +MPEG::File::File(const char *file, ID3v2::FrameFactory *frameFactory, + bool readProperties, Properties::ReadStyle propertiesStyle) : + TagLib::File(file) +{ + d = new FilePrivate(frameFactory); + if(isOpen()) { + d->tag = new MPEGTag(this); + read(readProperties, propertiesStyle); + } +} + MPEG::File::~File() { delete d; diff --git a/mpeg/mpegfile.h b/mpeg/mpegfile.h index f76fd693..ff0ddbc6 100644 --- a/mpeg/mpegfile.h +++ b/mpeg/mpegfile.h @@ -69,6 +69,17 @@ namespace TagLib { File(const char *file, bool readProperties = true, Properties::ReadStyle propertiesStyle = Properties::Average); + /*! + * Contructs an MPEG file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. The frames will be created using + * \a frameFactory. + */ + // BIC: merge with the above constructor + File(const char *file, ID3v2::FrameFactory *frameFactory, + bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + /*! * Destroys this instance of the File. */