From 7f3d4c57512973b0824b9bffde3541eabba2ff38 Mon Sep 17 00:00:00 2001 From: Martchus Date: Fri, 29 Dec 2023 17:07:14 +0100 Subject: [PATCH] Add ID3v2 frame definitions for publisher web page and user defined URLs --- id3/id3v2frameids.cpp | 8 ++++++++ id3/id3v2frameids.h | 12 ++++++++++++ 2 files changed, 20 insertions(+) diff --git a/id3/id3v2frameids.cpp b/id3/id3v2frameids.cpp index 13ade9a..92bd8e8 100644 --- a/id3/id3v2frameids.cpp +++ b/id3/id3v2frameids.cpp @@ -85,6 +85,10 @@ std::uint32_t convertToShortId(std::uint32_t id) return sRating; case lISRC: return sISRC; + case lPublisherWebpage: + return sPublisherWebpage; + case lUserDefinedURL: + return sUserDefinedURL; default: return 0; } @@ -155,6 +159,10 @@ std::uint32_t convertToLongId(std::uint32_t id) return lRating; case sISRC: return lISRC; + case sPublisherWebpage: + return lPublisherWebpage; + case sUserDefinedURL: + return lUserDefinedURL; default: return 0; } diff --git a/id3/id3v2frameids.h b/id3/id3v2frameids.h index 979f38d..a8939f2 100644 --- a/id3/id3v2frameids.h +++ b/id3/id3v2frameids.h @@ -49,6 +49,8 @@ enum KnownValue : std::uint32_t { lMood = 0x544D4F4F, /**< TMOO */ lISRC = 0x54535243, /**< TSRC */ lUserDefinedText = 0x54585858, /**< TXXX */ + lPublisherWebpage = 0x57505542, /**< WPUB */ + lUserDefinedURL = 0x57585858, /**< WXXX */ sAlbum = 0x54414c, /**< ?TAL */ sArtist = 0x545031, /**< ?TP1 */ @@ -82,6 +84,8 @@ enum KnownValue : std::uint32_t { sCopyright = 0x544352, /**< TCR */ sISRC = 0x545243, /**< TRC */ sUserDefinedText = 0x545858, /**< ?TXX */ + sPublisherWebpage = 0x575042, /**< ?WPB */ + sUserDefinedURL = 0x575858, /**< ?WXX */ }; TAG_PARSER_EXPORT std::uint32_t convertToShortId(std::uint32_t id); @@ -117,6 +121,14 @@ constexpr bool isTextFrame(std::uint32_t id) } } +/*! + * \brief Returns an indication whether the specified \a id is a URL frame id. + */ +constexpr bool isUrlFrame(std::uint32_t id) +{ + return (id & 0xFF000000u) == 0x57000000u && (id != Id3v2FrameIds::lUserDefinedURL); +} + } // namespace Id3v2FrameIds } // namespace TagParser