diff options
author | Jason E. Hale <jhale@FreeBSD.org> | 2024-06-06 18:19:07 -0400 |
---|---|---|
committer | Jason E. Hale <jhale@FreeBSD.org> | 2024-06-06 20:21:32 -0400 |
commit | 7dd9ce8f770fca5e970d3c2e968b054d4569f7e3 (patch) | |
tree | 79721f8c5d5cc37df16e9c00efdb4268d4ee2624 /audio | |
parent | multimedia/musique: Prepare for Taglib 2.x (diff) |
audio/easytag: Prepare for Taglib 2.x
PR: 276677
Obtained from: Arch Linux (with some tweaks)
Diffstat (limited to 'audio')
-rw-r--r-- | audio/easytag/files/patch-src_tags_gio__wrapper.cc | 105 | ||||
-rw-r--r-- | audio/easytag/files/patch-src_tags_gio__wrapper.h | 45 | ||||
-rw-r--r-- | audio/easytag/files/patch-src_tags_mp4__header.cc | 13 | ||||
-rw-r--r-- | audio/easytag/files/patch-src_tags_mp4__tag.cc | 57 |
4 files changed, 220 insertions, 0 deletions
diff --git a/audio/easytag/files/patch-src_tags_gio__wrapper.cc b/audio/easytag/files/patch-src_tags_gio__wrapper.cc new file mode 100644 index 000000000000..e1fa5d491485 --- /dev/null +++ b/audio/easytag/files/patch-src_tags_gio__wrapper.cc @@ -0,0 +1,105 @@ +Fix build with Taglib 2.x + +Based on patch from Arch Linux: +https://gitlab.archlinux.org/archlinux/packaging/packages/easytag/-/blob/main/taglib-2.patch?ref_type=heads + +--- src/tags/gio_wrapper.cc.orig 2016-06-24 14:57:32 UTC ++++ src/tags/gio_wrapper.cc +@@ -47,11 +47,11 @@ TagLib::ByteVector + } + + TagLib::ByteVector +-GIO_InputStream::readBlock (TagLib::ulong len) ++GIO_InputStream::readBlock (unsigned long len) + { + if (error) + { +- return TagLib::ByteVector::null; ++ return TagLib::ByteVector(); + } + + TagLib::ByteVector rv (len, 0); +@@ -70,14 +70,24 @@ GIO_InputStream::insert (TagLib::ByteVector const &dat + + void + GIO_InputStream::insert (TagLib::ByteVector const &data, +- TagLib::ulong start, +- TagLib::ulong replace) ++#if TAGLIB_MAJOR_VERSION >= 2 ++ TagLib::offset_t start, ++ size_t replace) ++#else ++ unsigned long start, ++ unsigned long replace) ++#endif ++ + { + g_warning ("%s", "Trying to write to read-only file!"); + } + + void +-GIO_InputStream::removeBlock (TagLib::ulong start, TagLib::ulong len) ++#if TAGLIB_MAJOR_VERSION >= 2 ++GIO_InputStream::removeBlock (TagLib::offset_t start, size_t len) ++#else ++GIO_InputStream::removeBlock (unsigned long start, unsigned long len) ++#endif + { + g_warning ("%s", "Trying to write to read-only file!"); + } +@@ -200,11 +210,11 @@ TagLib::ByteVector + } + + TagLib::ByteVector +-GIO_IOStream::readBlock (TagLib::ulong len) ++GIO_IOStream::readBlock (unsigned long len) + { + if (error) + { +- return TagLib::ByteVector::null; ++ return TagLib::ByteVector(); + } + + gsize bytes = 0; +@@ -239,8 +249,14 @@ GIO_IOStream::insert (TagLib::ByteVector const &data, + + void + GIO_IOStream::insert (TagLib::ByteVector const &data, +- TagLib::ulong start, +- TagLib::ulong replace) ++#if TAGLIB_MAJOR_VERSION >= 2 ++ TagLib::offset_t start, ++ size_t replace) ++#else ++ unsigned long start, ++ unsigned long replace) ++#endif ++ + { + if (error) + { +@@ -278,7 +294,7 @@ GIO_IOStream::insert (TagLib::ByteVector const &data, + seek (0); + + while (g_input_stream_read_all (istream, buffer, +- MIN (G_N_ELEMENTS (buffer), start), ++ MIN (G_N_ELEMENTS (buffer), (unsigned long)start), + &r, NULL, &error) && r > 0) + { + gsize w; +@@ -351,9 +367,13 @@ void + } + + void +-GIO_IOStream::removeBlock (TagLib::ulong start, TagLib::ulong len) ++#if TAGLIB_MAJOR_VERSION >= 2 ++GIO_IOStream::removeBlock (TagLib::offset_t start, size_t len) ++#else ++GIO_IOStream::removeBlock (unsigned long start, unsigned long len) ++#endif + { +- if (start + len >= (TagLib::ulong)length ()) ++ if (start + len >= (unsigned long)length ()) + { + truncate (start); + return; diff --git a/audio/easytag/files/patch-src_tags_gio__wrapper.h b/audio/easytag/files/patch-src_tags_gio__wrapper.h new file mode 100644 index 000000000000..fdb8c1f36362 --- /dev/null +++ b/audio/easytag/files/patch-src_tags_gio__wrapper.h @@ -0,0 +1,45 @@ +Fix build with Taglib 2.x + +Based on patch from Arch Linux: +https://gitlab.archlinux.org/archlinux/packaging/packages/easytag/-/blob/main/taglib-2.patch?ref_type=heads + +--- src/tags/gio_wrapper.h.orig 2016-06-24 14:57:32 UTC ++++ src/tags/gio_wrapper.h +@@ -33,10 +33,15 @@ class GIO_InputStream : public TagLib::IOStream (publi + GIO_InputStream (GFile *file_); + virtual ~GIO_InputStream (); + virtual TagLib::FileName name () const; +- virtual TagLib::ByteVector readBlock (TagLib::ulong length); ++ virtual TagLib::ByteVector readBlock (unsigned long length); + virtual void writeBlock (TagLib::ByteVector const &data); +- virtual void insert (TagLib::ByteVector const &data, TagLib::ulong start = 0, TagLib::ulong replace = 0); +- virtual void removeBlock (TagLib::ulong start = 0, TagLib::ulong length = 0); ++#if TAGLIB_MAJOR_VERSION >= 2 ++ virtual void insert (TagLib::ByteVector const &data, TagLib::offset_t start = 0, size_t replace = 0); ++ virtual void removeBlock (TagLib::offset_t start = 0, size_t length = 0); ++#else ++ virtual void insert (TagLib::ByteVector const &data, unsigned long start = 0, unsigned long replace = 0); ++ virtual void removeBlock (unsigned long start = 0, unsigned long length = 0); ++#endif + virtual bool readOnly () const; + virtual bool isOpen () const; + virtual void seek (long int offset, TagLib::IOStream::Position p = TagLib::IOStream::Beginning); +@@ -61,10 +66,15 @@ class GIO_IOStream : public TagLib::IOStream (public) + GIO_IOStream (GFile *file_); + virtual ~GIO_IOStream (); + virtual TagLib::FileName name () const; +- virtual TagLib::ByteVector readBlock (TagLib::ulong length); ++ virtual TagLib::ByteVector readBlock (unsigned long length); + virtual void writeBlock (TagLib::ByteVector const &data); +- virtual void insert (TagLib::ByteVector const &data, TagLib::ulong start = 0, TagLib::ulong replace = 0); +- virtual void removeBlock (TagLib::ulong start = 0, TagLib::ulong len = 0); ++#if TAGLIB_MAJOR_VERSION >= 2 ++ virtual void insert (TagLib::ByteVector const &data, TagLib::offset_t start = 0, size_t replace = 0); ++ virtual void removeBlock (TagLib::offset_t start = 0, size_t len = 0); ++#else ++ virtual void insert (TagLib::ByteVector const &data, unsigned long start = 0, unsigned long replace = 0); ++ virtual void removeBlock (unsigned long start = 0, unsigned long len = 0); ++#endif + virtual bool readOnly () const; + virtual bool isOpen () const; + virtual void seek (long int offset, TagLib::IOStream::Position p = TagLib::IOStream::Beginning); diff --git a/audio/easytag/files/patch-src_tags_mp4__header.cc b/audio/easytag/files/patch-src_tags_mp4__header.cc new file mode 100644 index 000000000000..d76f15272656 --- /dev/null +++ b/audio/easytag/files/patch-src_tags_mp4__header.cc @@ -0,0 +1,13 @@ +TagLib::AudioProperties::length() is deprecated in Taglib 2.x. + +--- src/tags/mp4_header.cc.orig 2016-06-24 14:57:32 UTC ++++ src/tags/mp4_header.cc +@@ -105,7 +105,7 @@ et_mp4_header_read_file_info (GFile *file, + ETFileInfo->bitrate = properties->bitrate (); + ETFileInfo->samplerate = properties->sampleRate (); + ETFileInfo->mode = properties->channels (); +- ETFileInfo->duration = properties->length (); ++ ETFileInfo->duration = properties->lengthInSeconds (); + + return TRUE; + } diff --git a/audio/easytag/files/patch-src_tags_mp4__tag.cc b/audio/easytag/files/patch-src_tags_mp4__tag.cc new file mode 100644 index 000000000000..db859f696392 --- /dev/null +++ b/audio/easytag/files/patch-src_tags_mp4__tag.cc @@ -0,0 +1,57 @@ +Fix build with Taglib 2.x + +Obtained from Arch Linux: +https://gitlab.archlinux.org/archlinux/packaging/packages/easytag/-/blob/main/taglib-2.patch?ref_type=heads + +--- src/tags/mp4_tag.cc.orig 2016-06-24 14:57:32 UTC ++++ src/tags/mp4_tag.cc +@@ -222,7 +222,7 @@ mp4tag_read_file_tag (GFile *file, + FileTag->encoded_by = g_strdup (encodedbys.front ().toCString (true)); + } + +- const TagLib::MP4::ItemListMap &extra_items = tag->itemListMap (); ++ const TagLib::MP4::ItemMap &extra_items = tag->itemMap (); + + /* Album Artist */ + #if (TAGLIB_MAJOR_VERSION == 1) && (TAGLIB_MINOR_VERSION < 10) +@@ -437,25 +437,12 @@ mp4tag_write_file_tag (const ET_File *ETFile, + fields.insert ("ENCODEDBY", string); + } + +- TagLib::MP4::ItemListMap &extra_items = tag->itemListMap (); +- + /* Album artist. */ + if (!et_str_empty (FileTag->album_artist)) + { + TagLib::String string (FileTag->album_artist, TagLib::String::UTF8); +-#if (TAGLIB_MAJOR_VERSION == 1) && (TAGLIB_MINOR_VERSION < 10) +- /* No "ALBUMARTIST" support in TagLib until 1.10; use atom directly. */ +- extra_items.insert ("aART", TagLib::MP4::Item (string)); +-#else + fields.insert ("ALBUMARTIST", string); +-#endif + } +-#if (TAGLIB_MAJOR_VERSION == 1) && (TAGLIB_MINOR_VERSION < 10) +- else +- { +- extra_items.erase ("aART"); +- } +-#endif + + /*********** + * Picture * +@@ -491,12 +478,12 @@ mp4tag_write_file_tag (const ET_File *ETFile, + TagLib::MP4::CoverArt art (f, TagLib::ByteVector((char *)data, + data_size)); + +- extra_items.insert ("covr", ++ tag->setItem("covr", + TagLib::MP4::Item (TagLib::MP4::CoverArtList ().append (art))); + } + else + { +- extra_items.erase ("covr"); ++ tag->removeItem("covr"); + } + + tag->setProperties (fields); |