From 2227d2004ba89408354c2601200bdfc84059a881 Mon Sep 17 00:00:00 2001 From: Scott Wheeler Date: Sat, 10 Apr 2004 15:50:17 +0000 Subject: [PATCH] Fix the same bug that I fixed in MPEG last week -- allow the lib user to specify the ID3v2FrameFactory in the FLAC::File construstor. git-svn-id: svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib@302629 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- flac/flacfile.cpp | 12 +++++++++++- flac/flacfile.h | 15 ++++++++++++++- mpeg/mpegfile.cpp | 2 +- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/flac/flacfile.cpp b/flac/flacfile.cpp index 7346f9ed..4ba144d0 100644 --- a/flac/flacfile.cpp +++ b/flac/flacfile.cpp @@ -88,12 +88,22 @@ public: //////////////////////////////////////////////////////////////////////////////// FLAC::File::File(const char *file, bool readProperties, - Properties::ReadStyle propertiesStyle) : TagLib::File(file) + Properties::ReadStyle propertiesStyle) : + TagLib::File(file) { d = new FilePrivate; read(readProperties, propertiesStyle); } +FLAC::File::File(const char *file, ID3v2::FrameFactory *frameFactory, + bool readProperties, Properties::ReadStyle propertiesStyle) : + TagLib::File(file) +{ + d = new FilePrivate; + d->ID3v2FrameFactory = frameFactory; + read(readProperties, propertiesStyle); +} + FLAC::File::~File() { delete d; diff --git a/flac/flacfile.h b/flac/flacfile.h index 56e506e0..2096fe6f 100644 --- a/flac/flacfile.h +++ b/flac/flacfile.h @@ -57,13 +57,26 @@ namespace TagLib { { public: /*! - * Contructs an FLAC file from \a file. If \a readProperties is true the + * Contructs a FLAC 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. */ File(const char *file, bool readProperties = true, Properties::ReadStyle propertiesStyle = Properties::Average); + /*! + * Contructs a FLAC 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. + * + * If this file contains and ID3v2 tag 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. */ diff --git a/mpeg/mpegfile.cpp b/mpeg/mpegfile.cpp index bfb56e12..196e8552 100644 --- a/mpeg/mpegfile.cpp +++ b/mpeg/mpegfile.cpp @@ -315,7 +315,7 @@ ID3v2::Tag *MPEG::File::ID3v2Tag(bool create) // no ID3v2 tag exists and we've been asked to create one - d->ID3v2Tag = new ID3v2::Tag(); + d->ID3v2Tag = new ID3v2::Tag; return d->ID3v2Tag; }