diff options
Diffstat (limited to 'libs/taglib/taglib/mpeg/id3v2/frames')
21 files changed, 0 insertions, 3900 deletions
diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/CMakeLists.txt b/libs/taglib/taglib/mpeg/id3v2/frames/CMakeLists.txt deleted file mode 100644 index 1fb1e20868..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -INSTALL(FILES - attachedpictureframe.h - commentsframe.h - generalencapsulatedobjectframe.h - relativevolumeframe.h - textidentificationframe.h - uniquefileidentifierframe.h - unknownframe.h - unsynchronizedlyricsframe.h - urllinkframe.h - DESTINATION ${INCLUDE_INSTALL_DIR}/taglib) diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/Makefile.am b/libs/taglib/taglib/mpeg/id3v2/frames/Makefile.am deleted file mode 100644 index 517cd75386..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/Makefile.am +++ /dev/null @@ -1,31 +0,0 @@ -INCLUDES = \ - -I$(top_srcdir)/taglib \ - -I$(top_srcdir)/taglib/toolkit \ - -I$(top_srcdir)/taglib/mpeg/id3v2 \ - $(all_includes) - -noinst_LTLIBRARIES = libframes.la - -libframes_la_SOURCES = \ - attachedpictureframe.cpp \ - commentsframe.cpp \ - generalencapsulatedobjectframe.cpp \ - relativevolumeframe.cpp \ - textidentificationframe.cpp \ - uniquefileidentifierframe.cpp \ - unknownframe.cpp \ - unsynchronizedlyricsframe.cpp \ - urllinkframe.cpp - -taglib_include_HEADERS = \ - attachedpictureframe.h \ - commentsframe.h \ - generalencapsulatedobjectframe.h \ - relativevolumeframe.h \ - textidentificationframe.h \ - uniquefileidentifierframe.h \ - unknownframe.h \ - unsynchronizedlyricsframe.h \ - urllinkframe.h - -taglib_includedir = $(includedir)/taglib diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/Makefile.in b/libs/taglib/taglib/mpeg/id3v2/frames/Makefile.in deleted file mode 100644 index 9268ff5e8d..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/Makefile.in +++ /dev/null @@ -1,656 +0,0 @@ -# Makefile.in generated by automake 1.10 from Makefile.am. -# KDE tags expanded automatically by am_edit - $Revision: 483858 $ -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -subdir = taglib/mpeg/id3v2/frames -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(taglib_include_HEADERS) -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -LTLIBRARIES = $(noinst_LTLIBRARIES) -libframes_la_LIBADD = -am_libframes_la_OBJECTS = attachedpictureframe.lo commentsframe.lo \ - generalencapsulatedobjectframe.lo relativevolumeframe.lo \ - textidentificationframe.lo uniquefileidentifierframe.lo \ - unknownframe.lo unsynchronizedlyricsframe.lo urllinkframe.lo -#>- libframes_la_OBJECTS = $(am_libframes_la_OBJECTS) -#>+ 7 -libframes_la_final_OBJECTS = libframes_la.all_cpp.lo -libframes_la_nofinal_OBJECTS = attachedpictureframe.lo commentsframe.lo \ - generalencapsulatedobjectframe.lo relativevolumeframe.lo \ - textidentificationframe.lo uniquefileidentifierframe.lo \ - unknownframe.lo unsynchronizedlyricsframe.lo urllinkframe.lo -@KDE_USE_FINAL_FALSE@libframes_la_OBJECTS = $(libframes_la_nofinal_OBJECTS) -@KDE_USE_FINAL_TRUE@libframes_la_OBJECTS = $(libframes_la_final_OBJECTS) -DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ -depcomp = $(SHELL) $(top_srcdir)/admin/depcomp -am__depfiles_maybe = depfiles -#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ -#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -#>+ 2 -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) -#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ -#>- --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ -#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -#>+ 3 -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) -CXXLD = $(CXX) -#>- CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ -#>- --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ -#>- $(LDFLAGS) -o $@ -#>+ 3 -CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(libframes_la_SOURCES) -DIST_SOURCES = $(libframes_la_SOURCES) -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(taglib_includedir)" -taglib_includeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(taglib_include_HEADERS) -ETAGS = etags -CTAGS = ctags -#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -#>+ 1 -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTODIRS = @AUTODIRS@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CONF_FILES = @CONF_FILES@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -GREP = @GREP@ -HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@ -KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ -KDE_PLUGIN = @KDE_PLUGIN@ -KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ -KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ -KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ -KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ -KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ -KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ -LDFLAGS = @LDFLAGS@ -LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ -LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -NOOPT_CFLAGS = @NOOPT_CFLAGS@ -NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -TOPSUBDIRS = @TOPSUBDIRS@ -USE_EXCEPTIONS = @USE_EXCEPTIONS@ -USE_RTTI = @USE_RTTI@ -VERSION = @VERSION@ -WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -all_includes = @all_includes@ -all_libraries = @all_libraries@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -INCLUDES = \ - -I$(top_srcdir)/taglib \ - -I$(top_srcdir)/taglib/toolkit \ - -I$(top_srcdir)/taglib/mpeg/id3v2 \ - $(all_includes) - -noinst_LTLIBRARIES = libframes.la -libframes_la_SOURCES = \ - attachedpictureframe.cpp \ - commentsframe.cpp \ - generalencapsulatedobjectframe.cpp \ - relativevolumeframe.cpp \ - textidentificationframe.cpp \ - uniquefileidentifierframe.cpp \ - unknownframe.cpp \ - unsynchronizedlyricsframe.cpp \ - urllinkframe.cpp - -taglib_include_HEADERS = \ - attachedpictureframe.h \ - commentsframe.h \ - generalencapsulatedobjectframe.h \ - relativevolumeframe.h \ - textidentificationframe.h \ - uniquefileidentifierframe.h \ - unknownframe.h \ - unsynchronizedlyricsframe.h \ - urllinkframe.h - -taglib_includedir = $(includedir)/taglib -#>- all: all-am -#>+ 1 -all: docs-am all-am - -.SUFFIXES: -.SUFFIXES: .cpp .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) -#>- @for dep in $?; do \ -#>- case '$(am__configure_deps)' in \ -#>- *$$dep*) \ -#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -#>- && exit 0; \ -#>- exit 1;; \ -#>- esac; \ -#>- done; \ -#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu taglib/mpeg/id3v2/frames/Makefile'; \ -#>- cd $(top_srcdir) && \ -#>- $(AUTOMAKE) --gnu taglib/mpeg/id3v2/frames/Makefile -#>+ 12 - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu taglib/mpeg/id3v2/frames/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu taglib/mpeg/id3v2/frames/Makefile - cd $(top_srcdir) && perl admin/am_edit taglib/mpeg/id3v2/frames/Makefile.in -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libframes.la: $(libframes_la_OBJECTS) $(libframes_la_DEPENDENCIES) - $(CXXLINK) $(libframes_la_OBJECTS) $(libframes_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attachedpictureframe.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/commentsframe.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/generalencapsulatedobjectframe.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/relativevolumeframe.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/textidentificationframe.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uniquefileidentifierframe.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unknownframe.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unsynchronizedlyricsframe.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/urllinkframe.Plo@am__quote@ - -.cpp.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.cpp.lo: -@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-taglib_includeHEADERS: $(taglib_include_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(taglib_includedir)" || $(MKDIR_P) "$(DESTDIR)$(taglib_includedir)" - @list='$(taglib_include_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(taglib_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(taglib_includedir)/$$f'"; \ - $(taglib_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(taglib_includedir)/$$f"; \ - done - -uninstall-taglib_includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(taglib_include_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(taglib_includedir)/$$f'"; \ - rm -f "$(DESTDIR)$(taglib_includedir)/$$f"; \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(taglib_includedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -#>- clean: clean-am -#>+ 1 -clean: kde-rpo-clean clean-am - -#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ -#>- mostlyclean-am -#>+ 2 -clean-am: clean-bcheck clean-final clean-generic clean-libtool clean-noinstLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: install-taglib_includeHEADERS - -install-dvi: install-dvi-am - -install-exec-am: - -install-html: install-html-am - -install-info: install-info-am - -install-man: - -install-pdf: install-pdf-am - -install-ps: install-ps-am - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-taglib_includeHEADERS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip install-taglib_includeHEADERS installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-taglib_includeHEADERS - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: - -#>+ 2 -KDE_DIST=Makefile.in CMakeLists.txt Makefile.am - -#>+ 2 -docs-am: - -#>+ 15 -force-reedit: - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu taglib/mpeg/id3v2/frames/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu taglib/mpeg/id3v2/frames/Makefile - cd $(top_srcdir) && perl admin/am_edit taglib/mpeg/id3v2/frames/Makefile.in - - -#>+ 21 -clean-bcheck: - rm -f *.bchecktest.cc *.bchecktest.cc.class a.out - -bcheck: bcheck-am - -bcheck-am: - @for i in $(taglib_include_HEADERS); do \ - if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ - echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ - echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ - echo "$$i"; \ - if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ - rm -f $$i.bchecktest.cc; exit 1; \ - fi ; \ - echo "" >> $$i.bchecktest.cc.class; \ - perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ - rm -f a.out; \ - fi ; \ - done - - -#>+ 11 -libframes_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/attachedpictureframe.cpp $(srcdir)/commentsframe.cpp $(srcdir)/generalencapsulatedobjectframe.cpp $(srcdir)/relativevolumeframe.cpp $(srcdir)/textidentificationframe.cpp $(srcdir)/uniquefileidentifierframe.cpp $(srcdir)/unknownframe.cpp $(srcdir)/unsynchronizedlyricsframe.cpp $(srcdir)/urllinkframe.cpp - @echo 'creating libframes_la.all_cpp.cpp ...'; \ - rm -f libframes_la.all_cpp.files libframes_la.all_cpp.final; \ - echo "#define KDE_USE_FINAL 1" >> libframes_la.all_cpp.final; \ - for file in attachedpictureframe.cpp commentsframe.cpp generalencapsulatedobjectframe.cpp relativevolumeframe.cpp textidentificationframe.cpp uniquefileidentifierframe.cpp unknownframe.cpp unsynchronizedlyricsframe.cpp urllinkframe.cpp ; do \ - echo "#include \"$$file\"" >> libframes_la.all_cpp.files; \ - test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libframes_la.all_cpp.final; \ - done; \ - cat libframes_la.all_cpp.final libframes_la.all_cpp.files > libframes_la.all_cpp.cpp; \ - rm -f libframes_la.all_cpp.final libframes_la.all_cpp.files - -#>+ 3 -clean-final: - -rm -f libframes_la.all_cpp.cpp - -#>+ 3 -final: - $(MAKE) libframes_la_OBJECTS="$(libframes_la_final_OBJECTS)" all-am - -#>+ 3 -final-install: - $(MAKE) libframes_la_OBJECTS="$(libframes_la_final_OBJECTS)" install-am - -#>+ 3 -no-final: - $(MAKE) libframes_la_OBJECTS="$(libframes_la_nofinal_OBJECTS)" all-am - -#>+ 3 -no-final-install: - $(MAKE) libframes_la_OBJECTS="$(libframes_la_nofinal_OBJECTS)" install-am - -#>+ 3 -kde-rpo-clean: - -rm -f *.rpo - -#>+ 3 -nmcheck: -nmcheck-am: nmcheck diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/attachedpictureframe.cpp b/libs/taglib/taglib/mpeg/id3v2/frames/attachedpictureframe.cpp deleted file mode 100644 index 8a88253f5c..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/attachedpictureframe.cpp +++ /dev/null @@ -1,170 +0,0 @@ -/*************************************************************************** - copyright : (C) 2002 - 2008 by Scott Wheeler - email : wheeler@kde.org - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * 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 * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser 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 * - * * - * Alternatively, this file is available under the Mozilla Public * - * License Version 1.1. You may obtain a copy of the License at * - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -#include "attachedpictureframe.h" - -#include <tstringlist.h> -#include <tdebug.h> - -using namespace TagLib; -using namespace ID3v2; - -class AttachedPictureFrame::AttachedPictureFramePrivate -{ -public: - AttachedPictureFramePrivate() : textEncoding(String::Latin1), - type(AttachedPictureFrame::Other) {} - - String::Type textEncoding; - String mimeType; - AttachedPictureFrame::Type type; - String description; - ByteVector data; -}; - -//////////////////////////////////////////////////////////////////////////////// -// public members -//////////////////////////////////////////////////////////////////////////////// - -AttachedPictureFrame::AttachedPictureFrame() : Frame("APIC") -{ - d = new AttachedPictureFramePrivate; -} - -AttachedPictureFrame::AttachedPictureFrame(const ByteVector &data) : Frame(data) -{ - d = new AttachedPictureFramePrivate; - setData(data); -} - -AttachedPictureFrame::~AttachedPictureFrame() -{ - delete d; -} - -String AttachedPictureFrame::toString() const -{ - String s = "[" + d->mimeType + "]"; - return d->description.isEmpty() ? s : d->description + " " + s; -} - -String::Type AttachedPictureFrame::textEncoding() const -{ - return d->textEncoding; -} - -void AttachedPictureFrame::setTextEncoding(String::Type t) -{ - d->textEncoding = t; -} - -String AttachedPictureFrame::mimeType() const -{ - return d->mimeType; -} - -void AttachedPictureFrame::setMimeType(const String &m) -{ - d->mimeType = m; -} - -AttachedPictureFrame::Type AttachedPictureFrame::type() const -{ - return d->type; -} - -void AttachedPictureFrame::setType(Type t) -{ - d->type = t; -} - -String AttachedPictureFrame::description() const -{ - return d->description; -} - -void AttachedPictureFrame::setDescription(const String &desc) -{ - d->description = desc; -} - -ByteVector AttachedPictureFrame::picture() const -{ - return d->data; -} - -void AttachedPictureFrame::setPicture(const ByteVector &p) -{ - d->data = p; -} - -//////////////////////////////////////////////////////////////////////////////// -// protected members -//////////////////////////////////////////////////////////////////////////////// - -void AttachedPictureFrame::parseFields(const ByteVector &data) -{ - if(data.size() < 5) { - debug("A picture frame must contain at least 5 bytes."); - return; - } - - d->textEncoding = String::Type(data[0]); - - int pos = 1; - - d->mimeType = readStringField(data, String::Latin1, &pos); - d->type = (TagLib::ID3v2::AttachedPictureFrame::Type)data[pos++]; - d->description = readStringField(data, d->textEncoding, &pos); - - d->data = data.mid(pos); -} - -ByteVector AttachedPictureFrame::renderFields() const -{ - ByteVector data; - - String::Type encoding = checkEncoding(d->description, d->textEncoding); - - data.append(char(encoding)); - data.append(d->mimeType.data(String::Latin1)); - data.append(textDelimiter(String::Latin1)); - data.append(char(d->type)); - data.append(d->description.data(encoding)); - data.append(textDelimiter(encoding)); - data.append(d->data); - - return data; -} - -//////////////////////////////////////////////////////////////////////////////// -// private members -//////////////////////////////////////////////////////////////////////////////// - -AttachedPictureFrame::AttachedPictureFrame(const ByteVector &data, Header *h) : Frame(h) -{ - d = new AttachedPictureFramePrivate; - parseFields(fieldData(data)); -} diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/attachedpictureframe.h b/libs/taglib/taglib/mpeg/id3v2/frames/attachedpictureframe.h deleted file mode 100644 index bd95ed22d2..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/attachedpictureframe.h +++ /dev/null @@ -1,220 +0,0 @@ -/*************************************************************************** - copyright : (C) 2002 - 2008 by Scott Wheeler - email : wheeler@kde.org - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * 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 * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser 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 * - * * - * Alternatively, this file is available under the Mozilla Public * - * License Version 1.1. You may obtain a copy of the License at * - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -#ifndef TAGLIB_ATTACHEDPICTUREFRAME_H -#define TAGLIB_ATTACHEDPICTUREFRAME_H - -#include <id3v2frame.h> -#include <id3v2header.h> -#include "taglib_export.h" - -namespace TagLib { - - namespace ID3v2 { - - //! An ID3v2 attached picture frame implementation - - /*! - * This is an implementation of ID3v2 attached pictures. Pictures may be - * included in tags, one per APIC frame (but there may be multiple APIC - * frames in a single tag). These pictures are usually in either JPEG or - * PNG format. - */ - - class TAGLIB_EXPORT AttachedPictureFrame : public Frame - { - friend class FrameFactory; - - public: - - /*! - * This describes the function or content of the picture. - */ - enum Type { - //! A type not enumerated below - Other = 0x00, - //! 32x32 PNG image that should be used as the file icon - FileIcon = 0x01, - //! File icon of a different size or format - OtherFileIcon = 0x02, - //! Front cover image of the album - FrontCover = 0x03, - //! Back cover image of the album - BackCover = 0x04, - //! Inside leaflet page of the album - LeafletPage = 0x05, - //! Image from the album itself - Media = 0x06, - //! Picture of the lead artist or soloist - LeadArtist = 0x07, - //! Picture of the artist or performer - Artist = 0x08, - //! Picture of the conductor - Conductor = 0x09, - //! Picture of the band or orchestra - Band = 0x0A, - //! Picture of the composer - Composer = 0x0B, - //! Picture of the lyricist or text writer - Lyricist = 0x0C, - //! Picture of the recording location or studio - RecordingLocation = 0x0D, - //! Picture of the artists during recording - DuringRecording = 0x0E, - //! Picture of the artists during performance - DuringPerformance = 0x0F, - //! Picture from a movie or video related to the track - MovieScreenCapture = 0x10, - //! Picture of a large, coloured fish - ColouredFish = 0x11, - //! Illustration related to the track - Illustration = 0x12, - //! Logo of the band or performer - BandLogo = 0x13, - //! Logo of the publisher (record company) - PublisherLogo = 0x14 - }; - - /*! - * Constructs an empty picture frame. The description, content and text - * encoding should be set manually. - */ - AttachedPictureFrame(); - - /*! - * Constructs an AttachedPicture frame based on \a data. - */ - explicit AttachedPictureFrame(const ByteVector &data); - - /*! - * Destroys the AttahcedPictureFrame instance. - */ - virtual ~AttachedPictureFrame(); - - /*! - * Returns a string containing the description and mime-type - */ - virtual String toString() const; - - /*! - * Returns the text encoding used for the description. - * - * \see setTextEncoding() - * \see description() - */ - String::Type textEncoding() const; - - /*! - * Set the text encoding used for the description. - * - * \see description() - */ - void setTextEncoding(String::Type t); - - /*! - * Returns the mime type of the image. This should in most cases be - * "image/png" or "image/jpeg". - */ - String mimeType() const; - - /*! - * Sets the mime type of the image. This should in most cases be - * "image/png" or "image/jpeg". - */ - void setMimeType(const String &m); - - /*! - * Returns the type of the image. - * - * \see Type - * \see setType() - */ - Type type() const; - - /*! - * Sets the type for the image. - * - * \see Type - * \see type() - */ - void setType(Type t); - - /*! - * Returns a text description of the image. - * - * \see setDescription() - * \see textEncoding() - * \see setTextEncoding() - */ - - String description() const; - - /*! - * Sets a textual description of the image to \a desc. - * - * \see description() - * \see textEncoding() - * \see setTextEncoding() - */ - - void setDescription(const String &desc); - - /*! - * Returns the image data as a ByteVector. - * - * \note ByteVector has a data() method that returns a const char * which - * should make it easy to export this data to external programs. - * - * \see setPicture() - * \see mimeType() - */ - ByteVector picture() const; - - /*! - * Sets the image data to \a p. \a p should be of the type specified in - * this frame's mime-type specification. - * - * \see picture() - * \see mimeType() - * \see setMimeType() - */ - void setPicture(const ByteVector &p); - - protected: - virtual void parseFields(const ByteVector &data); - virtual ByteVector renderFields() const; - - private: - AttachedPictureFrame(const ByteVector &data, Header *h); - AttachedPictureFrame(const AttachedPictureFrame &); - AttachedPictureFrame &operator=(const AttachedPictureFrame &); - - class AttachedPictureFramePrivate; - AttachedPictureFramePrivate *d; - }; - } -} - -#endif diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/commentsframe.cpp b/libs/taglib/taglib/mpeg/id3v2/frames/commentsframe.cpp deleted file mode 100644 index 2df176bde0..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/commentsframe.cpp +++ /dev/null @@ -1,178 +0,0 @@ -/*************************************************************************** - copyright : (C) 2002 - 2008 by Scott Wheeler - email : wheeler@kde.org - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * 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 * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser 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 * - * * - * Alternatively, this file is available under the Mozilla Public * - * License Version 1.1. You may obtain a copy of the License at * - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -#include <tbytevectorlist.h> -#include <id3v2tag.h> -#include <tdebug.h> -#include <tstringlist.h> - -#include "commentsframe.h" - -using namespace TagLib; -using namespace ID3v2; - -class CommentsFrame::CommentsFramePrivate -{ -public: - CommentsFramePrivate() : textEncoding(String::Latin1) {} - String::Type textEncoding; - ByteVector language; - String description; - String text; -}; - -//////////////////////////////////////////////////////////////////////////////// -// public members -//////////////////////////////////////////////////////////////////////////////// - -CommentsFrame::CommentsFrame(String::Type encoding) : Frame("COMM") -{ - d = new CommentsFramePrivate; - d->textEncoding = encoding; -} - -CommentsFrame::CommentsFrame(const ByteVector &data) : Frame(data) -{ - d = new CommentsFramePrivate; - setData(data); -} - -CommentsFrame::~CommentsFrame() -{ - delete d; -} - -String CommentsFrame::toString() const -{ - return d->text; -} - -ByteVector CommentsFrame::language() const -{ - return d->language; -} - -String CommentsFrame::description() const -{ - return d->description; -} - -String CommentsFrame::text() const -{ - return d->text; -} - -void CommentsFrame::setLanguage(const ByteVector &languageEncoding) -{ - d->language = languageEncoding.mid(0, 3); -} - -void CommentsFrame::setDescription(const String &s) -{ - d->description = s; -} - -void CommentsFrame::setText(const String &s) -{ - d->text = s; -} - -String::Type CommentsFrame::textEncoding() const -{ - return d->textEncoding; -} - -void CommentsFrame::setTextEncoding(String::Type encoding) -{ - d->textEncoding = encoding; -} - -CommentsFrame *CommentsFrame::findByDescription(const ID3v2::Tag *tag, const String &d) // static -{ - ID3v2::FrameList comments = tag->frameList("COMM"); - - for(ID3v2::FrameList::ConstIterator it = comments.begin(); - it != comments.end(); - ++it) - { - CommentsFrame *frame = dynamic_cast<CommentsFrame *>(*it); - if(frame && frame->description() == d) - return frame; - } - - return 0; -} - -//////////////////////////////////////////////////////////////////////////////// -// protected members -//////////////////////////////////////////////////////////////////////////////// - -void CommentsFrame::parseFields(const ByteVector &data) -{ - if(data.size() < 5) { - debug("A comment frame must contain at least 5 bytes."); - return; - } - - d->textEncoding = String::Type(data[0]); - d->language = data.mid(1, 3); - - int byteAlign = d->textEncoding == String::Latin1 || d->textEncoding == String::UTF8 ? 1 : 2; - - ByteVectorList l = ByteVectorList::split(data.mid(4), textDelimiter(d->textEncoding), byteAlign, 2); - - if(l.size() == 2) { - d->description = String(l.front(), d->textEncoding); - d->text = String(l.back(), d->textEncoding); - } -} - -ByteVector CommentsFrame::renderFields() const -{ - ByteVector v; - - String::Type encoding = d->textEncoding; - - encoding = checkEncoding(d->description, encoding); - encoding = checkEncoding(d->text, encoding); - - v.append(char(encoding)); - v.append(d->language.size() == 3 ? d->language : "XXX"); - v.append(d->description.data(encoding)); - v.append(textDelimiter(encoding)); - v.append(d->text.data(encoding)); - - return v; -} - -//////////////////////////////////////////////////////////////////////////////// -// private members -//////////////////////////////////////////////////////////////////////////////// - -CommentsFrame::CommentsFrame(const ByteVector &data, Header *h) : Frame(h) -{ - d = new CommentsFramePrivate(); - parseFields(fieldData(data)); -} diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/commentsframe.h b/libs/taglib/taglib/mpeg/id3v2/frames/commentsframe.h deleted file mode 100644 index 9123c739be..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/commentsframe.h +++ /dev/null @@ -1,168 +0,0 @@ -/*************************************************************************** - copyright : (C) 2002 - 2008 by Scott Wheeler - email : wheeler@kde.org - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * 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 * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser 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 * - * * - * Alternatively, this file is available under the Mozilla Public * - * License Version 1.1. You may obtain a copy of the License at * - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -#ifndef TAGLIB_COMMENTSFRAME_H -#define TAGLIB_COMMENTSFRAME_H - -#include <id3v2frame.h> -#include "taglib_export.h" - -namespace TagLib { - - namespace ID3v2 { - - //! An implementation of ID3v2 comments - - /*! - * This implements the ID3v2 comment format. An ID3v2 comment concists of - * a language encoding, a description and a single text field. - */ - - class TAGLIB_EXPORT CommentsFrame : public Frame - { - friend class FrameFactory; - - public: - /*! - * Construct an empty comment frame that will use the text encoding - * \a encoding. - */ - explicit CommentsFrame(String::Type encoding = String::Latin1); - - /*! - * Construct a comment based on the data in \a data. - */ - explicit CommentsFrame(const ByteVector &data); - - /*! - * Destroys this CommentFrame instance. - */ - virtual ~CommentsFrame(); - - /*! - * Returns the text of this comment. - * - * \see text() - */ - virtual String toString() const; - - /*! - * Returns the language encoding as a 3 byte encoding as specified by - * <a href="http://en.wikipedia.org/wiki/ISO_639">ISO-639-2</a>. - * - * \note Most taggers simply ignore this value. - * - * \see setLanguage() - */ - ByteVector language() const; - - /*! - * Returns the description of this comment. - * - * \note Most taggers simply ignore this value. - * - * \see setDescription() - */ - String description() const; - - /*! - * Returns the text of this comment. - * - * \see setText() - */ - String text() const; - - /*! - * Set the language using the 3 byte language code from - * <a href="http://en.wikipedia.org/wiki/ISO_639">ISO-639-2</a> to - * \a languageCode. - * - * \see language() - */ - void setLanguage(const ByteVector &languageCode); - - /*! - * Sets the description of the comment to \a s. - * - * \see decription() - */ - void setDescription(const String &s); - - /*! - * Sets the text portion of the comment to \a s. - * - * \see text() - */ - virtual void setText(const String &s); - - /*! - * Returns the text encoding that will be used in rendering this frame. - * This defaults to the type that was either specified in the constructor - * or read from the frame when parsed. - * - * \see setTextEncoding() - * \see render() - */ - String::Type textEncoding() const; - - /*! - * Sets the text encoding to be used when rendering this frame to - * \a encoding. - * - * \see textEncoding() - * \see render() - */ - void setTextEncoding(String::Type encoding); - - /*! - * Comments each have a unique description. This searches for a comment - * frame with the decription \a d and returns a pointer to it. If no - * frame is found that matches the given description null is returned. - * - * \see description() - */ - static CommentsFrame *findByDescription(const Tag *tag, const String &d); - - protected: - // Reimplementations. - - virtual void parseFields(const ByteVector &data); - virtual ByteVector renderFields() const; - - private: - /*! - * The constructor used by the FrameFactory. - */ - CommentsFrame(const ByteVector &data, Header *h); - CommentsFrame(const CommentsFrame &); - CommentsFrame &operator=(const CommentsFrame &); - - class CommentsFramePrivate; - CommentsFramePrivate *d; - }; - - } -} -#endif diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/generalencapsulatedobjectframe.cpp b/libs/taglib/taglib/mpeg/id3v2/frames/generalencapsulatedobjectframe.cpp deleted file mode 100644 index 58b7b63f68..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/generalencapsulatedobjectframe.cpp +++ /dev/null @@ -1,176 +0,0 @@ -/*************************************************************************** - copyright : (C) 2002 - 2008 by Scott Wheeler - email : wheeler@kde.org - copyright : (C) 2006 by Aaron VonderHaar - email : avh4@users.sourceforge.net - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * 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 * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser 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 * - * * - * Alternatively, this file is available under the Mozilla Public * - * License Version 1.1. You may obtain a copy of the License at * - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -#include <tdebug.h> - -#include "generalencapsulatedobjectframe.h" - -using namespace TagLib; -using namespace ID3v2; - -class GeneralEncapsulatedObjectFrame::GeneralEncapsulatedObjectFramePrivate -{ -public: - GeneralEncapsulatedObjectFramePrivate() : textEncoding(String::Latin1) {} - - String::Type textEncoding; - String mimeType; - String fileName; - String description; - ByteVector data; -}; - -//////////////////////////////////////////////////////////////////////////////// -// public members -//////////////////////////////////////////////////////////////////////////////// - -GeneralEncapsulatedObjectFrame::GeneralEncapsulatedObjectFrame() : Frame("GEOB") -{ - d = new GeneralEncapsulatedObjectFramePrivate; -} - -GeneralEncapsulatedObjectFrame::GeneralEncapsulatedObjectFrame(const ByteVector &data) : Frame(data) -{ - d = new GeneralEncapsulatedObjectFramePrivate; - setData(data); -} - -GeneralEncapsulatedObjectFrame::~GeneralEncapsulatedObjectFrame() -{ - delete d; -} - -String GeneralEncapsulatedObjectFrame::toString() const -{ - String text = "[" + d->mimeType + "]"; - - if(!d->fileName.isEmpty()) - text += " " + d->fileName; - - if(!d->description.isEmpty()) - text += " \"" + d->description + "\""; - - return text; -} - -String::Type GeneralEncapsulatedObjectFrame::textEncoding() const -{ - return d->textEncoding; -} - -void GeneralEncapsulatedObjectFrame::setTextEncoding(String::Type encoding) -{ - d->textEncoding = encoding; -} - -String GeneralEncapsulatedObjectFrame::mimeType() const -{ - return d->mimeType; -} - -void GeneralEncapsulatedObjectFrame::setMimeType(const String &type) -{ - d->mimeType = type; -} - -String GeneralEncapsulatedObjectFrame::fileName() const -{ - return d->fileName; -} - -void GeneralEncapsulatedObjectFrame::setFileName(const String &name) -{ - d->fileName = name; -} - -String GeneralEncapsulatedObjectFrame::description() const -{ - return d->description; -} - -void GeneralEncapsulatedObjectFrame::setDescription(const String &desc) -{ - d->description = desc; -} - -ByteVector GeneralEncapsulatedObjectFrame::object() const -{ - return d->data; -} - -void GeneralEncapsulatedObjectFrame::setObject(const ByteVector &data) -{ - d->data = data; -} - -//////////////////////////////////////////////////////////////////////////////// -// protected members -//////////////////////////////////////////////////////////////////////////////// - -void GeneralEncapsulatedObjectFrame::parseFields(const ByteVector &data) -{ - if(data.size() < 4) { - debug("An object frame must contain at least 4 bytes."); - return; - } - - d->textEncoding = String::Type(data[0]); - - int pos = 1; - - d->mimeType = readStringField(data, String::Latin1, &pos); - d->fileName = readStringField(data, d->textEncoding, &pos); - d->description = readStringField(data, d->textEncoding, &pos); - - d->data = data.mid(pos); -} - -ByteVector GeneralEncapsulatedObjectFrame::renderFields() const -{ - ByteVector data; - - data.append(char(d->textEncoding)); - data.append(d->mimeType.data(String::Latin1)); - data.append(textDelimiter(String::Latin1)); - data.append(d->fileName.data(d->textEncoding)); - data.append(textDelimiter(d->textEncoding)); - data.append(d->description.data(d->textEncoding)); - data.append(textDelimiter(d->textEncoding)); - data.append(d->data); - - return data; -} - -//////////////////////////////////////////////////////////////////////////////// -// private members -//////////////////////////////////////////////////////////////////////////////// - -GeneralEncapsulatedObjectFrame::GeneralEncapsulatedObjectFrame(const ByteVector &data, Header *h) : Frame(h) -{ - d = new GeneralEncapsulatedObjectFramePrivate; - parseFields(fieldData(data)); -} diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/generalencapsulatedobjectframe.h b/libs/taglib/taglib/mpeg/id3v2/frames/generalencapsulatedobjectframe.h deleted file mode 100644 index 9b4edf5456..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/generalencapsulatedobjectframe.h +++ /dev/null @@ -1,174 +0,0 @@ -/*************************************************************************** - copyright : (C) 2002 - 2008 by Scott Wheeler - email : wheeler@kde.org - copyright : (C) 2006 by Aaron VonderHaar - email : avh4@users.sourceforge.net - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * 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 * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser 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 * - * * - * Alternatively, this file is available under the Mozilla Public * - * License Version 1.1. You may obtain a copy of the License at * - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -#ifndef TAGLIB_GENERALENCAPSULATEDOBJECT_H -#define TAGLIB_GENERALENCAPSULATEDOBJECT_H - -#include <id3v2frame.h> -#include <id3v2header.h> -#include "taglib_export.h" - -namespace TagLib { - - namespace ID3v2 { - - //! An ID3v2 general encapsulated object frame implementation - - /*! - * This is an implementation of ID3v2 general encapsulated objects. - * Arbitrary binary data may be included in tags, stored in GEOB frames. - * There may be multiple GEOB frames in a single tag. Each GEOB it - * labelled with a content description (which may be blank), a required - * mime-type, and a file name (may be blank). The content description - * uniquely identifies the GEOB frame in the tag. - */ - - class TAGLIB_EXPORT GeneralEncapsulatedObjectFrame : public Frame - { - friend class FrameFactory; - - public: - - /*! - * Constructs an empty object frame. The description, file name and text - * encoding should be set manually. - */ - GeneralEncapsulatedObjectFrame(); - - /*! - * Constructs a GeneralEncapsulatedObjectFrame frame based on \a data. - */ - explicit GeneralEncapsulatedObjectFrame(const ByteVector &data); - - /*! - * Destroys the GeneralEncapsulatedObjectFrame instance. - */ - virtual ~GeneralEncapsulatedObjectFrame(); - - /*! - * Returns a string containing the description, file name and mime-type - */ - virtual String toString() const; - - /*! - * Returns the text encoding used for the description and file name. - * - * \see setTextEncoding() - * \see description() - * \see fileName() - */ - String::Type textEncoding() const; - - /*! - * Set the text encoding used for the description and file name. - * - * \see description() - * \see fileName() - */ - void setTextEncoding(String::Type encoding); - - /*! - * Returns the mime type of the object. - */ - String mimeType() const; - - /*! - * Sets the mime type of the object. - */ - void setMimeType(const String &type); - - /*! - * Returns the file name of the object. - * - * \see setFileName() - */ - String fileName() const; - - /*! - * Sets the file name for the object. - * - * \see fileName() - */ - void setFileName(const String &name); - - /*! - * Returns the content description of the object. - * - * \see setDescription() - * \see textEncoding() - * \see setTextEncoding() - */ - - String description() const; - - /*! - * Sets the content description of the object to \a desc. - * - * \see description() - * \see textEncoding() - * \see setTextEncoding() - */ - - void setDescription(const String &desc); - - /*! - * Returns the object data as a ByteVector. - * - * \note ByteVector has a data() method that returns a const char * which - * should make it easy to export this data to external programs. - * - * \see setObject() - * \see mimeType() - */ - ByteVector object() const; - - /*! - * Sets the object data to \a data. \a data should be of the type specified in - * this frame's mime-type specification. - * - * \see object() - * \see mimeType() - * \see setMimeType() - */ - void setObject(const ByteVector &object); - - protected: - virtual void parseFields(const ByteVector &data); - virtual ByteVector renderFields() const; - - private: - GeneralEncapsulatedObjectFrame(const ByteVector &data, Header *h); - GeneralEncapsulatedObjectFrame(const GeneralEncapsulatedObjectFrame &); - GeneralEncapsulatedObjectFrame &operator=(const GeneralEncapsulatedObjectFrame &); - - class GeneralEncapsulatedObjectFramePrivate; - GeneralEncapsulatedObjectFramePrivate *d; - }; - } -} - -#endif diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/relativevolumeframe.cpp b/libs/taglib/taglib/mpeg/id3v2/frames/relativevolumeframe.cpp deleted file mode 100644 index 8495197a60..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/relativevolumeframe.cpp +++ /dev/null @@ -1,236 +0,0 @@ -/*************************************************************************** - copyright : (C) 2002 - 2008 by Scott Wheeler - email : wheeler@kde.org - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * 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 * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser 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 * - * * - * Alternatively, this file is available under the Mozilla Public * - * License Version 1.1. You may obtain a copy of the License at * - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -#include <tdebug.h> -#include <tmap.h> - -#include "relativevolumeframe.h" - -using namespace TagLib; -using namespace ID3v2; - -static inline int bitsToBytes(int i) -{ - return i % 8 == 0 ? i / 8 : (i - i % 8) / 8 + 1; -} - -struct ChannelData -{ - ChannelData() : channelType(RelativeVolumeFrame::Other), volumeAdjustment(0) {} - - RelativeVolumeFrame::ChannelType channelType; - short volumeAdjustment; - RelativeVolumeFrame::PeakVolume peakVolume; -}; - -class RelativeVolumeFrame::RelativeVolumeFramePrivate -{ -public: - String identification; - Map<ChannelType, ChannelData> channels; -}; - -//////////////////////////////////////////////////////////////////////////////// -// public members -//////////////////////////////////////////////////////////////////////////////// - -RelativeVolumeFrame::RelativeVolumeFrame() : Frame("RVA2") -{ - d = new RelativeVolumeFramePrivate; -} - -RelativeVolumeFrame::RelativeVolumeFrame(const ByteVector &data) : Frame(data) -{ - d = new RelativeVolumeFramePrivate; - setData(data); -} - -RelativeVolumeFrame::~RelativeVolumeFrame() -{ - delete d; -} - -String RelativeVolumeFrame::toString() const -{ - return d->identification; -} - -List<RelativeVolumeFrame::ChannelType> RelativeVolumeFrame::channels() const -{ - List<ChannelType> l; - - Map<ChannelType, ChannelData>::ConstIterator it = d->channels.begin(); - for(; it != d->channels.end(); ++it) - l.append((*it).first); - - return l; -} - -// deprecated - -RelativeVolumeFrame::ChannelType RelativeVolumeFrame::channelType() const -{ - return MasterVolume; -} - -// deprecated - -void RelativeVolumeFrame::setChannelType(ChannelType) -{ - -} - -short RelativeVolumeFrame::volumeAdjustmentIndex(ChannelType type) const -{ - return d->channels.contains(type) ? d->channels[type].volumeAdjustment : 0; -} - -short RelativeVolumeFrame::volumeAdjustmentIndex() const -{ - return volumeAdjustmentIndex(MasterVolume); -} - -void RelativeVolumeFrame::setVolumeAdjustmentIndex(short index, ChannelType type) -{ - d->channels[type].volumeAdjustment = index; -} - -void RelativeVolumeFrame::setVolumeAdjustmentIndex(short index) -{ - setVolumeAdjustmentIndex(index, MasterVolume); -} - -float RelativeVolumeFrame::volumeAdjustment(ChannelType type) const -{ - return d->channels.contains(type) ? float(d->channels[type].volumeAdjustment) / float(512) : 0; -} - -float RelativeVolumeFrame::volumeAdjustment() const -{ - return volumeAdjustment(MasterVolume); -} - -void RelativeVolumeFrame::setVolumeAdjustment(float adjustment, ChannelType type) -{ - d->channels[type].volumeAdjustment = short(adjustment * float(512)); -} - -void RelativeVolumeFrame::setVolumeAdjustment(float adjustment) -{ - setVolumeAdjustment(adjustment, MasterVolume); -} - -RelativeVolumeFrame::PeakVolume RelativeVolumeFrame::peakVolume(ChannelType type) const -{ - return d->channels.contains(type) ? d->channels[type].peakVolume : PeakVolume(); -} - -RelativeVolumeFrame::PeakVolume RelativeVolumeFrame::peakVolume() const -{ - return peakVolume(MasterVolume); -} - -void RelativeVolumeFrame::setPeakVolume(const PeakVolume &peak, ChannelType type) -{ - d->channels[type].peakVolume = peak; -} - -void RelativeVolumeFrame::setPeakVolume(const PeakVolume &peak) -{ - setPeakVolume(peak, MasterVolume); -} - -String RelativeVolumeFrame::identification() const -{ - return d->identification; -} - -void RelativeVolumeFrame::setIdentification(const String &s) -{ - d->identification = s; -} - -//////////////////////////////////////////////////////////////////////////////// -// protected members -//////////////////////////////////////////////////////////////////////////////// - -void RelativeVolumeFrame::parseFields(const ByteVector &data) -{ - int pos = 0; - d->identification = readStringField(data, String::Latin1, &pos); - - // Each channel is at least 4 bytes. - - while(pos <= (int)data.size() - 4) { - - - ChannelType type = ChannelType(data[pos]); - pos += 1; - - ChannelData &channel = d->channels[type]; - - channel.volumeAdjustment = data.mid(pos, 2).toShort(); - pos += 2; - - channel.peakVolume.bitsRepresentingPeak = data[pos]; - pos += 1; - - int bytes = bitsToBytes(channel.peakVolume.bitsRepresentingPeak); - channel.peakVolume.peakVolume = data.mid(pos, bytes); - pos += bytes; - } -} - -ByteVector RelativeVolumeFrame::renderFields() const -{ - ByteVector data; - - data.append(d->identification.data(String::Latin1)); - data.append(textDelimiter(String::Latin1)); - - Map<ChannelType, ChannelData>::ConstIterator it = d->channels.begin(); - - for(; it != d->channels.end(); ++it) { - ChannelType type = (*it).first; - const ChannelData &channel = (*it).second; - - data.append(char(type)); - data.append(ByteVector::fromShort(channel.volumeAdjustment)); - data.append(char(channel.peakVolume.bitsRepresentingPeak)); - data.append(channel.peakVolume.peakVolume); - } - - return data; -} - -//////////////////////////////////////////////////////////////////////////////// -// private members -//////////////////////////////////////////////////////////////////////////////// - -RelativeVolumeFrame::RelativeVolumeFrame(const ByteVector &data, Header *h) : Frame(h) -{ - d = new RelativeVolumeFramePrivate; - parseFields(fieldData(data)); -} diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/relativevolumeframe.h b/libs/taglib/taglib/mpeg/id3v2/frames/relativevolumeframe.h deleted file mode 100644 index f8521986bf..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/relativevolumeframe.h +++ /dev/null @@ -1,274 +0,0 @@ -/*************************************************************************** - copyright : (C) 2002 - 2008 by Scott Wheeler - email : wheeler@kde.org - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * 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 * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser 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 * - * * - * Alternatively, this file is available under the Mozilla Public * - * License Version 1.1. You may obtain a copy of the License at * - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -#ifndef TAGLIB_RELATIVEVOLUMEFRAME_H -#define TAGLIB_RELATIVEVOLUMEFRAME_H - -#include <tlist.h> -#include <id3v2frame.h> -#include "taglib_export.h" - -namespace TagLib { - - namespace ID3v2 { - - //! An ID3v2 relative volume adjustment frame implementation - - /*! - * This is an implementation of ID3v2 relative volume adjustment. The - * presence of this frame makes it possible to specify an increase in volume - * for an audio file or specific audio tracks in that file. - * - * Multiple relative volume adjustment frames may be present in the tag - * each with a unique identification and describing volume adjustment for - * different channel types. - */ - - class TAGLIB_EXPORT RelativeVolumeFrame : public Frame - { - friend class FrameFactory; - - public: - - /*! - * This indicates the type of volume adjustment that should be applied. - */ - enum ChannelType { - //! A type not enumerated below - Other = 0x00, - //! The master volume for the track - MasterVolume = 0x01, - //! The front right audio channel - FrontRight = 0x02, - //! The front left audio channel - FrontLeft = 0x03, - //! The back right audio channel - BackRight = 0x04, - //! The back left audio channel - BackLeft = 0x05, - //! The front center audio channel - FrontCentre = 0x06, - //! The back center audio channel - BackCentre = 0x07, - //! The subwoofer audio channel - Subwoofer = 0x08 - }; - - //! Struct that stores the relevant values for ID3v2 peak volume - - /*! - * The peak volume is described as a series of bits that is padded to fill - * a block of bytes. These two values should always be updated in tandem. - */ - struct PeakVolume - { - /*! - * Constructs an empty peak volume description. - */ - PeakVolume() : bitsRepresentingPeak(0) {} - /*! - * The number of bits (in the range of 0 to 255) used to describe the - * peak volume. - */ - unsigned char bitsRepresentingPeak; - /*! - * The array of bits (represented as a series of bytes) used to describe - * the peak volume. - */ - ByteVector peakVolume; - }; - - /*! - * Constructs a RelativeVolumeFrame. The relevant data should be set - * manually. - */ - RelativeVolumeFrame(); - - /*! - * Constructs a RelativeVolumeFrame based on the contents of \a data. - */ - RelativeVolumeFrame(const ByteVector &data); - - /*! - * Destroys the RelativeVolumeFrame instance. - */ - virtual ~RelativeVolumeFrame(); - - /*! - * Returns the frame's identification. - * - * \see identification() - */ - virtual String toString() const; - - /*! - * Returns a list of channels with information currently in the frame. - */ - List<ChannelType> channels() const; - - /*! - * \deprecated Always returns master volume. - */ - ChannelType channelType() const; - - /*! - * \deprecated This method no longer has any effect. - */ - void setChannelType(ChannelType t); - - /* - * There was a terrible API goof here, and while this can't be changed to - * the way it appears below for binary compaibility reasons, let's at - * least pretend that it looks clean. - */ - -#ifdef DOXYGEN - - /*! - * Returns the relative volume adjustment "index". As indicated by the - * ID3v2 standard this is a 16-bit signed integer that reflects the - * decibils of adjustment when divided by 512. - * - * This defaults to returning the value for the master volume channel if - * available and returns 0 if the specified channel does not exist. - * - * \see setVolumeAdjustmentIndex() - * \see volumeAjustment() - */ - short volumeAdjustmentIndex(ChannelType type = MasterVolume) const; - - /*! - * Set the volume adjustment to \a index. As indicated by the ID3v2 - * standard this is a 16-bit signed integer that reflects the decibils of - * adjustment when divided by 512. - * - * By default this sets the value for the master volume. - * - * \see volumeAdjustmentIndex() - * \see setVolumeAjustment() - */ - void setVolumeAdjustmentIndex(short index, ChannelType type = MasterVolume); - - /*! - * Returns the relative volume adjustment in decibels. - * - * \note Because this is actually stored internally as an "index" to this - * value the value returned by this method may not be identical to the - * value set using setVolumeAdjustment(). - * - * This defaults to returning the value for the master volume channel if - * available and returns 0 if the specified channel does not exist. - * - * \see setVolumeAdjustment() - * \see volumeAdjustmentIndex() - */ - float volumeAdjustment(ChannelType type = MasterVolume) const; - - /*! - * Set the relative volume adjustment in decibels to \a adjustment. - * - * By default this sets the value for the master volume. - * - * \note Because this is actually stored internally as an "index" to this - * value the value set by this method may not be identical to the one - * returned by volumeAdjustment(). - * - * \see setVolumeAdjustment() - * \see volumeAdjustmentIndex() - */ - void setVolumeAdjustment(float adjustment, ChannelType type = MasterVolume); - - /*! - * Returns the peak volume (represented as a length and a string of bits). - * - * This defaults to returning the value for the master volume channel if - * available and returns 0 if the specified channel does not exist. - * - * \see setPeakVolume() - */ - PeakVolume peakVolume(ChannelType type = MasterVolume) const; - - /*! - * Sets the peak volume to \a peak. - * - * By default this sets the value for the master volume. - * - * \see peakVolume() - */ - void setPeakVolume(const PeakVolume &peak, ChannelType type = MasterVolume); - -#else - - // BIC: Combine each of the following pairs of functions (or maybe just - // rework this junk altogether). - - short volumeAdjustmentIndex(ChannelType type) const; - short volumeAdjustmentIndex() const; - - void setVolumeAdjustmentIndex(short index, ChannelType type); - void setVolumeAdjustmentIndex(short index); - - float volumeAdjustment(ChannelType type) const; - float volumeAdjustment() const; - - void setVolumeAdjustment(float adjustment, ChannelType type); - void setVolumeAdjustment(float adjustment); - - PeakVolume peakVolume(ChannelType type) const; - PeakVolume peakVolume() const; - - void setPeakVolume(const PeakVolume &peak, ChannelType type); - void setPeakVolume(const PeakVolume &peak); - -#endif - - /*! - * Returns the identification for this frame. - */ - String identification() const; - - /*! - * Sets the identification of the frame to \a s. The string - * is used to identify the situation and/or device where this - * adjustment should apply. - */ - void setIdentification(const String &s); - - protected: - virtual void parseFields(const ByteVector &data); - virtual ByteVector renderFields() const; - - private: - RelativeVolumeFrame(const ByteVector &data, Header *h); - RelativeVolumeFrame(const RelativeVolumeFrame &); - RelativeVolumeFrame &operator=(const RelativeVolumeFrame &); - - class RelativeVolumeFramePrivate; - RelativeVolumeFramePrivate *d; - }; - - } -} -#endif diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/textidentificationframe.cpp b/libs/taglib/taglib/mpeg/id3v2/frames/textidentificationframe.cpp deleted file mode 100644 index 7d3b4ff291..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/textidentificationframe.cpp +++ /dev/null @@ -1,271 +0,0 @@ -/*************************************************************************** - copyright : (C) 2002 - 2008 by Scott Wheeler - email : wheeler@kde.org - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * 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 * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser 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 * - * * - * Alternatively, this file is available under the Mozilla Public * - * License Version 1.1. You may obtain a copy of the License at * - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -#include <tbytevectorlist.h> -#include <id3v2tag.h> - -#include "textidentificationframe.h" - -using namespace TagLib; -using namespace ID3v2; - -class TextIdentificationFrame::TextIdentificationFramePrivate -{ -public: - TextIdentificationFramePrivate() : textEncoding(String::Latin1) {} - String::Type textEncoding; - StringList fieldList; -}; - -//////////////////////////////////////////////////////////////////////////////// -// TextIdentificationFrame public members -//////////////////////////////////////////////////////////////////////////////// - -TextIdentificationFrame::TextIdentificationFrame(const ByteVector &type, String::Type encoding) : - Frame(type) -{ - d = new TextIdentificationFramePrivate; - d->textEncoding = encoding; -} - -TextIdentificationFrame::TextIdentificationFrame(const ByteVector &data) : - Frame(data) -{ - d = new TextIdentificationFramePrivate; - setData(data); -} - -TextIdentificationFrame::~TextIdentificationFrame() -{ - delete d; -} - -void TextIdentificationFrame::setText(const StringList &l) -{ - d->fieldList = l; -} - -void TextIdentificationFrame::setText(const String &s) -{ - d->fieldList = s; -} - -String TextIdentificationFrame::toString() const -{ - return d->fieldList.toString(); -} - -StringList TextIdentificationFrame::fieldList() const -{ - return d->fieldList; -} - -String::Type TextIdentificationFrame::textEncoding() const -{ - return d->textEncoding; -} - -void TextIdentificationFrame::setTextEncoding(String::Type encoding) -{ - d->textEncoding = encoding; -} - -//////////////////////////////////////////////////////////////////////////////// -// TextIdentificationFrame protected members -//////////////////////////////////////////////////////////////////////////////// - -void TextIdentificationFrame::parseFields(const ByteVector &data) -{ - // Don't try to parse invalid frames - - if(data.size() < 2) - return; - - // read the string data type (the first byte of the field data) - - d->textEncoding = String::Type(data[0]); - - // split the byte array into chunks based on the string type (two byte delimiter - // for unicode encodings) - - int byteAlign = d->textEncoding == String::Latin1 || d->textEncoding == String::UTF8 ? 1 : 2; - - // build a small counter to strip nulls off the end of the field - - int dataLength = data.size() - 1; - - while(dataLength > 0 && data[dataLength] == 0) - dataLength--; - - while(dataLength % byteAlign != 0) - dataLength++; - - ByteVectorList l = ByteVectorList::split(data.mid(1, dataLength), textDelimiter(d->textEncoding), byteAlign); - - d->fieldList.clear(); - - // append those split values to the list and make sure that the new string's - // type is the same specified for this frame - - for(ByteVectorList::Iterator it = l.begin(); it != l.end(); it++) { - if(!(*it).isEmpty()) { - String s(*it, d->textEncoding); - d->fieldList.append(s); - } - } -} - -ByteVector TextIdentificationFrame::renderFields() const -{ - String::Type encoding = checkEncoding(d->fieldList, d->textEncoding); - - ByteVector v; - - v.append(char(encoding)); - - for(StringList::ConstIterator it = d->fieldList.begin(); it != d->fieldList.end(); it++) { - - // Since the field list is null delimited, if this is not the first - // element in the list, append the appropriate delimiter for this - // encoding. - - if(it != d->fieldList.begin()) - v.append(textDelimiter(encoding)); - - v.append((*it).data(encoding)); - } - - return v; -} - -//////////////////////////////////////////////////////////////////////////////// -// TextIdentificationFrame private members -//////////////////////////////////////////////////////////////////////////////// - -TextIdentificationFrame::TextIdentificationFrame(const ByteVector &data, Header *h) : Frame(h) -{ - d = new TextIdentificationFramePrivate; - parseFields(fieldData(data)); -} - -//////////////////////////////////////////////////////////////////////////////// -// UserTextIdentificationFrame public members -//////////////////////////////////////////////////////////////////////////////// - -UserTextIdentificationFrame::UserTextIdentificationFrame(String::Type encoding) : - TextIdentificationFrame("TXXX", encoding), - d(0) -{ - StringList l; - l.append(String::null); - l.append(String::null); - setText(l); -} - - -UserTextIdentificationFrame::UserTextIdentificationFrame(const ByteVector &data) : - TextIdentificationFrame(data) -{ - checkFields(); -} - -String UserTextIdentificationFrame::toString() const -{ - return "[" + description() + "] " + fieldList().toString(); -} - -String UserTextIdentificationFrame::description() const -{ - return !TextIdentificationFrame::fieldList().isEmpty() - ? TextIdentificationFrame::fieldList().front() - : String::null; -} - -StringList UserTextIdentificationFrame::fieldList() const -{ - // TODO: remove this function - - return TextIdentificationFrame::fieldList(); -} - -void UserTextIdentificationFrame::setText(const String &text) -{ - if(description().isEmpty()) - setDescription(String::null); - - TextIdentificationFrame::setText(StringList(description()).append(text)); -} - -void UserTextIdentificationFrame::setText(const StringList &fields) -{ - if(description().isEmpty()) - setDescription(String::null); - - TextIdentificationFrame::setText(StringList(description()).append(fields)); -} - -void UserTextIdentificationFrame::setDescription(const String &s) -{ - StringList l = fieldList(); - - if(l.isEmpty()) - l.append(s); - else - l[0] = s; - - TextIdentificationFrame::setText(l); -} - -UserTextIdentificationFrame *UserTextIdentificationFrame::find( - ID3v2::Tag *tag, const String &description) // static -{ - FrameList l = tag->frameList("TXXX"); - for(FrameList::Iterator it = l.begin(); it != l.end(); ++it) { - UserTextIdentificationFrame *f = dynamic_cast<UserTextIdentificationFrame *>(*it); - if(f && f->description() == description) - return f; - } - return 0; -} - -//////////////////////////////////////////////////////////////////////////////// -// UserTextIdentificationFrame private members -//////////////////////////////////////////////////////////////////////////////// - -UserTextIdentificationFrame::UserTextIdentificationFrame(const ByteVector &data, Header *h) : - TextIdentificationFrame(data, h) -{ - checkFields(); -} - -void UserTextIdentificationFrame::checkFields() -{ - int fields = fieldList().size(); - - if(fields == 0) - setDescription(String::null); - if(fields <= 1) - setText(String::null); -} diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/textidentificationframe.h b/libs/taglib/taglib/mpeg/id3v2/frames/textidentificationframe.h deleted file mode 100644 index 291cba5b8f..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/textidentificationframe.h +++ /dev/null @@ -1,258 +0,0 @@ -/*************************************************************************** - copyright : (C) 2002 - 2008 by Scott Wheeler - email : wheeler@kde.org - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * 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 * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser 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 * - * * - * Alternatively, this file is available under the Mozilla Public * - * License Version 1.1. You may obtain a copy of the License at * - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -#ifndef TAGLIB_TEXTIDENTIFICATIONFRAME_H -#define TAGLIB_TEXTIDENTIFICATIONFRAME_H - -#include <tstringlist.h> -#include "taglib_export.h" - -#include <id3v2frame.h> - -namespace TagLib { - - namespace ID3v2 { - - class Tag; - - //! An ID3v2 text identification frame implementation - - /*! - * This is an implementation of the most common type of ID3v2 frame -- text - * identification frames. There are a number of variations on this. Those - * enumerated in the ID3v2.4 standard are: - * - * <ul> - * <li><b>TALB</b> Album/Movie/Show title</li> - * <li><b>TBPM</b> BPM (beats per minute)</li> - * <li><b>TCOM</b> Composer</li> - * <li><b>TCON</b> Content type</li> - * <li><b>TCOP</b> Copyright message</li> - * <li><b>TDEN</b> Encoding time</li> - * <li><b>TDLY</b> Playlist delay</li> - * <li><b>TDOR</b> Original release time</li> - * <li><b>TDRC</b> Recording time</li> - * <li><b>TDRL</b> Release time</li> - * <li><b>TDTG</b> Tagging time</li> - * <li><b>TENC</b> Encoded by</li> - * <li><b>TEXT</b> Lyricist/Text writer</li> - * <li><b>TFLT</b> File type</li> - * <li><b>TIPL</b> Involved people list</li> - * <li><b>TIT1</b> Content group description</li> - * <li><b>TIT2</b> Title/songname/content description</li> - * <li><b>TIT3</b> Subtitle/Description refinement</li> - * <li><b>TKEY</b> Initial key</li> - * <li><b>TLAN</b> Language(s)</li> - * <li><b>TLEN</b> Length</li> - * <li><b>TMCL</b> Musician credits list</li> - * <li><b>TMED</b> Media type</li> - * <li><b>TMOO</b> Mood</li> - * <li><b>TOAL</b> Original album/movie/show title</li> - * <li><b>TOFN</b> Original filename</li> - * <li><b>TOLY</b> Original lyricist(s)/text writer(s)</li> - * <li><b>TOPE</b> Original artist(s)/performer(s)</li> - * <li><b>TOWN</b> File owner/licensee</li> - * <li><b>TPE1</b> Lead performer(s)/Soloist(s)</li> - * <li><b>TPE2</b> Band/orchestra/accompaniment</li> - * <li><b>TPE3</b> Conductor/performer refinement</li> - * <li><b>TPE4</b> Interpreted, remixed, or otherwise modified by</li> - * <li><b>TPOS</b> Part of a set</li> - * <li><b>TPRO</b> Produced notice</li> - * <li><b>TPUB</b> Publisher</li> - * <li><b>TRCK</b> Track number/Position in set</li> - * <li><b>TRSN</b> Internet radio station name</li> - * <li><b>TRSO</b> Internet radio station owner</li> - * <li><b>TSOA</b> Album sort order</li> - * <li><b>TSOP</b> Performer sort order</li> - * <li><b>TSOT</b> Title sort order</li> - * <li><b>TSRC</b> ISRC (international standard recording code)</li> - * <li><b>TSSE</b> Software/Hardware and settings used for encoding</li> - * <li><b>TSST</b> Set subtitle</li> - * </ul> - * - * The ID3v2 Frames document gives a description of each of these formats - * and the expected order of strings in each. ID3v2::Header::frameID() can - * be used to determine the frame type. - * - * \note If non-Latin1 compatible strings are used with this class, even if - * the text encoding is set to Latin1, the frame will be written using UTF8 - * (with the encoding flag appropriately set in the output). - */ - - class TAGLIB_EXPORT TextIdentificationFrame : public Frame - { - friend class FrameFactory; - - public: - /*! - * Construct an empty frame of type \a type. Uses \a encoding as the - * default text encoding. - * - * \note In this case you must specify the text encoding as it - * resolves the ambiguity between constructors. - * - * \note Please see the note in the class description regarding Latin1. - */ - TextIdentificationFrame(const ByteVector &type, String::Type encoding); - - /*! - * This is a dual purpose constructor. \a data can either be binary data - * that should be parsed or (at a minimum) the frame ID. - */ - explicit TextIdentificationFrame(const ByteVector &data); - - /*! - * Destroys this TextIdentificationFrame instance. - */ - virtual ~TextIdentificationFrame(); - - /*! - * Text identification frames are a list of string fields. - * - * This function will accept either a StringList or a String (using the - * StringList constructor that accepts a single String). - * - * \note This will not change the text encoding of the frame even if the - * strings passed in are not of the same encoding. Please use - * setEncoding(s.type()) if you wish to change the encoding of the frame. - */ - void setText(const StringList &l); - - // Reimplementations. - - virtual void setText(const String &s); - virtual String toString() const; - - /*! - * Returns the text encoding that will be used in rendering this frame. - * This defaults to the type that was either specified in the constructor - * or read from the frame when parsed. - * - * \note Please see the note in the class description regarding Latin1. - * - * \see setTextEncoding() - * \see render() - */ - String::Type textEncoding() const; - - /*! - * Sets the text encoding to be used when rendering this frame to - * \a encoding. - * - * \note Please see the note in the class description regarding Latin1. - * - * \see textEncoding() - * \see render() - */ - void setTextEncoding(String::Type encoding); - - /*! - * Returns a list of the strings in this frame. - */ - StringList fieldList() const; - - protected: - // Reimplementations. - - virtual void parseFields(const ByteVector &data); - virtual ByteVector renderFields() const; - - /*! - * The constructor used by the FrameFactory. - */ - TextIdentificationFrame(const ByteVector &data, Header *h); - - private: - TextIdentificationFrame(const TextIdentificationFrame &); - TextIdentificationFrame &operator=(const TextIdentificationFrame &); - - class TextIdentificationFramePrivate; - TextIdentificationFramePrivate *d; - }; - - /*! - * This is a specialization of text identification frames that allows for - * user defined entries. Each entry has a description in addition to the - * normal list of fields that a text identification frame has. - * - * This description identifies the frame and must be unique. - */ - - //! An ID3v2 custom text identification frame implementationx - - class TAGLIB_EXPORT UserTextIdentificationFrame : public TextIdentificationFrame - { - friend class FrameFactory; - - public: - /*! - * Constructs an empty user defined text identification frame. For this to be - * a useful frame both a description and text must be set. - */ - explicit UserTextIdentificationFrame(String::Type encoding = String::Latin1); - - /*! - * Creates a frame based on \a data. - */ - explicit UserTextIdentificationFrame(const ByteVector &data); - - virtual String toString() const; - - /*! - * Returns the description for this frame. - */ - String description() const; - - /*! - * Sets the description of the frame to \a s. \a s must be unique. You can - * check for the presence of another user defined text frame of the same type - * using find() and testing for null. - */ - void setDescription(const String &s); - - StringList fieldList() const; - void setText(const String &text); - void setText(const StringList &fields); - - /*! - * Searches for the user defined text frame with the description \a description - * in \a tag. This returns null if no matching frames were found. - */ - static UserTextIdentificationFrame *find(Tag *tag, const String &description); - - private: - UserTextIdentificationFrame(const ByteVector &data, Header *h); - UserTextIdentificationFrame(const TextIdentificationFrame &); - UserTextIdentificationFrame &operator=(const UserTextIdentificationFrame &); - - void checkFields(); - - class UserTextIdentificationFramePrivate; - UserTextIdentificationFramePrivate *d; - }; - - } -} -#endif diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/uniquefileidentifierframe.cpp b/libs/taglib/taglib/mpeg/id3v2/frames/uniquefileidentifierframe.cpp deleted file mode 100644 index 836982bdf1..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/uniquefileidentifierframe.cpp +++ /dev/null @@ -1,118 +0,0 @@ -/*************************************************************************** - copyright : (C) 2002 - 2008 by Scott Wheeler - email : wheeler@kde.org - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * 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 * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser 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 * - * * - * Alternatively, this file is available under the Mozilla Public * - * License Version 1.1. You may obtain a copy of the License at * - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -#include <tbytevectorlist.h> -#include <tdebug.h> - -#include "uniquefileidentifierframe.h" - -using namespace TagLib; -using namespace ID3v2; - -class UniqueFileIdentifierFrame::UniqueFileIdentifierFramePrivate -{ -public: - String owner; - ByteVector identifier; -}; - -//////////////////////////////////////////////////////////////////////////////// -// public methods -//////////////////////////////////////////////////////////////////////////////// - -UniqueFileIdentifierFrame::UniqueFileIdentifierFrame(const ByteVector &data) : - ID3v2::Frame(data) -{ - d = new UniqueFileIdentifierFramePrivate; - setData(data); -} - -UniqueFileIdentifierFrame::UniqueFileIdentifierFrame(const String &owner, const ByteVector &id) : - ID3v2::Frame("UFID") -{ - d = new UniqueFileIdentifierFramePrivate; - d->owner = owner; - d->identifier = id; -} - -UniqueFileIdentifierFrame::~UniqueFileIdentifierFrame() -{ - delete d; -} - -String UniqueFileIdentifierFrame::owner() const -{ - return d->owner; -} - -ByteVector UniqueFileIdentifierFrame::identifier() const -{ - return d->identifier; -} - -void UniqueFileIdentifierFrame::setOwner(const String &s) -{ - d->owner = s; -} - -void UniqueFileIdentifierFrame::setIdentifier(const ByteVector &v) -{ - d->identifier = v; -} - -String UniqueFileIdentifierFrame::toString() const -{ - return String::null; -} - -void UniqueFileIdentifierFrame::parseFields(const ByteVector &data) -{ - if(data.size() < 1) { - debug("An UFID frame must contain at least 1 byte."); - return; - } - - int pos = 0; - d->owner = readStringField(data, String::Latin1, &pos); - d->identifier = data.mid(pos); -} - -ByteVector UniqueFileIdentifierFrame::renderFields() const -{ - ByteVector data; - - data.append(d->owner.data(String::Latin1)); - data.append(char(0)); - data.append(d->identifier); - - return data; -} - -UniqueFileIdentifierFrame::UniqueFileIdentifierFrame(const ByteVector &data, Header *h) : - Frame(h) -{ - d = new UniqueFileIdentifierFramePrivate; - parseFields(fieldData(data)); -} diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/uniquefileidentifierframe.h b/libs/taglib/taglib/mpeg/id3v2/frames/uniquefileidentifierframe.h deleted file mode 100644 index a0a66bb17d..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/uniquefileidentifierframe.h +++ /dev/null @@ -1,113 +0,0 @@ -/*************************************************************************** - copyright : (C) 2002 - 2008 by Scott Wheeler - email : wheeler@kde.org - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * 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 * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser 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 * - * * - * Alternatively, this file is available under the Mozilla Public * - * License Version 1.1. You may obtain a copy of the License at * - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -#ifndef TAGLIB_UNIQUEFILEIDENTIFIERFRAME -#define TAGLIB_UNIQUEFILEIDENTIFIERFRAME - -#include <id3v2frame.h> - -namespace TagLib { - - namespace ID3v2 { - - /*! - * This is an implementation of ID3v2 unique file identifier frames. This - * frame is used to identify the file in an arbitrary database identified - * by the owner field. - */ - - //! An implementation of ID3v2 unique identifier frames - - class TAGLIB_EXPORT UniqueFileIdentifierFrame : public ID3v2::Frame - { - friend class FrameFactory; - - public: - /*! - * Creates a uniqe file identifier frame based on \a data. - */ - UniqueFileIdentifierFrame(const ByteVector &data); - - /*! - * Creates a unique file identifier frame with the owner \a owner and - * the identification \a id. - */ - UniqueFileIdentifierFrame(const String &owner, const ByteVector &id); - - /*! - * Destroys the frame. - */ - ~UniqueFileIdentifierFrame(); - - /*! - * Returns the owner for the frame; essentially this is the key for - * determining which identification scheme this key belongs to. This - * will usually either be an email address or URL for the person or tool - * used to create the unique identifier. - * - * \see setOwner() - */ - String owner() const; - - /*! - * Returns the unique identifier. Though sometimes this is a text string - * it also may be binary data and as much should be assumed when handling - * it. - */ - ByteVector identifier() const; - - /*! - * Sets the owner of the identification scheme to \a s. - * - * \see owner() - */ - void setOwner(const String &s); - - /*! - * Sets the unique file identifier to \a v. - * - * \see identifier() - */ - void setIdentifier(const ByteVector &v); - - virtual String toString() const; - - protected: - virtual void parseFields(const ByteVector &data); - virtual ByteVector renderFields() const; - - private: - UniqueFileIdentifierFrame(const UniqueFileIdentifierFrame &); - UniqueFileIdentifierFrame &operator=(UniqueFileIdentifierFrame &); - - UniqueFileIdentifierFrame(const ByteVector &data, Header *h); - - class UniqueFileIdentifierFramePrivate; - UniqueFileIdentifierFramePrivate *d; - }; - } -} - -#endif diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/unknownframe.cpp b/libs/taglib/taglib/mpeg/id3v2/frames/unknownframe.cpp deleted file mode 100644 index 42b87c6916..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/unknownframe.cpp +++ /dev/null @@ -1,84 +0,0 @@ -/*************************************************************************** - copyright : (C) 2002 - 2008 by Scott Wheeler - email : wheeler@kde.org - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * 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 * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser 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 * - * * - * Alternatively, this file is available under the Mozilla Public * - * License Version 1.1. You may obtain a copy of the License at * - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -#include "unknownframe.h" - -using namespace TagLib; -using namespace ID3v2; - -class UnknownFrame::UnknownFramePrivate -{ -public: - ByteVector fieldData; -}; - -//////////////////////////////////////////////////////////////////////////////// -// public members -//////////////////////////////////////////////////////////////////////////////// - -UnknownFrame::UnknownFrame(const ByteVector &data) : Frame(data) -{ - d = new UnknownFramePrivate; - setData(data); -} - -UnknownFrame::~UnknownFrame() -{ - delete d; -} - -String UnknownFrame::toString() const -{ - return String::null; -} - -ByteVector UnknownFrame::data() const -{ - return d->fieldData; -} - -//////////////////////////////////////////////////////////////////////////////// -// protected members -//////////////////////////////////////////////////////////////////////////////// - -void UnknownFrame::parseFields(const ByteVector &data) -{ - d->fieldData = data; -} - -ByteVector UnknownFrame::renderFields() const -{ - return d->fieldData; -} - -//////////////////////////////////////////////////////////////////////////////// -// private members -//////////////////////////////////////////////////////////////////////////////// - -UnknownFrame::UnknownFrame(const ByteVector &data, Header *h) : Frame(h) -{ - d = new UnknownFramePrivate; - parseFields(fieldData(data)); -} diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/unknownframe.h b/libs/taglib/taglib/mpeg/id3v2/frames/unknownframe.h deleted file mode 100644 index 164a44a00c..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/unknownframe.h +++ /dev/null @@ -1,79 +0,0 @@ -/*************************************************************************** - copyright : (C) 2002 - 2008 by Scott Wheeler - email : wheeler@kde.org - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * 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 * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser 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 * - * * - * Alternatively, this file is available under the Mozilla Public * - * License Version 1.1. You may obtain a copy of the License at * - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -#ifndef TAGLIB_UNKNOWNFRAME_H -#define TAGLIB_UNKNOWNFRAME_H - -#include <id3v2frame.h> -#include "taglib_export.h" - -namespace TagLib { - - namespace ID3v2 { - - //! A frame type \e unknown to TagLib. - - /*! - * This class represents a frame type not known (or more often simply - * unimplemented) in TagLib. This is here provide a basic API for - * manipulating the binary data of unknown frames and to provide a means - * of rendering such \e unknown frames. - * - * Please note that a cleaner way of handling frame types that TagLib - * does not understand is to subclass ID3v2::Frame and ID3v2::FrameFactory - * to have your frame type supported through the standard ID3v2 mechanism. - */ - - class TAGLIB_EXPORT UnknownFrame : public Frame - { - friend class FrameFactory; - - public: - UnknownFrame(const ByteVector &data); - virtual ~UnknownFrame(); - - virtual String toString() const; - - /*! - * Returns the field data (everything but the header) for this frame. - */ - ByteVector data() const; - - protected: - virtual void parseFields(const ByteVector &data); - virtual ByteVector renderFields() const; - - private: - UnknownFrame(const ByteVector &data, Header *h); - UnknownFrame(const UnknownFrame &); - UnknownFrame &operator=(const UnknownFrame &); - - class UnknownFramePrivate; - UnknownFramePrivate *d; - }; - - } -} -#endif diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/unsynchronizedlyricsframe.cpp b/libs/taglib/taglib/mpeg/id3v2/frames/unsynchronizedlyricsframe.cpp deleted file mode 100644 index 4c907dd6e9..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/unsynchronizedlyricsframe.cpp +++ /dev/null @@ -1,162 +0,0 @@ -/*************************************************************************** - copyright : (C) 2002 - 2008 by Scott Wheeler - email : wheeler@kde.org - copyright : (C) 2006 by Urs Fleisch - email : ufleisch@users.sourceforge.net - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * 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 * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser 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 * - * * - * Alternatively, this file is available under the Mozilla Public * - * License Version 1.1. You may obtain a copy of the License at * - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -#include "unsynchronizedlyricsframe.h" -#include <tbytevectorlist.h> -#include <tdebug.h> - -using namespace TagLib; -using namespace ID3v2; - -class UnsynchronizedLyricsFrame::UnsynchronizedLyricsFramePrivate -{ -public: - UnsynchronizedLyricsFramePrivate() : textEncoding(String::Latin1) {} - String::Type textEncoding; - ByteVector language; - String description; - String text; -}; - -//////////////////////////////////////////////////////////////////////////////// -// public members -//////////////////////////////////////////////////////////////////////////////// - -UnsynchronizedLyricsFrame::UnsynchronizedLyricsFrame(String::Type encoding) : - Frame("USLT") -{ - d = new UnsynchronizedLyricsFramePrivate; - d->textEncoding = encoding; -} - -UnsynchronizedLyricsFrame::UnsynchronizedLyricsFrame(const ByteVector &data) : - Frame(data) -{ - d = new UnsynchronizedLyricsFramePrivate; - setData(data); -} - -UnsynchronizedLyricsFrame::~UnsynchronizedLyricsFrame() -{ - delete d; -} - -String UnsynchronizedLyricsFrame::toString() const -{ - return d->text; -} - -ByteVector UnsynchronizedLyricsFrame::language() const -{ - return d->language; -} - -String UnsynchronizedLyricsFrame::description() const -{ - return d->description; -} - -String UnsynchronizedLyricsFrame::text() const -{ - return d->text; -} - -void UnsynchronizedLyricsFrame::setLanguage(const ByteVector &languageEncoding) -{ - d->language = languageEncoding.mid(0, 3); -} - -void UnsynchronizedLyricsFrame::setDescription(const String &s) -{ - d->description = s; -} - -void UnsynchronizedLyricsFrame::setText(const String &s) -{ - d->text = s; -} - - -String::Type UnsynchronizedLyricsFrame::textEncoding() const -{ - return d->textEncoding; -} - -void UnsynchronizedLyricsFrame::setTextEncoding(String::Type encoding) -{ - d->textEncoding = encoding; -} - -//////////////////////////////////////////////////////////////////////////////// -// protected members -//////////////////////////////////////////////////////////////////////////////// - -void UnsynchronizedLyricsFrame::parseFields(const ByteVector &data) -{ - if(data.size() < 5) { - debug("An unsynchronized lyrics frame must contain at least 5 bytes."); - return; - } - - d->textEncoding = String::Type(data[0]); - d->language = data.mid(1, 3); - - int byteAlign - = d->textEncoding == String::Latin1 || d->textEncoding == String::UTF8 ? 1 : 2; - - ByteVectorList l = - ByteVectorList::split(data.mid(4), textDelimiter(d->textEncoding), byteAlign, 2); - - if(l.size() == 2) { - d->description = String(l.front(), d->textEncoding); - d->text = String(l.back(), d->textEncoding); - } -} - -ByteVector UnsynchronizedLyricsFrame::renderFields() const -{ - ByteVector v; - - v.append(char(d->textEncoding)); - v.append(d->language.size() == 3 ? d->language : "XXX"); - v.append(d->description.data(d->textEncoding)); - v.append(textDelimiter(d->textEncoding)); - v.append(d->text.data(d->textEncoding)); - - return v; -} - -//////////////////////////////////////////////////////////////////////////////// -// private members -//////////////////////////////////////////////////////////////////////////////// - -UnsynchronizedLyricsFrame::UnsynchronizedLyricsFrame(const ByteVector &data, Header *h) - : Frame(h) -{ - d = new UnsynchronizedLyricsFramePrivate(); - parseFields(fieldData(data)); -} diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/unsynchronizedlyricsframe.h b/libs/taglib/taglib/mpeg/id3v2/frames/unsynchronizedlyricsframe.h deleted file mode 100644 index 28cc1e8c55..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/unsynchronizedlyricsframe.h +++ /dev/null @@ -1,157 +0,0 @@ -/*************************************************************************** - copyright : (C) 2002 - 2008 by Scott Wheeler - email : wheeler@kde.org - copyright : (C) 2006 by Urs Fleisch - email : ufleisch@users.sourceforge.net - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * 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 * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser 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 * - * * - * Alternatively, this file is available under the Mozilla Public * - * License Version 1.1. You may obtain a copy of the License at * - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -#ifndef TAGLIB_UNSYNCHRONIZEDLYRICSFRAME_H -#define TAGLIB_UNSYNCHRONIZEDLYRICSFRAME_H - -#include <id3v2frame.h> - -namespace TagLib { - - namespace ID3v2 { - - //! ID3v2 unsynchronized lyrics frame - /*! - * An implementation of ID3v2 unsynchronized lyrics. - */ - class TAGLIB_EXPORT UnsynchronizedLyricsFrame : public Frame - { - friend class FrameFactory; - - public: - /*! - * Construct an empty unsynchronized lyrics frame that will use the text encoding - * \a encoding. - */ - explicit UnsynchronizedLyricsFrame(String::Type encoding = String::Latin1); - - /*! - * Construct a unsynchronized lyrics frame based on the data in \a data. - */ - explicit UnsynchronizedLyricsFrame(const ByteVector &data); - - /*! - * Destroys this UnsynchronizedLyricsFrame instance. - */ - virtual ~UnsynchronizedLyricsFrame(); - - /*! - * Returns the text of this unsynchronized lyrics frame. - * - * \see text() - */ - virtual String toString() const; - - /*! - * Returns the language encoding as a 3 byte encoding as specified by - * <a href="http://en.wikipedia.org/wiki/ISO_639">ISO-639-2</a>. - * - * \note Most taggers simply ignore this value. - * - * \see setLanguage() - */ - ByteVector language() const; - - /*! - * Returns the description of this unsynchronized lyrics frame. - * - * \note Most taggers simply ignore this value. - * - * \see setDescription() - */ - String description() const; - - /*! - * Returns the text of this unsynchronized lyrics frame. - * - * \see setText() - */ - String text() const; - - /*! - * Set the language using the 3 byte language code from - * <a href="http://en.wikipedia.org/wiki/ISO_639">ISO-639-2</a> to - * \a languageCode. - * - * \see language() - */ - void setLanguage(const ByteVector &languageCode); - - /*! - * Sets the description of the unsynchronized lyrics frame to \a s. - * - * \see decription() - */ - void setDescription(const String &s); - - /*! - * Sets the text portion of the unsynchronized lyrics frame to \a s. - * - * \see text() - */ - virtual void setText(const String &s); - - /*! - * Returns the text encoding that will be used in rendering this frame. - * This defaults to the type that was either specified in the constructor - * or read from the frame when parsed. - * - * \see setTextEncoding() - * \see render() - */ - String::Type textEncoding() const; - - /*! - * Sets the text encoding to be used when rendering this frame to - * \a encoding. - * - * \see textEncoding() - * \see render() - */ - void setTextEncoding(String::Type encoding); - - protected: - // Reimplementations. - - virtual void parseFields(const ByteVector &data); - virtual ByteVector renderFields() const; - - private: - /*! - * The constructor used by the FrameFactory. - */ - UnsynchronizedLyricsFrame(const ByteVector &data, Header *h); - UnsynchronizedLyricsFrame(const UnsynchronizedLyricsFrame &); - UnsynchronizedLyricsFrame &operator=(const UnsynchronizedLyricsFrame &); - - class UnsynchronizedLyricsFramePrivate; - UnsynchronizedLyricsFramePrivate *d; - }; - - } -} -#endif diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/urllinkframe.cpp b/libs/taglib/taglib/mpeg/id3v2/frames/urllinkframe.cpp deleted file mode 100644 index 25bdd187aa..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/urllinkframe.cpp +++ /dev/null @@ -1,192 +0,0 @@ -/*************************************************************************** - copyright : (C) 2002 - 2008 by Scott Wheeler - email : wheeler@kde.org - copyright : (C) 2006 by Urs Fleisch - email : ufleisch@users.sourceforge.net - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * 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 * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser 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 * - * * - * Alternatively, this file is available under the Mozilla Public * - * License Version 1.1. You may obtain a copy of the License at * - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -#include "urllinkframe.h" -#include <tdebug.h> -#include <tstringlist.h> - -using namespace TagLib; -using namespace ID3v2; - -class UrlLinkFrame::UrlLinkFramePrivate -{ -public: - String url; -}; - -class UserUrlLinkFrame::UserUrlLinkFramePrivate -{ -public: - UserUrlLinkFramePrivate() : textEncoding(String::Latin1) {} - String::Type textEncoding; - String description; -}; - -UrlLinkFrame::UrlLinkFrame(const ByteVector &data) : - Frame(data) -{ - d = new UrlLinkFramePrivate; - setData(data); -} - -UrlLinkFrame::~UrlLinkFrame() -{ - delete d; -} - -void UrlLinkFrame::setUrl(const String &s) -{ - d->url = s; -} - -String UrlLinkFrame::url() const -{ - return d->url; -} - -void UrlLinkFrame::setText(const String &s) -{ - setUrl(s); -} - -String UrlLinkFrame::toString() const -{ - return url(); -} - -void UrlLinkFrame::parseFields(const ByteVector &data) -{ - d->url = String(data); -} - -ByteVector UrlLinkFrame::renderFields() const -{ - return d->url.data(String::Latin1); -} - -UrlLinkFrame::UrlLinkFrame(const ByteVector &data, Header *h) : Frame(h) -{ - d = new UrlLinkFramePrivate; - parseFields(fieldData(data)); -} - - -UserUrlLinkFrame::UserUrlLinkFrame(String::Type encoding) : - UrlLinkFrame("WXXX") -{ - d = new UserUrlLinkFramePrivate; - d->textEncoding = encoding; -} - -UserUrlLinkFrame::UserUrlLinkFrame(const ByteVector &data) : - UrlLinkFrame(data) -{ - d = new UserUrlLinkFramePrivate; - setData(data); -} - -UserUrlLinkFrame::~UserUrlLinkFrame() -{ - delete d; -} - -String UserUrlLinkFrame::toString() const -{ - return "[" + description() + "] " + url(); -} - -String::Type UserUrlLinkFrame::textEncoding() const -{ - return d->textEncoding; -} - -void UserUrlLinkFrame::setTextEncoding(String::Type encoding) -{ - d->textEncoding = encoding; -} - -String UserUrlLinkFrame::description() const -{ - return d->description; -} - -void UserUrlLinkFrame::setDescription(const String &s) -{ - d->description = s; -} - -void UserUrlLinkFrame::parseFields(const ByteVector &data) -{ - if(data.size() < 2) { - debug("A user URL link frame must contain at least 2 bytes."); - return; - } - - int pos = 0; - - d->textEncoding = String::Type(data[0]); - pos += 1; - - if(d->textEncoding == String::Latin1 || d->textEncoding == String::UTF8) { - int offset = data.find(textDelimiter(d->textEncoding), pos); - if(offset < pos) - return; - - d->description = String(data.mid(pos, offset - pos), d->textEncoding); - pos = offset + 1; - } - else { - int len = data.mid(pos).find(textDelimiter(d->textEncoding), 0, 2); - if(len < 0) - return; - - d->description = String(data.mid(pos, len), d->textEncoding); - pos += len + 2; - } - - setUrl(String(data.mid(pos))); -} - -ByteVector UserUrlLinkFrame::renderFields() const -{ - ByteVector v; - - String::Type encoding = checkEncoding(d->description, d->textEncoding); - - v.append(char(encoding)); - v.append(d->description.data(encoding)); - v.append(textDelimiter(encoding)); - v.append(url().data(String::Latin1)); - - return v; -} - -UserUrlLinkFrame::UserUrlLinkFrame(const ByteVector &data, Header *h) : UrlLinkFrame(data, h) -{ - d = new UserUrlLinkFramePrivate; - parseFields(fieldData(data)); -} diff --git a/libs/taglib/taglib/mpeg/id3v2/frames/urllinkframe.h b/libs/taglib/taglib/mpeg/id3v2/frames/urllinkframe.h deleted file mode 100644 index 649f85dea6..0000000000 --- a/libs/taglib/taglib/mpeg/id3v2/frames/urllinkframe.h +++ /dev/null @@ -1,172 +0,0 @@ -/*************************************************************************** - copyright : (C) 2002 - 2008 by Scott Wheeler - email : wheeler@kde.org - copyright : (C) 2006 by Urs Fleisch - email : ufleisch@users.sourceforge.net - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * 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 * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser 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 * - * * - * Alternatively, this file is available under the Mozilla Public * - * License Version 1.1. You may obtain a copy of the License at * - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -#ifndef TAGLIB_URLLINKFRAME_H -#define TAGLIB_URLLINKFRAME_H - -#include <id3v2frame.h> - -namespace TagLib { - - namespace ID3v2 { - - //! ID3v2 URL frame - /*! - * An implementation of ID3v2 URL link frames. - */ - class TAGLIB_EXPORT UrlLinkFrame : public Frame - { - friend class FrameFactory; - - public: - /*! - * This is a dual purpose constructor. \a data can either be binary data - * that should be parsed or (at a minimum) the frame ID. - */ - explicit UrlLinkFrame(const ByteVector &data); - - /*! - * Destroys this UrlLinkFrame instance. - */ - virtual ~UrlLinkFrame(); - - /*! - * Returns the URL. - */ - virtual String url() const; - - /*! - * Sets the URL to \a s. - */ - virtual void setUrl(const String &s); - - // Reimplementations. - - virtual void setText(const String &s); - virtual String toString() const; - - protected: - virtual void parseFields(const ByteVector &data); - virtual ByteVector renderFields() const; - - /*! - * The constructor used by the FrameFactory. - */ - UrlLinkFrame(const ByteVector &data, Header *h); - - private: - UrlLinkFrame(const UrlLinkFrame &); - UrlLinkFrame &operator=(const UrlLinkFrame &); - - class UrlLinkFramePrivate; - UrlLinkFramePrivate *d; - }; - - //! ID3v2 User defined URL frame - - /*! - * This is a specialization of URL link frames that allows for - * user defined entries. Each entry has a description in addition to the - * normal list of fields that a URL link frame has. - * - * This description identifies the frame and must be unique. - */ - class TAGLIB_EXPORT UserUrlLinkFrame : public UrlLinkFrame - { - friend class FrameFactory; - - public: - /*! - * Constructs an empty user defined URL link frame. For this to be - * a useful frame both a description and text must be set. - */ - explicit UserUrlLinkFrame(String::Type encoding = String::Latin1); - - /*! - * This is a dual purpose constructor. \a data can either be binary data - * that should be parsed or (at a minimum) the frame ID. - */ - explicit UserUrlLinkFrame(const ByteVector &data); - - /*! - * Destroys this UserUrlLinkFrame instance. - */ - virtual ~UserUrlLinkFrame(); - - // Reimplementations. - - virtual String toString() const; - - /*! - * Returns the text encoding that will be used in rendering this frame. - * This defaults to the type that was either specified in the constructor - * or read from the frame when parsed. - * - * \see setTextEncoding() - * \see render() - */ - String::Type textEncoding() const; - - /*! - * Sets the text encoding to be used when rendering this frame to - * \a encoding. - * - * \see textEncoding() - * \see render() - */ - void setTextEncoding(String::Type encoding); - - /*! - * Returns the description for this frame. - */ - String description() const; - - /*! - * Sets the description of the frame to \a s. \a s must be unique. - */ - void setDescription(const String &s); - - protected: - virtual void parseFields(const ByteVector &data); - virtual ByteVector renderFields() const; - - /*! - * The constructor used by the FrameFactory. - */ - UserUrlLinkFrame(const ByteVector &data, Header *h); - - private: - UserUrlLinkFrame(const UserUrlLinkFrame &); - UserUrlLinkFrame &operator=(const UserUrlLinkFrame &); - - class UserUrlLinkFramePrivate; - UserUrlLinkFramePrivate *d; - }; - - } -} -#endif |