diff --git a/3rdparty/taglib/audioproperties.cpp b/3rdparty/taglib/audioproperties.cpp index f9602ffba..fbae22ef3 100644 --- a/3rdparty/taglib/audioproperties.cpp +++ b/3rdparty/taglib/audioproperties.cpp @@ -23,79 +23,27 @@ * http://www.mozilla.org/MPL/ * ***************************************************************************/ -#include - -#include "aiffproperties.h" -#include "apeproperties.h" -#include "asfproperties.h" -#include "flacproperties.h" -#include "mp4properties.h" -#include "mpcproperties.h" -#include "mpegproperties.h" -#include "opusproperties.h" -#include "speexproperties.h" -#include "trueaudioproperties.h" -#include "vorbisproperties.h" -#include "wavproperties.h" -#include "wavpackproperties.h" -#include "dsfproperties.h" -#include "dsdiffproperties.h" +#include #include "audioproperties.h" using namespace Strawberry_TagLib::TagLib; -// This macro is a workaround for the fact that we can't add virtual functions. -// Should be true virtual functions in taglib2. - -#define VIRTUAL_FUNCTION_WORKAROUND(function_name, default_value) \ - if (dynamic_cast(this)) \ - return dynamic_cast(this)->function_name(); \ - else if (dynamic_cast(this)) \ - return dynamic_cast(this)->function_name(); \ - else if (dynamic_cast(this)) \ - return dynamic_cast(this)->function_name(); \ - else if (dynamic_cast(this)) \ - return dynamic_cast(this)->function_name(); \ - else if (dynamic_cast(this)) \ - return dynamic_cast(this)->function_name(); \ - else if (dynamic_cast(this)) \ - return dynamic_cast(this)->function_name(); \ - else if (dynamic_cast(this)) \ - return dynamic_cast(this)->function_name(); \ - else if (dynamic_cast(this)) \ - return dynamic_cast(this)->function_name(); \ - else if (dynamic_cast(this)) \ - return dynamic_cast(this)->function_name(); \ - else if (dynamic_cast(this)) \ - return dynamic_cast(this)->function_name(); \ - else if (dynamic_cast(this)) \ - return dynamic_cast(this)->function_name(); \ - else if (dynamic_cast(this)) \ - return dynamic_cast(this)->function_name(); \ - else if (dynamic_cast(this)) \ - return dynamic_cast(this)->function_name(); \ - else if (dynamic_cast(this)) \ - return dynamic_cast(this)->function_name(); \ - else if (dynamic_cast(this)) \ - return dynamic_cast(this)->function_name(); \ - else \ - return (default_value); - -class AudioProperties::AudioPropertiesPrivate {}; - //////////////////////////////////////////////////////////////////////////////// // public methods //////////////////////////////////////////////////////////////////////////////// AudioProperties::~AudioProperties() {} -int AudioProperties::lengthInSeconds() const { - VIRTUAL_FUNCTION_WORKAROUND(lengthInSeconds, 0) -} -int AudioProperties::lengthInMilliseconds() const { - VIRTUAL_FUNCTION_WORKAROUND(lengthInMilliseconds, 0) +String AudioProperties::toString() const { + + StringList desc; + desc.append("Audio"); + desc.append(String::number(lengthInSeconds()) + " seconds"); + desc.append(String::number(bitrate()) + " kbps"); + return desc.toString(", "); + } //////////////////////////////////////////////////////////////////////////////// diff --git a/3rdparty/taglib/audioproperties.h b/3rdparty/taglib/audioproperties.h index f33b7d693..95691c7f0 100644 --- a/3rdparty/taglib/audioproperties.h +++ b/3rdparty/taglib/audioproperties.h @@ -67,14 +67,14 @@ class TAGLIB_EXPORT AudioProperties { * * \see lengthInMilliseconds() */ - virtual int lengthInSeconds() const; + virtual int lengthInSeconds() const = 0; /*! * Returns the length of the file in milliseconds. * * \see lengthInSeconds() */ - virtual int lengthInMilliseconds() const; + virtual int lengthInMilliseconds() const = 0; /*! * Returns the most appropriate bit rate for the file in kb/s. For constant bitrate formats this is simply the bitrate of the file. @@ -92,6 +92,11 @@ class TAGLIB_EXPORT AudioProperties { */ virtual int channels() const = 0; + /*! + * Returns description of the audio file. + */ + virtual String toString() const; + protected: /*! * Construct an audio properties instance.