From f1193d0d21243f1d5f88436adeb366adca191a78 Mon Sep 17 00:00:00 2001 From: chris Date: Mon, 9 Feb 2004 00:30:24 +0000 Subject: Initial import of TagLib 1.0. TagLib is a library for reading and editing the meta-data of several popular audio formats. Currently it supports both ID3v1 and ID3v2 for MP3 files, Ogg Vorbis comments and ID3 tags and Vorbis comments in FLAC files. --- audio/taglib/DESCR | 3 + audio/taglib/Makefile | 25 +++++ audio/taglib/PLIST | 53 ++++++++++ audio/taglib/buildlink2.mk | 26 +++++ audio/taglib/buildlink3.mk | 17 +++ audio/taglib/distinfo | 5 + audio/taglib/files/id3lib_strings.h | 203 ++++++++++++++++++++++++++++++++++++ audio/taglib/patches/patch-aa | 18 ++++ 8 files changed, 350 insertions(+) create mode 100644 audio/taglib/DESCR create mode 100644 audio/taglib/Makefile create mode 100644 audio/taglib/PLIST create mode 100644 audio/taglib/buildlink2.mk create mode 100644 audio/taglib/buildlink3.mk create mode 100644 audio/taglib/distinfo create mode 100644 audio/taglib/files/id3lib_strings.h create mode 100644 audio/taglib/patches/patch-aa (limited to 'audio') diff --git a/audio/taglib/DESCR b/audio/taglib/DESCR new file mode 100644 index 00000000000..84d62429110 --- /dev/null +++ b/audio/taglib/DESCR @@ -0,0 +1,3 @@ +TagLib is a library for reading and editing the meta-data of several popular +audio formats. Currently it supports both ID3v1 and ID3v2 for MP3 files, Ogg +Vorbis comments and ID3 tags and Vorbis comments in FLAC files. diff --git a/audio/taglib/Makefile b/audio/taglib/Makefile new file mode 100644 index 00000000000..f7d8b1b9eed --- /dev/null +++ b/audio/taglib/Makefile @@ -0,0 +1,25 @@ +# $NetBSD: Makefile,v 1.1.1.1 2004/02/09 00:30:24 chris Exp $ +# + +DISTNAME= taglib-1.0 +CATEGORIES= audio +MASTER_SITES= http://ktown.kde.org/~wheeler/taglib/ + +MAINTAINER= chris@NetBSD.org +HOMEPAGE= http://ktown.kde.org/~wheeler/taglib/ +COMMENT= Library for accessing id tags in mp3 and ogg files + +USE_LANGUAGES= c c++ + +USE_BUILDLINK2= YES +GNU_CONFIGURE= YES +USE_LIBTOOL= YES +LIBTOOL_OVERRIDE= ${WRKSRC}/libtool + +pre-build: + ${CP} ${FILESDIR}/id3lib_strings.h ${WRKSRC}/taglib/toolkit/. + +post-install: + ${INSTALL} -o ${ROOT_USER} -g ${ROOT_GROUP} -m 444 ${FILESDIR}/id3lib_strings.h ${LOCALBASE}/include/taglib/. + +.include "../../mk/bsd.pkg.mk" diff --git a/audio/taglib/PLIST b/audio/taglib/PLIST new file mode 100644 index 00000000000..4895d4adec0 --- /dev/null +++ b/audio/taglib/PLIST @@ -0,0 +1,53 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 2004/02/09 00:30:24 chris Exp $ +bin/taglib-config +include/taglib/audioproperties.h +include/taglib/commentsframe.h +include/taglib/fileref.h +include/taglib/flacfile.h +include/taglib/flacproperties.h +include/taglib/id3lib_strings.h +include/taglib/id3v1genres.h +include/taglib/id3v1tag.h +include/taglib/id3v2extendedheader.h +include/taglib/id3v2footer.h +include/taglib/id3v2frame.h +include/taglib/id3v2framefactory.h +include/taglib/id3v2header.h +include/taglib/id3v2synchdata.h +include/taglib/id3v2tag.h +include/taglib/mpegfile.h +include/taglib/mpegheader.h +include/taglib/mpegproperties.h +include/taglib/oggfile.h +include/taglib/oggpage.h +include/taglib/oggpageheader.h +include/taglib/tag.h +include/taglib/tag_c.h +include/taglib/taglib.h +include/taglib/tbytevector.h +include/taglib/tbytevectorlist.h +include/taglib/tdebug.h +include/taglib/textidentificationframe.h +include/taglib/tfile.h +include/taglib/tlist.h +include/taglib/tlist.tcc +include/taglib/tmap.h +include/taglib/tmap.tcc +include/taglib/tstring.h +include/taglib/tstringlist.h +include/taglib/unknownframe.h +include/taglib/vorbisfile.h +include/taglib/vorbisproperties.h +include/taglib/xingheader.h +include/taglib/xiphcomment.h +lib/libtag.a +lib/libtag.la +lib/libtag.so +lib/libtag.so.1 +lib/libtag.so.${PKGVERSION} +lib/libtag_c.a +lib/libtag_c.la +lib/libtag_c.so +lib/libtag_c.so.0 +lib/libtag_c.so.0.0 +@dirrm include/taglib diff --git a/audio/taglib/buildlink2.mk b/audio/taglib/buildlink2.mk new file mode 100644 index 00000000000..57db8721224 --- /dev/null +++ b/audio/taglib/buildlink2.mk @@ -0,0 +1,26 @@ +# $NetBSD: buildlink2.mk,v 1.1.1.1 2004/02/09 00:30:24 chris Exp $ +# +# This Makefile fragment is included by packages that use taglib. +# +# This file was created automatically using createbuildlink-3.0. +# + +.if !defined(TAGLIB_BUILDLINK2_MK) +TAGLIB_BUILDLINK2_MK= # defined + +BUILDLINK_PACKAGES+= taglib +BUILDLINK_DEPENDS.taglib?= taglib>=1.0 +BUILDLINK_PKGSRCDIR.taglib?= ../../audio/TagLib + +EVAL_PREFIX+= BUILDLINK_PREFIX.taglib=taglib +BUILDLINK_PREFIX.taglib_DEFAULT= ${LOCALBASE} +BUILDLINK_FILES.taglib+= include/taglib/*.h +BUILDLINK_FILES.taglib+= include/taglib/*.tcc +BUILDLINK_FILES.taglib+= lib/libtag.* +BUILDLINK_FILES.taglib+= lib/libtag_c.* + +BUILDLINK_TARGETS+= taglib-buildlink + +taglib-buildlink: _BUILDLINK_USE + +.endif # TAGLIB_BUILDLINK2_MK diff --git a/audio/taglib/buildlink3.mk b/audio/taglib/buildlink3.mk new file mode 100644 index 00000000000..8ac8ea26d75 --- /dev/null +++ b/audio/taglib/buildlink3.mk @@ -0,0 +1,17 @@ +# $NetBSD: buildlink3.mk,v 1.1.1.1 2004/02/09 00:30:24 chris Exp $ + +BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH}+ +TAGLIB_BUILDLINK3_MK:= ${TAGLIB_BUILDLINK3_MK}+ + +.if !empty(BUILDLINK_DEPTH:M+) +BUILDLINK_DEPENDS+= taglib +.endif + +.if !empty(TAGLIB_BUILDLINK3_MK:M+) +BUILDLINK_PACKAGES+= taglib +BUILDLINK_DEPENDS.taglib?= taglib>=1.0 +BUILDLINK_PKGSRCDIR.taglib?= ../../audio/TagLib + +.endif # TAGLIB_BUILDLINK3_MK + +BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH:S/+$//} diff --git a/audio/taglib/distinfo b/audio/taglib/distinfo new file mode 100644 index 00000000000..9b7462c7312 --- /dev/null +++ b/audio/taglib/distinfo @@ -0,0 +1,5 @@ +$NetBSD: distinfo,v 1.1.1.1 2004/02/09 00:30:24 chris Exp $ + +SHA1 (taglib-1.0.tar.gz) = 419c0db9cda2f97497fd843417cb09b63cee59db +Size (taglib-1.0.tar.gz) = 688419 bytes +SHA1 (patch-aa) = 541795a7c2a551bde2ee2492b56e4b4a9335967c diff --git a/audio/taglib/files/id3lib_strings.h b/audio/taglib/files/id3lib_strings.h new file mode 100644 index 00000000000..aca4367a631 --- /dev/null +++ b/audio/taglib/files/id3lib_strings.h @@ -0,0 +1,203 @@ +// -*- C++ -*- +// $Id: id3lib_strings.h,v 1.1.1.1 2004/02/09 00:30:25 chris Exp $ + +// id3lib: a software library for creating and manipulating id3v1/v2 tags +// Copyright 1999, 2000 Scott Thomas Haug +// Copyright 2002 Thijmen Klok (thijmen@id3lib.org) + +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Library General Public License as published by +// the Free Software Foundation; either version 2 of the License, or (at your +// option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public +// License for more details. +// +// You should have received a copy of the GNU Library General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +// The id3lib authors encourage improvements and optimisations to be sent to +// the id3lib coordinator. Please see the README file for details on where to +// send such submissions. See the AUTHORS file for a list of people who have +// contributed to id3lib. See the ChangeLog file for a list of changes to +// id3lib. These files are distributed with id3lib at +// http://download.sourceforge.net/id3lib/ + +#ifndef _ID3LIB_STRINGS_H_ +#define _ID3LIB_STRINGS_H_ + +#include + +#if (defined(__GNUC__) && (__GNUC__ >= 3) || (defined(_MSC_VER) && _MSC_VER > 1000)) +namespace std +{ + template<> + struct char_traits + { + typedef unsigned char char_type; + // Unsigned as wint_t in unsigned. + typedef unsigned long int_type; + typedef streampos pos_type; + typedef streamoff off_type; + typedef mbstate_t state_type; + + static void + assign(char_type& __c1, const char_type& __c2) + { __c1 = __c2; } + + static bool + eq(const char_type& __c1, const char_type& __c2) + { return __c1 == __c2; } + + static bool + lt(const char_type& __c1, const char_type& __c2) + { return __c1 < __c2; } + + static int + compare(const char_type* __s1, const char_type* __s2, size_t __n) + { + for (size_t __i = 0; __i < __n; ++__i) + if (!eq(__s1[__i], __s2[__i])) + return lt(__s1[__i], __s2[__i]) ? -1 : 1; + return 0; + } + + static size_t + length(const char_type* __s) + { + const char_type* __p = __s; + while (__p) + ++__p; + return (__p - __s); + } + + static const char_type* + find(const char_type* __s, size_t __n, const char_type& __a) + { + for (const char_type* __p = __s; size_t(__p - __s) < __n; ++__p) + if (*__p == __a) return __p; + return 0; + } + + static char_type* + move(char_type* __s1, const char_type* __s2, size_t __n) + { return (char_type*) memmove(__s1, __s2, __n * sizeof(char_type)); } + + static char_type* + copy(char_type* __s1, const char_type* __s2, size_t __n) + { return (char_type*) memcpy(__s1, __s2, __n * sizeof(char_type)); } + + static char_type* + assign(char_type* __s, size_t __n, char_type __a) + { + for (char_type* __p = __s; __p < __s + __n; ++__p) + assign(*__p, __a); + return __s; + } + + static char_type + to_char_type(const int_type& __c) + { return char_type(); } + + static int_type + to_int_type(const char_type& __c) { return int_type(); } + + static bool + eq_int_type(const int_type& __c1, const int_type& __c2) + { return __c1 == __c2; } + + static int_type + eof() { return static_cast(-1); } + + static int_type + not_eof(const int_type& __c) + { return eq_int_type(__c, eof()) ? int_type(0) : __c; } + }; + +#ifndef _GLIBCPP_USE_WCHAR_T +#if (defined(ID3_NEED_WCHAR_TEMPLATE)) + template<> + struct char_traits + { + typedef wchar_t char_type; + typedef wint_t int_type; + typedef streamoff off_type; + typedef streampos pos_type; + typedef mbstate_t state_type; + + static void + assign(char_type& __c1, const char_type& __c2) + { __c1 = __c2; } + + static bool + eq(const char_type& __c1, const char_type& __c2) + { return __c1 == __c2; } + + static bool + lt(const char_type& __c1, const char_type& __c2) + { return __c1 < __c2; } + + static int + compare(const char_type* __s1, const char_type* __s2, size_t __n) + { return wmemcmp(__s1, __s2, __n); } + + static size_t + length(const char_type* __s) + { return wcslen(__s); } + + static const char_type* + find(const char_type* __s, size_t __n, const char_type& __a) + { return wmemchr(__s, __a, __n); } + + static char_type* + move(char_type* __s1, const char_type* __s2, int_type __n) + { return wmemmove(__s1, __s2, __n); } + + static char_type* + copy(char_type* __s1, const char_type* __s2, size_t __n) + { return wmemcpy(__s1, __s2, __n); } + + static char_type* + assign(char_type* __s, size_t __n, char_type __a) + { return wmemset(__s, __a, __n); } + + static char_type + to_char_type(const int_type& __c) { return char_type(__c); } + + static int_type + to_int_type(const char_type& __c) { return int_type(__c); } + + static bool + eq_int_type(const int_type& __c1, const int_type& __c2) + { return __c1 == __c2; } + + static state_type + _S_get_state(const pos_type& __pos) { return __pos.state(); } + + static int_type + eof() { return static_cast(WEOF); } + + static int_type + _S_eos() { return char_type(); } + + static int_type + not_eof(const int_type& __c) + { return eq_int_type(__c, eof()) ? 0 : __c; } + }; +#endif +#endif +} // namespace std +#endif + +namespace dami +{ + typedef std::basic_string String; + typedef std::basic_string BString; + typedef std::basic_string WString; +}; + +#endif /* _ID3LIB_STRINGS_H_ */ + diff --git a/audio/taglib/patches/patch-aa b/audio/taglib/patches/patch-aa new file mode 100644 index 00000000000..5dadf3c691e --- /dev/null +++ b/audio/taglib/patches/patch-aa @@ -0,0 +1,18 @@ +$NetBSD: patch-aa,v 1.1.1.1 2004/02/09 00:30:25 chris Exp $ + +--- taglib/toolkit/taglib.h.orig 2004-02-08 16:24:42.000000000 +0000 ++++ taglib/toolkit/taglib.h 2004-02-08 16:26:01.000000000 +0000 +@@ -29,6 +29,13 @@ + + //! A namespace for all TagLib related classes and functions + ++/* ++ * not all C++ compilers provide char_traits for wchar ++ * so we borrow a file from id3lib as it has the relevant bits ++ */ ++#define ID3_NEED_WCHAR_TEMPLATE 1 ++#include "id3lib_strings.h" ++ + /*! + * This namespace contains everything in TagLib. For projects working with + * TagLib extensively it may be conveniten to add a -- cgit v1.2.3