summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormio <stigma@disroot.org>2024-09-26 21:42:32 +1000
committerMichele Calgaro <michele.calgaro@yahoo.it>2024-09-30 21:53:09 +0900
commite8dc45c83833a317a2518236829f2875ead1aa36 (patch)
tree80d054cbddceb6d61e7457fa5cb3ae3ba07be730
parent09dcfc68c84c9b7eacb53648c4c099e074143cd7 (diff)
downloadamarok-e8dc45c83833a317a2518236829f2875ead1aa36.tar.gz
amarok-e8dc45c83833a317a2518236829f2875ead1aa36.zip
Replace custom MP4 metadata parser with TagLib
TagLib supports MP4 metadata since version 1.6 (2009). The custom parser code caused problems because there was a mismatch between the definition of TagLib::Tag and TagLib::MP4::Tag, and the implementation of the custom TagLib::MP4::Tag. This requires TagLib 1.11 and above. Resolves: TDE/tdemultimedia#82 Signed-off-by: mio <stigma@disroot.org> (cherry picked from commit 460320e57786ec9a708ac7ba4191b15a305f9394)
-rw-r--r--CMakeLists.txt1
-rw-r--r--ConfigureChecks.cmake4
-rw-r--r--amarok/src/metabundle.cpp101
-rw-r--r--amarok/src/metadata/CMakeLists.txt8
-rw-r--r--amarok/src/metadata/m4a/CMakeLists.txt33
-rw-r--r--amarok/src/metadata/m4a/Makefile.am84
-rw-r--r--amarok/src/metadata/m4a/boxfactory.cpp150
-rw-r--r--amarok/src/metadata/m4a/boxfactory.h45
-rw-r--r--amarok/src/metadata/m4a/itunesalbbox.cpp89
-rw-r--r--amarok/src/metadata/m4a/itunesalbbox.h50
-rw-r--r--amarok/src/metadata/m4a/itunesartbox.cpp89
-rw-r--r--amarok/src/metadata/m4a/itunesartbox.h50
-rw-r--r--amarok/src/metadata/m4a/itunescmtbox.cpp89
-rw-r--r--amarok/src/metadata/m4a/itunescmtbox.h50
-rw-r--r--amarok/src/metadata/m4a/itunescvrbox.cpp89
-rw-r--r--amarok/src/metadata/m4a/itunescvrbox.h50
-rw-r--r--amarok/src/metadata/m4a/itunesdatabox.cpp63
-rw-r--r--amarok/src/metadata/m4a/itunesdatabox.h53
-rw-r--r--amarok/src/metadata/m4a/itunesdaybox.cpp89
-rw-r--r--amarok/src/metadata/m4a/itunesdaybox.h50
-rw-r--r--amarok/src/metadata/m4a/itunesdiskbox.cpp93
-rw-r--r--amarok/src/metadata/m4a/itunesdiskbox.h50
-rw-r--r--amarok/src/metadata/m4a/itunesgenbox.cpp89
-rw-r--r--amarok/src/metadata/m4a/itunesgenbox.h50
-rw-r--r--amarok/src/metadata/m4a/itunesgrpbox.cpp89
-rw-r--r--amarok/src/metadata/m4a/itunesgrpbox.h50
-rw-r--r--amarok/src/metadata/m4a/itunesnambox.cpp89
-rw-r--r--amarok/src/metadata/m4a/itunesnambox.h50
-rw-r--r--amarok/src/metadata/m4a/itunestmpobox.cpp93
-rw-r--r--amarok/src/metadata/m4a/itunestmpobox.h50
-rw-r--r--amarok/src/metadata/m4a/itunestrknbox.cpp93
-rw-r--r--amarok/src/metadata/m4a/itunestrknbox.h50
-rw-r--r--amarok/src/metadata/m4a/ituneswrtbox.cpp89
-rw-r--r--amarok/src/metadata/m4a/ituneswrtbox.h50
-rw-r--r--amarok/src/metadata/m4a/mp4audioproperties.cpp75
-rw-r--r--amarok/src/metadata/m4a/mp4audioproperties.h73
-rw-r--r--amarok/src/metadata/m4a/mp4audiosampleentry.cpp146
-rw-r--r--amarok/src/metadata/m4a/mp4audiosampleentry.h57
-rw-r--r--amarok/src/metadata/m4a/mp4file.cpp377
-rw-r--r--amarok/src/metadata/m4a/mp4file.h169
-rw-r--r--amarok/src/metadata/m4a/mp4fourcc.cpp84
-rw-r--r--amarok/src/metadata/m4a/mp4fourcc.h63
-rw-r--r--amarok/src/metadata/m4a/mp4hdlrbox.cpp75
-rw-r--r--amarok/src/metadata/m4a/mp4hdlrbox.h53
-rw-r--r--amarok/src/metadata/m4a/mp4ilstbox.cpp97
-rw-r--r--amarok/src/metadata/m4a/mp4ilstbox.h49
-rw-r--r--amarok/src/metadata/m4a/mp4isobox.cpp76
-rw-r--r--amarok/src/metadata/m4a/mp4isobox.h67
-rw-r--r--amarok/src/metadata/m4a/mp4isofullbox.cpp67
-rw-r--r--amarok/src/metadata/m4a/mp4isofullbox.h57
-rw-r--r--amarok/src/metadata/m4a/mp4itunestag.cpp197
-rw-r--r--amarok/src/metadata/m4a/mp4itunestag.h95
-rw-r--r--amarok/src/metadata/m4a/mp4mdiabox.cpp111
-rw-r--r--amarok/src/metadata/m4a/mp4mdiabox.h49
-rw-r--r--amarok/src/metadata/m4a/mp4metabox.cpp86
-rw-r--r--amarok/src/metadata/m4a/mp4metabox.h49
-rw-r--r--amarok/src/metadata/m4a/mp4minfbox.cpp104
-rw-r--r--amarok/src/metadata/m4a/mp4minfbox.h51
-rw-r--r--amarok/src/metadata/m4a/mp4moovbox.cpp86
-rw-r--r--amarok/src/metadata/m4a/mp4moovbox.h49
-rw-r--r--amarok/src/metadata/m4a/mp4mvhdbox.cpp140
-rw-r--r--amarok/src/metadata/m4a/mp4mvhdbox.h65
-rw-r--r--amarok/src/metadata/m4a/mp4propsproxy.cpp89
-rw-r--r--amarok/src/metadata/m4a/mp4propsproxy.h65
-rw-r--r--amarok/src/metadata/m4a/mp4sampleentry.cpp59
-rw-r--r--amarok/src/metadata/m4a/mp4sampleentry.h54
-rw-r--r--amarok/src/metadata/m4a/mp4skipbox.cpp50
-rw-r--r--amarok/src/metadata/m4a/mp4skipbox.h50
-rw-r--r--amarok/src/metadata/m4a/mp4stblbox.cpp105
-rw-r--r--amarok/src/metadata/m4a/mp4stblbox.h51
-rw-r--r--amarok/src/metadata/m4a/mp4stsdbox.cpp91
-rw-r--r--amarok/src/metadata/m4a/mp4stsdbox.h51
-rw-r--r--amarok/src/metadata/m4a/mp4tagsproxy.cpp168
-rw-r--r--amarok/src/metadata/m4a/mp4tagsproxy.h99
-rw-r--r--amarok/src/metadata/m4a/mp4trakbox.cpp86
-rw-r--r--amarok/src/metadata/m4a/mp4trakbox.h49
-rw-r--r--amarok/src/metadata/m4a/mp4udtabox.cpp95
-rw-r--r--amarok/src/metadata/m4a/mp4udtabox.h49
-rw-r--r--amarok/src/metadata/m4a/taglib_mp4filetyperesolver.cpp42
-rw-r--r--amarok/src/metadata/m4a/taglib_mp4filetyperesolver.h36
-rw-r--r--amarok/src/metadata/mp4/CMakeLists.txt32
-rw-r--r--amarok/src/metadata/mp4/Makefile.am18
-rw-r--r--amarok/src/metadata/mp4/mp4file.cpp260
-rw-r--r--amarok/src/metadata/mp4/mp4file.h86
-rw-r--r--amarok/src/metadata/mp4/mp4properties.cpp122
-rw-r--r--amarok/src/metadata/mp4/mp4properties.h93
-rw-r--r--amarok/src/metadata/mp4/mp4tag.cpp183
-rw-r--r--amarok/src/metadata/mp4/mp4tag.h234
-rw-r--r--amarok/src/metadata/mp4/taglib_mp4filetyperesolver.cpp53
-rw-r--r--amarok/src/metadata/mp4/taglib_mp4filetyperesolver.h42
-rw-r--r--amarok/src/metadata/tplugins.cpp10
91 files changed, 82 insertions, 7229 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 238bbfd7..83acb904 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -57,7 +57,6 @@ option( WITH_NJB "Enable Nomad Jukebox support"
option( WITH_MTP "Enable MTP devices support" ${WITH_ALL_OPTIONS} )
option( WITH_IFP "Enable iRiver iFP Support" ${WITH_ALL_OPTIONS} )
option( WITH_IPOD "Enable iPod support from libgpod" ${WITH_ALL_OPTIONS} )
-option( WITH_MP4V2 "Enable MP4/AAC Tag Write Support from mp4v2" ${WITH_ALL_OPTIONS} )
option( WITH_DAAP "Enable DAAP Music Sharing Support" ${WITH_ALL_OPTIONS} )
option( WITH_EMBEDDED_SQLITE "Build with embedded Sqlite" OFF )
option( WITH_SYSTEM_SQLITE "Build with system Sqlite" ${WITH_ALL_OPTIONS} )
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
index bab3b80d..fdbd5545 100644
--- a/ConfigureChecks.cmake
+++ b/ConfigureChecks.cmake
@@ -99,8 +99,8 @@ tde_restore( CMAKE_REQUIRED_LIBRARIES )
# taglib
pkg_search_module( TAGLIB taglib )
if( TAGLIB_FOUND )
- if( ${TAGLIB_VERSION} VERSION_LESS "1.5" )
- tde_message_fatal( "taglib version must be at least 1.5" )
+ if( ${TAGLIB_VERSION} VERSION_LESS "1.11" )
+ tde_message_fatal( "taglib version must be at least 1.11" )
else( )
set( TAGLIB_15 1 )
message( STATUS "Found TAGLIB: ${TAGLIB_INCLUDE_DIRS}" )
diff --git a/amarok/src/metabundle.cpp b/amarok/src/metabundle.cpp
index aa27b4d2..eb4ee327 100644
--- a/amarok/src/metabundle.cpp
+++ b/amarok/src/metabundle.cpp
@@ -35,11 +35,13 @@
#include <taglib/id3v1genres.h> //used to load genre list
#include <taglib/mpegfile.h>
#include <taglib/tag.h>
+#include <taglib/tpropertymap.h>
#include <taglib/tstring.h>
#include <taglib/tlist.h>
#include <taglib/apetag.h>
#include <taglib/id3v2tag.h>
#include <taglib/id3v1tag.h>
+#include <taglib/mp4file.h>
#include <taglib/mpcfile.h>
#include <taglib/mpegfile.h>
#include <taglib/oggfile.h>
@@ -51,13 +53,6 @@
#include <taglib/xiphcomment.h>
#include <config.h>
-#ifdef HAVE_MP4V2
-#include "metadata/mp4/mp4file.h"
-#include "metadata/mp4/mp4tag.h"
-#else
-#include "metadata/m4a/mp4file.h"
-#include "metadata/m4a/mp4itunestag.h"
-#endif
#include "lastfm.h"
#include "metabundle.h"
@@ -484,8 +479,14 @@ MetaBundle::embeddedImages( MetaBundle::EmbeddedImageList& images ) const
loadImagesFromTag( *file->ID3v2Tag(), images );
} else if ( TagLib::MP4::File *file = dynamic_cast<TagLib::MP4::File *>( fileref.file() ) ) {
TagLib::MP4::Tag *mp4tag = dynamic_cast<TagLib::MP4::Tag *>( file->tag() );
- if( mp4tag && mp4tag->cover().size() ) {
- images.push_back( EmbeddedImage( mp4tag->cover(), "" ) );
+ if (mp4tag)
+ {
+ TagLib::MP4::Item coverItem = mp4tag->item("covr");
+ if (coverItem.isValid())
+ {
+ TagLib::MP4::CoverArt coverArt = coverItem.toCoverArtList().front();
+ images.push_back(EmbeddedImage(coverArt.data(), ""));
+ }
}
}
}
@@ -600,14 +601,39 @@ MetaBundle::readTags( TagLib::AudioProperties::ReadStyle readStyle, EmbeddedImag
{
m_type = mp4;
TagLib::MP4::Tag *mp4tag = dynamic_cast<TagLib::MP4::Tag *>( file->tag() );
- if( mp4tag )
+ if (mp4tag)
{
- setComposer( TStringToTQString( mp4tag->composer() ) );
- setBpm( TQString::number( mp4tag->bpm() ).toFloat() );
- disc = TQString::number( mp4tag->disk() );
- compilation = TQString::number( mp4tag->compilation() );
- if ( images && mp4tag->cover().size() ) {
- images->push_back( EmbeddedImage( mp4tag->cover(), "" ) );
+ TagLib::PropertyMap properties = mp4tag->properties();
+
+ auto property = properties.find("COMPOSER");
+ if (property != properties.end())
+ {
+ setComposer(TStringToTQString(property->second.front()).stripWhiteSpace());
+ }
+
+ property = properties.find("BPM");
+ if (property != properties.end())
+ {
+ setBpm(TStringToTQString(property->second.front()).toFloat());
+ }
+
+ property = properties.find("DISCNUMBER");
+ if (property != properties.end())
+ {
+ disc = TStringToTQString(property->second.front());
+ }
+
+ property = properties.find("COMPILATION");
+ if (property != properties.end())
+ {
+ compilation = TStringToTQString(property->second.front());
+ }
+
+ TagLib::MP4::Item coverItem = mp4tag->item("covr");
+ if (images && coverItem.isValid())
+ {
+ TagLib::MP4::CoverArt coverArt = coverItem.toCoverArtList().front();
+ images->push_back(EmbeddedImage(coverArt.data(), ""));
}
}
}
@@ -1360,18 +1386,47 @@ MetaBundle::setExtendedTag( TagLib::File *file, int tag, const TQString value )
flacFile->xiphComment()->addField( id, QStringToTString( value ), true );
}
}
- else if ( m_type == mp4 )
+ else if (m_type == mp4)
{
TagLib::MP4::Tag *mp4tag = dynamic_cast<TagLib::MP4::Tag *>( file->tag() );
- if( mp4tag )
+ if (mp4tag)
{
- switch( tag )
+ TagLib::PropertyMap properties = mp4tag->properties();
+
+ switch (tag)
{
- case ( composerTag ): mp4tag->setComposer( QStringToTString( value ) ); break;
- case ( discNumberTag ): mp4tag->setDisk( value.toInt() );
- case ( bpmTag ): mp4tag->setBpm( value.toInt() ); // mp4 doesn't support float bpm
- case ( compilationTag ): mp4tag->setCompilation( value.toInt() == CompilationYes );
+ case composerTag:
+ {
+ properties.replace("COMPOSER", QStringToTString(value));
+ break;
+ }
+ case discNumberTag:
+ {
+ properties.replace("DISCNUMBER", QStringToTString(value));
+ break;
+ }
+ case bpmTag:
+ {
+ /* MP4 doesn't support float BPM */
+ properties.replace("BPM", QStringToTString(value));
+ break;
+ }
+ case albumArtistTag:
+ {
+ properties.replace("ALBUMARTIST", QStringToTString(value));
+ break;
+ }
+ case compilationTag:
+ {
+ mp4tag->setItem("cpil", TagLib::MP4::Item(value.toInt() == CompilationYes));
+ break;
+ }
+ default:
+ {
+ break;
+ }
}
+ file->setProperties(properties);
}
}
}
diff --git a/amarok/src/metadata/CMakeLists.txt b/amarok/src/metadata/CMakeLists.txt
index c460ff33..04ce9c77 100644
--- a/amarok/src/metadata/CMakeLists.txt
+++ b/amarok/src/metadata/CMakeLists.txt
@@ -15,12 +15,6 @@ add_subdirectory( rmff )
add_subdirectory( aac )
add_subdirectory( wav )
-if( WITH_MP4V2 )
- add_subdirectory( mp4 )
-else( )
- add_subdirectory( m4a )
-endif( )
-
include_directories(
${CMAKE_BINARY_DIR}
${CMAKE_SOURCE_DIR}/amarok/src
@@ -36,5 +30,5 @@ tde_add_library( metadata STATIC_PIC
SOURCES tplugins.cpp
LINK
tagasf-static tagaudible-static tagrealmedia-static
- tagaac-static tagwav-static common-tagmp4-static
+ tagaac-static tagwav-static
)
diff --git a/amarok/src/metadata/m4a/CMakeLists.txt b/amarok/src/metadata/m4a/CMakeLists.txt
deleted file mode 100644
index 84dc6a04..00000000
--- a/amarok/src/metadata/m4a/CMakeLists.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-#################################################
-#
-# (C) 2010-2011 Serghei Amelian
-# serghei (DOT) amelian (AT) gmail.com
-#
-# Improvements and feedback are welcome
-#
-# This file is released under GPL >= 2
-#
-#################################################
-
-include_directories(
- ${CMAKE_BINARY_DIR}
- ${TDE_INCLUDE_DIR}
- ${TQT_INCLUDE_DIRS}
- ${TAGLIB_INCLUDE_DIRS}
-)
-
-
-##### tagm4a (static) ###########################
-
-tde_add_library( common-tagmp4 STATIC_PIC
- SOURCES
- taglib_mp4filetyperesolver.cpp mp4file.cpp mp4itunestag.cpp mp4isobox.cpp
- mp4isofullbox.cpp mp4skipbox.cpp mp4moovbox.cpp mp4mvhdbox.cpp
- mp4ilstbox.cpp boxfactory.cpp mp4fourcc.cpp mp4udtabox.cpp mp4metabox.cpp
- mp4tagsproxy.cpp mp4mdiabox.cpp mp4minfbox.cpp mp4audioproperties.cpp
- mp4hdlrbox.cpp mp4stblbox.cpp mp4audiosampleentry.cpp mp4stsdbox.cpp
- mp4sampleentry.cpp mp4trakbox.cpp mp4propsproxy.cpp itunesnambox.cpp
- itunesartbox.cpp itunesalbbox.cpp itunescvrbox.cpp itunesgenbox.cpp
- itunestrknbox.cpp itunesdaybox.cpp itunescmtbox.cpp itunesgrpbox.cpp
- ituneswrtbox.cpp itunesdiskbox.cpp itunestmpobox.cpp itunesdatabox.cpp
-)
diff --git a/amarok/src/metadata/m4a/Makefile.am b/amarok/src/metadata/m4a/Makefile.am
deleted file mode 100644
index 534fbcae..00000000
--- a/amarok/src/metadata/m4a/Makefile.am
+++ /dev/null
@@ -1,84 +0,0 @@
-SUBDIRS =
-METASOURCES = AUTO
-INCLUDES = $(all_includes) $(TAGLIB_CFLAGS)
-
-libtagm4a_la_LDFLAGS = $(all_libraries)
-noinst_LTLIBRARIES = libtagm4a.la
-
-libtagm4a_la_SOURCES = \
- taglib_mp4filetyperesolver.cpp \
- mp4file.cpp \
- mp4itunestag.cpp \
- mp4isobox.cpp \
- mp4isofullbox.cpp \
- mp4skipbox.cpp \
- mp4moovbox.cpp \
- mp4mvhdbox.cpp \
- mp4ilstbox.cpp \
- boxfactory.cpp \
- mp4fourcc.cpp \
- mp4udtabox.cpp \
- mp4metabox.cpp \
- mp4tagsproxy.cpp \
- mp4mdiabox.cpp \
- mp4minfbox.cpp \
- mp4audioproperties.cpp \
- mp4hdlrbox.cpp \
- mp4stblbox.cpp \
- mp4audiosampleentry.cpp \
- mp4stsdbox.cpp \
- mp4sampleentry.cpp \
- mp4trakbox.cpp \
- mp4propsproxy.cpp \
- itunesnambox.cpp \
- itunesartbox.cpp \
- itunesalbbox.cpp \
- itunescvrbox.cpp \
- itunesgenbox.cpp \
- itunestrknbox.cpp \
- itunesdaybox.cpp \
- itunescmtbox.cpp \
- itunesgrpbox.cpp \
- ituneswrtbox.cpp \
- itunesdiskbox.cpp \
- itunestmpobox.cpp \
- itunesdatabox.cpp
-
-noinst_HEADERS = \
- taglib_mp4filetyperesolver.h \
- mp4file.h \
- mp4itunestag.h \
- mp4isobox.h \
- mp4isofullbox.h \
- mp4skipbox.h \
- mp4moovbox.h \
- mp4mvhdbox.h \
- mp4ilstbox.h \
- boxfactory.h \
- mp4fourcc.h \
- mp4udtabox.h \
- mp4metabox.h \
- mp4tagsproxy.h \
- mp4audioproperties.h \
- mp4hdlrbox.h \
- mp4propsproxy.h \
- mp4mdiabox.h \
- mp4stsdbox.h \
- mp4trakbox.h \
- mp4stblbox.h \
- mp4audiosampleentry.h \
- mp4minfbox.h \
- mp4sampleentry.h \
- itunesnambox.h \
- itunesartbox.h \
- itunesalbbox.h \
- itunesgenbox.h \
- itunestrknbox.h \
- itunesdaybox.h \
- itunescmtbox.h \
- itunescvrbox.h \
- itunesgrpbox.h \
- ituneswrtbox.h \
- itunesdiskbox.h \
- itunestmpobox.h \
- itunesdatabox.h
diff --git a/amarok/src/metadata/m4a/boxfactory.cpp b/amarok/src/metadata/m4a/boxfactory.cpp
deleted file mode 100644
index 0fc8eb4d..00000000
--- a/amarok/src/metadata/m4a/boxfactory.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <iostream>
-#include "tstring.h"
-#include "boxfactory.h"
-#include "mp4skipbox.h"
-#include "mp4moovbox.h"
-#include "mp4mvhdbox.h"
-#include "mp4trakbox.h"
-#include "mp4mdiabox.h"
-#include "mp4minfbox.h"
-#include "mp4stblbox.h"
-#include "mp4stsdbox.h"
-#include "mp4hdlrbox.h"
-#include "mp4udtabox.h"
-#include "mp4metabox.h"
-#include "mp4ilstbox.h"
-#include "itunesnambox.h"
-#include "itunesartbox.h"
-#include "itunesalbbox.h"
-#include "itunesgenbox.h"
-#include "itunesdaybox.h"
-#include "itunestrknbox.h"
-#include "itunescmtbox.h"
-#include "itunesgrpbox.h"
-#include "ituneswrtbox.h"
-#include "itunesdiskbox.h"
-#include "itunestmpobox.h"
-#include "itunescvrbox.h"
-#include "itunesdatabox.h"
-
-using namespace TagLib;
-
-MP4::BoxFactory::BoxFactory()
-{
-}
-
-MP4::BoxFactory::~BoxFactory()
-{
-}
-
-//! factory function
-MP4::Mp4IsoBox* MP4::BoxFactory::createInstance( TagLib::File* anyfile, MP4::Fourcc fourcc, uint size, long offset ) const
-{
- MP4::File * file = dynamic_cast<MP4::File *>(anyfile);
- if(!file)
- return 0;
-
- //std::cout << "creating box for: " << fourcc.toString() << std::endl;
-
- switch( fourcc )
- {
- case 0x6d6f6f76: // 'moov'
- return new MP4::Mp4MoovBox( file, fourcc, size, offset );
- break;
- case 0x6d766864: // 'mvhd'
- return new MP4::Mp4MvhdBox( file, fourcc, size, offset );
- break;
- case 0x7472616b: // 'trak'
- return new MP4::Mp4TrakBox( file, fourcc, size, offset );
- break;
- case 0x6d646961: // 'mdia'
- return new MP4::Mp4MdiaBox( file, fourcc, size, offset );
- break;
- case 0x6d696e66: // 'minf'
- return new MP4::Mp4MinfBox( file, fourcc, size, offset );
- break;
- case 0x7374626c: // 'stbl'
- return new MP4::Mp4StblBox( file, fourcc, size, offset );
- break;
- case 0x73747364: // 'stsd'
- return new MP4::Mp4StsdBox( file, fourcc, size, offset );
- break;
- case 0x68646c72: // 'hdlr'
- return new MP4::Mp4HdlrBox( file, fourcc, size, offset );
- break;
- case 0x75647461: // 'udta'
- return new MP4::Mp4UdtaBox( file, fourcc, size, offset );
- break;
- case 0x6d657461: // 'meta'
- return new MP4::Mp4MetaBox( file, fourcc, size, offset );
- break;
- case 0x696c7374: // 'ilst'
- return new MP4::Mp4IlstBox( file, fourcc, size, offset );
- break;
- case 0xa96e616d: // '_nam'
- return new MP4::ITunesNamBox( file, fourcc, size, offset );
- break;
- case 0xa9415254: // '_ART'
- return new MP4::ITunesArtBox( file, fourcc, size, offset );
- break;
- case 0xa9616c62: // '_alb'
- return new MP4::ITunesAlbBox( file, fourcc, size, offset );
- break;
- case 0xa967656e: // '_gen'
- return new MP4::ITunesGenBox( file, fourcc, size, offset );
- break;
- case 0x676e7265: // 'gnre'
- return new MP4::ITunesGenBox( file, fourcc, size, offset );
- break;
- case 0xa9646179: // '_day'
- return new MP4::ITunesDayBox( file, fourcc, size, offset );
- break;
- case 0x74726b6e: // 'trkn'
- return new MP4::ITunesTrknBox( file, fourcc, size, offset );
- break;
- case 0xa9636d74: // '_cmt'
- return new MP4::ITunesCmtBox( file, fourcc, size, offset );
- break;
- case 0xa9677270: // '_grp'
- return new MP4::ITunesGrpBox( file, fourcc, size, offset );
- break;
- case 0xa9777274: // '_wrt'
- return new MP4::ITunesWrtBox( file, fourcc, size, offset );
- break;
- case 0x6469736b: // 'disk'
- return new MP4::ITunesDiskBox( file, fourcc, size, offset );
- break;
- case 0x746d706f: // 'tmpo'
- return new MP4::ITunesTmpoBox( file, fourcc, size, offset );
- break;
- case 0x636f7672: // 'covr'
- return new MP4::ITunesCvrBox( file, fourcc, size, offset );
- break;
- case 0x64616461: // 'data'
- return new MP4::ITunesDataBox( file, fourcc, size, offset );
- break;
- default:
- return new MP4::Mp4SkipBox( file, fourcc, size, offset );
- }
-}
diff --git a/amarok/src/metadata/m4a/boxfactory.h b/amarok/src/metadata/m4a/boxfactory.h
deleted file mode 100644
index 7edcd6c9..00000000
--- a/amarok/src/metadata/m4a/boxfactory.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef BOXFACTORY_H
-#define BOXFACTORY_H
-
-#include "taglib.h"
-#include "mp4isobox.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class BoxFactory
- {
- public:
- BoxFactory();
- ~BoxFactory();
-
- //! factory function
- Mp4IsoBox* createInstance( TagLib::File* anyfile, MP4::Fourcc fourcc, uint size, long offset ) const;
- }; // class BoxFactory
-
- } // namepace MP4
-} // namepace TagLib
-
-#endif // BOXFACTORY_H
diff --git a/amarok/src/metadata/m4a/itunesalbbox.cpp b/amarok/src/metadata/m4a/itunesalbbox.cpp
deleted file mode 100644
index c3412e57..00000000
--- a/amarok/src/metadata/m4a/itunesalbbox.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <iostream>
-#include "itunesalbbox.h"
-#include "itunesdatabox.h"
-#include "mp4isobox.h"
-#include "mp4file.h"
-#include "tfile.h"
-#include "mp4tagsproxy.h"
-
-using namespace TagLib;
-
-class MP4::ITunesAlbBox::ITunesAlbBoxPrivate
-{
-public:
- ITunesDataBox* dataBox;
-};
-
-MP4::ITunesAlbBox::ITunesAlbBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- :Mp4IsoBox(file, fourcc, size, offset)
-{
- d = new MP4::ITunesAlbBox::ITunesAlbBoxPrivate();
- d->dataBox = 0;
-}
-
-MP4::ITunesAlbBox::~ITunesAlbBox()
-{
- if( d->dataBox != 0 )
- delete d->dataBox;
- delete d;
-}
-
-//! parse the content of the box
-void MP4::ITunesAlbBox::parse()
-{
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- // parse data box
- uint size;
- MP4::Fourcc fourcc;
-
- if(mp4file->readSizeAndType( size, fourcc ) == true)
- {
- // check for type - must be 'data'
- if( fourcc != MP4::Fourcc("data") )
- {
- std::cerr << "bad atom in itunes tag - skipping it." << std::endl;
- // jump over data tag
- mp4file->seek( size-8, TagLib::File::Current );
- return;
- }
- d->dataBox = new ITunesDataBox( mp4file, fourcc, size, mp4file->tell() );
- d->dataBox->parsebox();
- }
- else
- {
- // reading unsuccessful - serious error!
- std::cerr << "Error in parsing ITunesAlbBox - serious Error in taglib!" << std::endl;
- return;
- }
- // register data box
- mp4file->tagProxy()->registerBox( Mp4TagsProxy::album, d->dataBox );
-
-#if 0
- // get data pointer - just for debugging...
- TagLib::String dataString( d->dataBox->data() );
- std::cout << "Content of album box: " << dataString << std::endl;
-#endif
-}
-
diff --git a/amarok/src/metadata/m4a/itunesalbbox.h b/amarok/src/metadata/m4a/itunesalbbox.h
deleted file mode 100644
index f2462c28..00000000
--- a/amarok/src/metadata/m4a/itunesalbbox.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef ITUNESALBBOX_H
-#define ITUNESALBBOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class ITunesAlbBox: public Mp4IsoBox
- {
- public:
- ITunesAlbBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~ITunesAlbBox();
-
- private:
- //! parse the content of the box
- virtual void parse();
-
- protected:
- class ITunesAlbBoxPrivate;
- ITunesAlbBoxPrivate* d;
- }; // class ITunesAlbBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // ITUNESALBBOX_H
diff --git a/amarok/src/metadata/m4a/itunesartbox.cpp b/amarok/src/metadata/m4a/itunesartbox.cpp
deleted file mode 100644
index 8944c950..00000000
--- a/amarok/src/metadata/m4a/itunesartbox.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <iostream>
-#include "itunesartbox.h"
-#include "itunesdatabox.h"
-#include "mp4isobox.h"
-#include "mp4file.h"
-#include "tfile.h"
-#include "mp4tagsproxy.h"
-
-using namespace TagLib;
-
-class MP4::ITunesArtBox::ITunesArtBoxPrivate
-{
-public:
- ITunesDataBox* dataBox;
-};
-
-MP4::ITunesArtBox::ITunesArtBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- :Mp4IsoBox(file, fourcc, size, offset)
-{
- d = new MP4::ITunesArtBox::ITunesArtBoxPrivate();
- d->dataBox = 0;
-}
-
-MP4::ITunesArtBox::~ITunesArtBox()
-{
- if( d->dataBox != 0 )
- delete d->dataBox;
- delete d;
-}
-
-//! parse the content of the box
-void MP4::ITunesArtBox::parse()
-{
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- // parse data box
- uint size;
- MP4::Fourcc fourcc;
-
- if(mp4file->readSizeAndType( size, fourcc ) == true)
- {
- // check for type - must be 'data'
- if( fourcc != MP4::Fourcc("data") )
- {
- std::cerr << "bad atom in itunes tag - skipping it." << std::endl;
- // jump over data tag
- mp4file->seek( size-8, TagLib::File::Current );
- return;
- }
- d->dataBox = new ITunesDataBox( mp4file, fourcc, size, mp4file->tell() );
- d->dataBox->parsebox();
- }
- else
- {
- // reading unsuccessful - serious error!
- std::cerr << "Error in parsing ITunesArtBox - serious Error in taglib!" << std::endl;
- return;
- }
- // register data box
- mp4file->tagProxy()->registerBox( Mp4TagsProxy::artist, d->dataBox );
-
-#if 0
- // get data pointer - just for debugging...
- TagLib::String dataString( d->dataBox->data() );
- std::cout << "Content of artist box: " << dataString << std::endl;
-#endif
-}
-
diff --git a/amarok/src/metadata/m4a/itunesartbox.h b/amarok/src/metadata/m4a/itunesartbox.h
deleted file mode 100644
index 5d197aac..00000000
--- a/amarok/src/metadata/m4a/itunesartbox.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef ITUNESARTBOX_H
-#define ITUNESARTBOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class ITunesArtBox: public Mp4IsoBox
- {
- public:
- ITunesArtBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~ITunesArtBox();
-
- private:
- //! parse the content of the box
- virtual void parse();
-
- protected:
- class ITunesArtBoxPrivate;
- ITunesArtBoxPrivate* d;
- }; // class ITunesArtBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // ITUNESARTBOX_H
diff --git a/amarok/src/metadata/m4a/itunescmtbox.cpp b/amarok/src/metadata/m4a/itunescmtbox.cpp
deleted file mode 100644
index 4b2c9063..00000000
--- a/amarok/src/metadata/m4a/itunescmtbox.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <iostream>
-#include "itunescmtbox.h"
-#include "itunesdatabox.h"
-#include "mp4isobox.h"
-#include "mp4file.h"
-#include "tfile.h"
-#include "mp4tagsproxy.h"
-
-using namespace TagLib;
-
-class MP4::ITunesCmtBox::ITunesCmtBoxPrivate
-{
-public:
- ITunesDataBox* dataBox;
-};
-
-MP4::ITunesCmtBox::ITunesCmtBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- :Mp4IsoBox(file, fourcc, size, offset)
-{
- d = new MP4::ITunesCmtBox::ITunesCmtBoxPrivate();
- d->dataBox = 0;
-}
-
-MP4::ITunesCmtBox::~ITunesCmtBox()
-{
- if( d->dataBox != 0 )
- delete d->dataBox;
- delete d;
-}
-
-//! parse the content of the box
-void MP4::ITunesCmtBox::parse()
-{
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- // parse data box
- uint size;
- MP4::Fourcc fourcc;
-
- if(mp4file->readSizeAndType( size, fourcc ) == true)
- {
- // check for type - must be 'data'
- if( fourcc != MP4::Fourcc("data") )
- {
- std::cerr << "bad atom in itunes tag - skipping it." << std::endl;
- // jump over data tag
- mp4file->seek( size-8, TagLib::File::Current );
- return;
- }
- d->dataBox = new ITunesDataBox( mp4file, fourcc, size, mp4file->tell() );
- d->dataBox->parsebox();
- }
- else
- {
- // reading unsuccessful - serious error!
- std::cerr << "Error in parsing ITunesCmtBox - serious Error in taglib!" << std::endl;
- return;
- }
- // register data box
- mp4file->tagProxy()->registerBox( Mp4TagsProxy::comment, d->dataBox );
-
-#if 0
- // get data pointer - just for debugging...
- TagLib::String dataString( d->dataBox->data() );
- std::cout << "Content of title box: " << dataString << std::endl;
-#endif
-}
-
diff --git a/amarok/src/metadata/m4a/itunescmtbox.h b/amarok/src/metadata/m4a/itunescmtbox.h
deleted file mode 100644
index 83ad65d6..00000000
--- a/amarok/src/metadata/m4a/itunescmtbox.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef ITUNESCMTBOX_H
-#define ITUNESCMTBOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class ITunesCmtBox: public Mp4IsoBox
- {
- public:
- ITunesCmtBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~ITunesCmtBox();
-
- private:
- //! parse the content of the box
- virtual void parse();
-
- protected:
- class ITunesCmtBoxPrivate;
- ITunesCmtBoxPrivate* d;
- }; // class ITunesCmtBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // ITUNESCMTBOX_H
diff --git a/amarok/src/metadata/m4a/itunescvrbox.cpp b/amarok/src/metadata/m4a/itunescvrbox.cpp
deleted file mode 100644
index 0fa7ab89..00000000
--- a/amarok/src/metadata/m4a/itunescvrbox.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <iostream>
-#include "itunescvrbox.h"
-#include "itunesdatabox.h"
-#include "mp4isobox.h"
-#include "mp4file.h"
-#include "tfile.h"
-#include "mp4tagsproxy.h"
-
-using namespace TagLib;
-
-class MP4::ITunesCvrBox::ITunesCvrBoxPrivate
-{
-public:
- ITunesDataBox* dataBox;
-};
-
-MP4::ITunesCvrBox::ITunesCvrBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- :Mp4IsoBox(file, fourcc, size, offset)
-{
- d = new MP4::ITunesCvrBox::ITunesCvrBoxPrivate();
- d->dataBox = 0;
-}
-
-MP4::ITunesCvrBox::~ITunesCvrBox()
-{
- if( d->dataBox != 0 )
- delete d->dataBox;
- delete d;
-}
-
-//! parse the content of the box
-void MP4::ITunesCvrBox::parse()
-{
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- // parse data box
- uint size;
- MP4::Fourcc fourcc;
-
- if(mp4file->readSizeAndType( size, fourcc ) == true)
- {
- // check for type - must be 'data'
- if( fourcc != MP4::Fourcc("data") )
- {
- std::cerr << "bad atom in itunes tag - skipping it." << std::endl;
- // jump over data tag
- mp4file->seek( size-8, TagLib::File::Current );
- return;
- }
- d->dataBox = new ITunesDataBox( mp4file, fourcc, size, mp4file->tell() );
- d->dataBox->parsebox();
- }
- else
- {
- // reading unsuccessful - serious error!
- std::cerr << "Error in parsing ITunesCvrBox - serious Error in taglib!" << std::endl;
- return;
- }
- // register data box
- mp4file->tagProxy()->registerBox( Mp4TagsProxy::cover, d->dataBox );
-
-#if 0
- // get data pointer - just for debugging...
- TagLib::String dataString( d->dataBox->data() );
- std::cout << "Content of album box: " << dataString << std::endl;
-#endif
-}
-
diff --git a/amarok/src/metadata/m4a/itunescvrbox.h b/amarok/src/metadata/m4a/itunescvrbox.h
deleted file mode 100644
index a2693c26..00000000
--- a/amarok/src/metadata/m4a/itunescvrbox.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef ITUNESCVRBOX_H
-#define ITUNESCVRBOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class ITunesCvrBox: public Mp4IsoBox
- {
- public:
- ITunesCvrBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~ITunesCvrBox();
-
- private:
- //! parse the content of the box
- virtual void parse();
-
- protected:
- class ITunesCvrBoxPrivate;
- ITunesCvrBoxPrivate* d;
- }; // class ITunesCvrBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // ITUNESCVRBOX_H
diff --git a/amarok/src/metadata/m4a/itunesdatabox.cpp b/amarok/src/metadata/m4a/itunesdatabox.cpp
deleted file mode 100644
index 7565a42a..00000000
--- a/amarok/src/metadata/m4a/itunesdatabox.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <iostream>
-#include "itunesdatabox.h"
-#include "tbytevector.h"
-#include "mp4isobox.h"
-#include "tfile.h"
-
-using namespace TagLib;
-
-class MP4::ITunesDataBox::ITunesDataBoxPrivate
-{
-public:
- ByteVector data;
-};
-
-MP4::ITunesDataBox::ITunesDataBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- :Mp4IsoFullBox(file, fourcc, size, offset)
-{
- d = new MP4::ITunesDataBox::ITunesDataBoxPrivate();
-}
-
-MP4::ITunesDataBox::~ITunesDataBox()
-{
- delete d;
-}
-
-ByteVector MP4::ITunesDataBox::data() const
-{
- return d->data;
-}
-
-//! parse the content of the box
-void MP4::ITunesDataBox::parse()
-{
- // skip first 4 byte - don't know what they are supposed to be for - simply 4 zeros
- file()->seek( 4, TagLib::File::Current );
- // read contents - remaining size is box_size-12-4 (12:fullbox header, 4:starting zeros of data box)
-#if 0
- std::cout << " reading data box with data length: " << size()-16 << std::endl;
-#endif
- d->data = file()->readBlock( size()-12-4 );
-}
-
diff --git a/amarok/src/metadata/m4a/itunesdatabox.h b/amarok/src/metadata/m4a/itunesdatabox.h
deleted file mode 100644
index d0c802ca..00000000
--- a/amarok/src/metadata/m4a/itunesdatabox.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef ITUNESDATABOX_H
-#define ITUNESDATABOX_H
-
-#include "mp4isofullbox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class ITunesDataBox: public Mp4IsoFullBox
- {
- public:
- ITunesDataBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~ITunesDataBox();
-
- //! get the internal data, which can be txt or binary data as well
- ByteVector data() const;
-
- private:
- //! parse the content of the box
- virtual void parse();
-
- protected:
- class ITunesDataBoxPrivate;
- ITunesDataBoxPrivate* d;
- }; // class ITunesDataBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // ITUNESDATABOX_H
diff --git a/amarok/src/metadata/m4a/itunesdaybox.cpp b/amarok/src/metadata/m4a/itunesdaybox.cpp
deleted file mode 100644
index 4cd9c330..00000000
--- a/amarok/src/metadata/m4a/itunesdaybox.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <iostream>
-#include "itunesdaybox.h"
-#include "itunesdatabox.h"
-#include "mp4isobox.h"
-#include "mp4file.h"
-#include "tfile.h"
-#include "mp4tagsproxy.h"
-
-using namespace TagLib;
-
-class MP4::ITunesDayBox::ITunesDayBoxPrivate
-{
-public:
- ITunesDataBox* dataBox;
-};
-
-MP4::ITunesDayBox::ITunesDayBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- :Mp4IsoBox(file, fourcc, size, offset)
-{
- d = new MP4::ITunesDayBox::ITunesDayBoxPrivate();
- d->dataBox = 0;
-}
-
-MP4::ITunesDayBox::~ITunesDayBox()
-{
- if( d->dataBox != 0 )
- delete d->dataBox;
- delete d;
-}
-
-//! parse the content of the box
-void MP4::ITunesDayBox::parse()
-{
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- // parse data box
- uint size;
- MP4::Fourcc fourcc;
-
- if(mp4file->readSizeAndType( size, fourcc ) == true)
- {
- // check for type - must be 'data'
- if( fourcc != MP4::Fourcc("data") )
- {
- std::cerr << "bad atom in itunes tag - skipping it." << std::endl;
- // jump over data tag
- mp4file->seek( size-8, TagLib::File::Current );
- return;
- }
- d->dataBox = new ITunesDataBox( mp4file, fourcc, size, mp4file->tell() );
- d->dataBox->parsebox();
- }
- else
- {
- // reading unsuccessful - serious error!
- std::cerr << "Error in parsing ITunesDayBox - serious Error in taglib!" << std::endl;
- return;
- }
- // register data box
- mp4file->tagProxy()->registerBox( Mp4TagsProxy::year, d->dataBox );
-
-#if 0
- // get data pointer - just for debugging...
- TagLib::String dataString( d->dataBox->data() );
- std::cout << "Content of day box: " << dataString.substr(0,4) << std::endl;
-#endif
-}
-
diff --git a/amarok/src/metadata/m4a/itunesdaybox.h b/amarok/src/metadata/m4a/itunesdaybox.h
deleted file mode 100644
index 72913638..00000000
--- a/amarok/src/metadata/m4a/itunesdaybox.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef ITUNESDAYBOX_H
-#define ITUNESDAYBOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class ITunesDayBox: public Mp4IsoBox
- {
- public:
- ITunesDayBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~ITunesDayBox();
-
- private:
- //! parse the content of the box
- virtual void parse();
-
- protected:
- class ITunesDayBoxPrivate;
- ITunesDayBoxPrivate* d;
- }; // class ITunesDayBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // ITUNESDAYBOX_H
diff --git a/amarok/src/metadata/m4a/itunesdiskbox.cpp b/amarok/src/metadata/m4a/itunesdiskbox.cpp
deleted file mode 100644
index 7cd1ad82..00000000
--- a/amarok/src/metadata/m4a/itunesdiskbox.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <iostream>
-#include "itunesdiskbox.h"
-#include "itunesdatabox.h"
-#include "mp4isobox.h"
-#include "mp4file.h"
-#include "tfile.h"
-#include "mp4tagsproxy.h"
-
-using namespace TagLib;
-
-class MP4::ITunesDiskBox::ITunesDiskBoxPrivate
-{
-public:
- ITunesDataBox* dataBox;
-};
-
-MP4::ITunesDiskBox::ITunesDiskBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- :Mp4IsoBox(file, fourcc, size, offset)
-{
- d = new MP4::ITunesDiskBox::ITunesDiskBoxPrivate();
- d->dataBox = 0;
-}
-
-MP4::ITunesDiskBox::~ITunesDiskBox()
-{
- if( d->dataBox != 0 )
- delete d->dataBox;
- delete d;
-}
-
-//! parse the content of the box
-void MP4::ITunesDiskBox::parse()
-{
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- // parse data box
- uint size;
- MP4::Fourcc fourcc;
-
- if(mp4file->readSizeAndType( size, fourcc ) == true)
- {
- // check for type - must be 'data'
- if( fourcc != MP4::Fourcc("data") )
- {
- std::cerr << "bad atom in itunes tag - skipping it." << std::endl;
- // jump over data tag
- mp4file->seek( size-8, TagLib::File::Current );
- return;
- }
- d->dataBox = new ITunesDataBox( mp4file, fourcc, size, mp4file->tell() );
- d->dataBox->parsebox();
- }
- else
- {
- // reading unsuccessful - serious error!
- std::cerr << "Error in parsing ITunesDiskBox - serious Error in taglib!" << std::endl;
- return;
- }
- // register data box
- mp4file->tagProxy()->registerBox( Mp4TagsProxy::disk, d->dataBox );
-
-#if 0
- // get data pointer - just for debugging...
- TagLib::ByteVector trknData = d->dataBox->data();
- TagLib::String trknumber = TagLib::String::number( static_cast<int>( static_cast<unsigned char>(trknData[0]) << 24 |
- static_cast<unsigned char>(trknData[1]) << 16 |
- static_cast<unsigned char>(trknData[2]) << 8 |
- static_cast<unsigned char>(trknData[3]) ) );
- std::cout << "Content of tracknumber box: " << trknumber << std::endl;
-#endif
-}
-
diff --git a/amarok/src/metadata/m4a/itunesdiskbox.h b/amarok/src/metadata/m4a/itunesdiskbox.h
deleted file mode 100644
index bad73da5..00000000
--- a/amarok/src/metadata/m4a/itunesdiskbox.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef ITUNESDISKBOX_H
-#define ITUNESDISKBOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class ITunesDiskBox: public Mp4IsoBox
- {
- public:
- ITunesDiskBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~ITunesDiskBox();
-
- private:
- //! parse the content of the box
- virtual void parse();
-
- protected:
- class ITunesDiskBoxPrivate;
- ITunesDiskBoxPrivate* d;
- }; // class ITunesDiskBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // ITUNESDISKBOX_H
diff --git a/amarok/src/metadata/m4a/itunesgenbox.cpp b/amarok/src/metadata/m4a/itunesgenbox.cpp
deleted file mode 100644
index af344aa3..00000000
--- a/amarok/src/metadata/m4a/itunesgenbox.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <iostream>
-#include "itunesgenbox.h"
-#include "itunesdatabox.h"
-#include "mp4isobox.h"
-#include "mp4file.h"
-#include "tfile.h"
-#include "mp4tagsproxy.h"
-
-using namespace TagLib;
-
-class MP4::ITunesGenBox::ITunesGenBoxPrivate
-{
-public:
- ITunesDataBox* dataBox;
-};
-
-MP4::ITunesGenBox::ITunesGenBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- :Mp4IsoBox(file, fourcc, size, offset)
-{
- d = new MP4::ITunesGenBox::ITunesGenBoxPrivate();
- d->dataBox = 0;
-}
-
-MP4::ITunesGenBox::~ITunesGenBox()
-{
- if( d->dataBox != 0 )
- delete d->dataBox;
- delete d;
-}
-
-//! parse the content of the box
-void MP4::ITunesGenBox::parse()
-{
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- // parse data box
- uint size;
- MP4::Fourcc fourcc;
-
- if(mp4file->readSizeAndType( size, fourcc ) == true)
- {
- // check for type - must be 'data'
- if( fourcc != MP4::Fourcc("data") )
- {
- std::cerr << "bad atom in itunes tag - skipping it." << std::endl;
- // jump over data tag
- mp4file->seek( size-8, TagLib::File::Current );
- return;
- }
- d->dataBox = new ITunesDataBox( mp4file, fourcc, size, mp4file->tell() );
- d->dataBox->parsebox();
- }
- else
- {
- // reading unsuccessful - serious error!
- std::cerr << "Error in parsing ITunesGenBox - serious Error in taglib!" << std::endl;
- return;
- }
- // register data box
- mp4file->tagProxy()->registerBox( Mp4TagsProxy::genre, d->dataBox );
-
-#if 0
- // get data pointer - just for debugging...
- TagLib::String dataString( d->dataBox->data() );
- std::cout << "Content of genre box: " << dataString << std::endl;
-#endif
-}
-
diff --git a/amarok/src/metadata/m4a/itunesgenbox.h b/amarok/src/metadata/m4a/itunesgenbox.h
deleted file mode 100644
index deb7fe36..00000000
--- a/amarok/src/metadata/m4a/itunesgenbox.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef ITUNESGENBOX_H
-#define ITUNESGENBOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class ITunesGenBox: public Mp4IsoBox
- {
- public:
- ITunesGenBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~ITunesGenBox();
-
- private:
- //! parse the content of the box
- virtual void parse();
-
- protected:
- class ITunesGenBoxPrivate;
- ITunesGenBoxPrivate* d;
- }; // class ITunesGenBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // ITUNESGENBOX_H
diff --git a/amarok/src/metadata/m4a/itunesgrpbox.cpp b/amarok/src/metadata/m4a/itunesgrpbox.cpp
deleted file mode 100644
index ca512a1f..00000000
--- a/amarok/src/metadata/m4a/itunesgrpbox.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <iostream>
-#include "itunesgrpbox.h"
-#include "itunesdatabox.h"
-#include "mp4isobox.h"
-#include "mp4file.h"
-#include "tfile.h"
-#include "mp4tagsproxy.h"
-
-using namespace TagLib;
-
-class MP4::ITunesGrpBox::ITunesGrpBoxPrivate
-{
-public:
- ITunesDataBox* dataBox;
-};
-
-MP4::ITunesGrpBox::ITunesGrpBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- :Mp4IsoBox(file, fourcc, size, offset)
-{
- d = new MP4::ITunesGrpBox::ITunesGrpBoxPrivate();
- d->dataBox = 0;
-}
-
-MP4::ITunesGrpBox::~ITunesGrpBox()
-{
- if( d->dataBox != 0 )
- delete d->dataBox;
- delete d;
-}
-
-//! parse the content of the box
-void MP4::ITunesGrpBox::parse()
-{
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- // parse data box
- uint size;
- MP4::Fourcc fourcc;
-
- if(mp4file->readSizeAndType( size, fourcc ) == true)
- {
- // check for type - must be 'data'
- if( fourcc != MP4::Fourcc("data") )
- {
- std::cerr << "bad atom in itunes tag - skipping it." << std::endl;
- // jump over data tag
- mp4file->seek( size-8, TagLib::File::Current );
- return;
- }
- d->dataBox = new ITunesDataBox( mp4file, fourcc, size, mp4file->tell() );
- d->dataBox->parsebox();
- }
- else
- {
- // reading unsuccessful - serious error!
- std::cerr << "Error in parsing ITunesGrpBox - serious Error in taglib!" << std::endl;
- return;
- }
- // register data box
- mp4file->tagProxy()->registerBox( Mp4TagsProxy::grouping, d->dataBox );
-
-#if 0
- // get data pointer - just for debugging...
- TagLib::String dataString( d->dataBox->data() );
- std::cout << "Content of title box: " << dataString << std::endl;
-#endif
-}
-
diff --git a/amarok/src/metadata/m4a/itunesgrpbox.h b/amarok/src/metadata/m4a/itunesgrpbox.h
deleted file mode 100644
index 62922f0c..00000000
--- a/amarok/src/metadata/m4a/itunesgrpbox.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef ITUNESGRPBOX_H
-#define ITUNESGRPBOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class ITunesGrpBox: public Mp4IsoBox
- {
- public:
- ITunesGrpBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~ITunesGrpBox();
-
- private:
- //! parse the content of the box
- virtual void parse();
-
- protected:
- class ITunesGrpBoxPrivate;
- ITunesGrpBoxPrivate* d;
- }; // class ITunesGrpBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // ITUNESGRPBOX_H
diff --git a/amarok/src/metadata/m4a/itunesnambox.cpp b/amarok/src/metadata/m4a/itunesnambox.cpp
deleted file mode 100644
index 569258bd..00000000
--- a/amarok/src/metadata/m4a/itunesnambox.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <iostream>
-#include "itunesnambox.h"
-#include "itunesdatabox.h"
-#include "mp4isobox.h"
-#include "mp4file.h"
-#include "tfile.h"
-#include "mp4tagsproxy.h"
-
-using namespace TagLib;
-
-class MP4::ITunesNamBox::ITunesNamBoxPrivate
-{
-public:
- ITunesDataBox* dataBox;
-};
-
-MP4::ITunesNamBox::ITunesNamBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- :Mp4IsoBox(file, fourcc, size, offset)
-{
- d = new MP4::ITunesNamBox::ITunesNamBoxPrivate();
- d->dataBox = 0;
-}
-
-MP4::ITunesNamBox::~ITunesNamBox()
-{
- if( d->dataBox != 0 )
- delete d->dataBox;
- delete d;
-}
-
-//! parse the content of the box
-void MP4::ITunesNamBox::parse()
-{
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- // parse data box
- uint size;
- MP4::Fourcc fourcc;
-
- if(mp4file->readSizeAndType( size, fourcc ) == true)
- {
- // check for type - must be 'data'
- if( fourcc != MP4::Fourcc("data") )
- {
- std::cerr << "bad atom in itunes tag - skipping it." << std::endl;
- // jump over data tag
- mp4file->seek( size-8, TagLib::File::Current );
- return;
- }
- d->dataBox = new ITunesDataBox( mp4file, fourcc, size, mp4file->tell() );
- d->dataBox->parsebox();
- }
- else
- {
- // reading unsuccessful - serious error!
- std::cerr << "Error in parsing ITunesNamBox - serious Error in taglib!" << std::endl;
- return;
- }
- // register data box
- mp4file->tagProxy()->registerBox( Mp4TagsProxy::title, d->dataBox );
-
-#if 0
- // get data pointer - just for debugging...
- TagLib::String dataString( d->dataBox->data() );
- std::cout << "Content of title box: " << dataString << std::endl;
-#endif
-}
-
diff --git a/amarok/src/metadata/m4a/itunesnambox.h b/amarok/src/metadata/m4a/itunesnambox.h
deleted file mode 100644
index 434fd84e..00000000
--- a/amarok/src/metadata/m4a/itunesnambox.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef ITUNESNAMBOX_H
-#define ITUNESNAMBOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class ITunesNamBox: public Mp4IsoBox
- {
- public:
- ITunesNamBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~ITunesNamBox();
-
- private:
- //! parse the content of the box
- virtual void parse();
-
- protected:
- class ITunesNamBoxPrivate;
- ITunesNamBoxPrivate* d;
- }; // class ITunesNamBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // ITUNESNAMBOX_H
diff --git a/amarok/src/metadata/m4a/itunestmpobox.cpp b/amarok/src/metadata/m4a/itunestmpobox.cpp
deleted file mode 100644
index 0abdfa43..00000000
--- a/amarok/src/metadata/m4a/itunestmpobox.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <iostream>
-#include "itunestmpobox.h"
-#include "itunesdatabox.h"
-#include "mp4isobox.h"
-#include "mp4file.h"
-#include "tfile.h"
-#include "mp4tagsproxy.h"
-
-using namespace TagLib;
-
-class MP4::ITunesTmpoBox::ITunesTmpoBoxPrivate
-{
-public:
- ITunesDataBox* dataBox;
-};
-
-MP4::ITunesTmpoBox::ITunesTmpoBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- :Mp4IsoBox(file, fourcc, size, offset)
-{
- d = new MP4::ITunesTmpoBox::ITunesTmpoBoxPrivate();
- d->dataBox = 0;
-}
-
-MP4::ITunesTmpoBox::~ITunesTmpoBox()
-{
- if( d->dataBox != 0 )
- delete d->dataBox;
- delete d;
-}
-
-//! parse the content of the box
-void MP4::ITunesTmpoBox::parse()
-{
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- // parse data box
- uint size;
- MP4::Fourcc fourcc;
-
- if(mp4file->readSizeAndType( size, fourcc ) == true)
- {
- // check for type - must be 'data'
- if( fourcc != MP4::Fourcc("data") )
- {
- std::cerr << "bad atom in itunes tag - skipping it." << std::endl;
- // jump over data tag
- mp4file->seek( size-8, TagLib::File::Current );
- return;
- }
- d->dataBox = new ITunesDataBox( mp4file, fourcc, size, mp4file->tell() );
- d->dataBox->parsebox();
- }
- else
- {
- // reading unsuccessful - serious error!
- std::cerr << "Error in parsing ITunesTmpoBox - serious Error in taglib!" << std::endl;
- return;
- }
- // register data box
- mp4file->tagProxy()->registerBox( Mp4TagsProxy::bpm, d->dataBox );
-
-#if 0
- // get data pointer - just for debugging...
- TagLib::ByteVector trknData = d->dataBox->data();
- TagLib::String trknumber = TagLib::String::number( static_cast<int>( static_cast<unsigned char>(trknData[0]) << 24 |
- static_cast<unsigned char>(trknData[1]) << 16 |
- static_cast<unsigned char>(trknData[2]) << 8 |
- static_cast<unsigned char>(trknData[3]) ) );
- std::cout << "Content of tracknumber box: " << trknumber << std::endl;
-#endif
-}
-
diff --git a/amarok/src/metadata/m4a/itunestmpobox.h b/amarok/src/metadata/m4a/itunestmpobox.h
deleted file mode 100644
index 981f9384..00000000
--- a/amarok/src/metadata/m4a/itunestmpobox.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef ITUNESTMPOBOX_H
-#define ITUNESTMPOBOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class ITunesTmpoBox: public Mp4IsoBox
- {
- public:
- ITunesTmpoBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~ITunesTmpoBox();
-
- private:
- //! parse the content of the box
- virtual void parse();
-
- protected:
- class ITunesTmpoBoxPrivate;
- ITunesTmpoBoxPrivate* d;
- }; // class ITunesTmpoBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // ITUNESTMPOBOX_H
diff --git a/amarok/src/metadata/m4a/itunestrknbox.cpp b/amarok/src/metadata/m4a/itunestrknbox.cpp
deleted file mode 100644
index 162a954a..00000000
--- a/amarok/src/metadata/m4a/itunestrknbox.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <iostream>
-#include "itunestrknbox.h"
-#include "itunesdatabox.h"
-#include "mp4isobox.h"
-#include "mp4file.h"
-#include "tfile.h"
-#include "mp4tagsproxy.h"
-
-using namespace TagLib;
-
-class MP4::ITunesTrknBox::ITunesTrknBoxPrivate
-{
-public:
- ITunesDataBox* dataBox;
-};
-
-MP4::ITunesTrknBox::ITunesTrknBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- :Mp4IsoBox(file, fourcc, size, offset)
-{
- d = new MP4::ITunesTrknBox::ITunesTrknBoxPrivate();
- d->dataBox = 0;
-}
-
-MP4::ITunesTrknBox::~ITunesTrknBox()
-{
- if( d->dataBox != 0 )
- delete d->dataBox;
- delete d;
-}
-
-//! parse the content of the box
-void MP4::ITunesTrknBox::parse()
-{
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- // parse data box
- uint size;
- MP4::Fourcc fourcc;
-
- if(mp4file->readSizeAndType( size, fourcc ) == true)
- {
- // check for type - must be 'data'
- if( fourcc != MP4::Fourcc("data") )
- {
- std::cerr << "bad atom in itunes tag - skipping it." << std::endl;
- // jump over data tag
- mp4file->seek( size-8, TagLib::File::Current );
- return;
- }
- d->dataBox = new ITunesDataBox( mp4file, fourcc, size, mp4file->tell() );
- d->dataBox->parsebox();
- }
- else
- {
- // reading unsuccessful - serious error!
- std::cerr << "Error in parsing ITunesTrknBox - serious Error in taglib!" << std::endl;
- return;
- }
- // register data box
- mp4file->tagProxy()->registerBox( Mp4TagsProxy::trackno, d->dataBox );
-
-#if 0
- // get data pointer - just for debugging...
- TagLib::ByteVector trknData = d->dataBox->data();
- TagLib::String trknumber = TagLib::String::number( static_cast<int>( static_cast<unsigned char>(trknData[0]) << 24 |
- static_cast<unsigned char>(trknData[1]) << 16 |
- static_cast<unsigned char>(trknData[2]) << 8 |
- static_cast<unsigned char>(trknData[3]) ) );
- std::cout << "Content of tracknumber box: " << trknumber << std::endl;
-#endif
-}
-
diff --git a/amarok/src/metadata/m4a/itunestrknbox.h b/amarok/src/metadata/m4a/itunestrknbox.h
deleted file mode 100644
index f603e1f7..00000000
--- a/amarok/src/metadata/m4a/itunestrknbox.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef ITUNESTRKNBOX_H
-#define ITUNESTRKNBOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class ITunesTrknBox: public Mp4IsoBox
- {
- public:
- ITunesTrknBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~ITunesTrknBox();
-
- private:
- //! parse the content of the box
- virtual void parse();
-
- protected:
- class ITunesTrknBoxPrivate;
- ITunesTrknBoxPrivate* d;
- }; // class ITunesTrknBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // ITUNESTRKNBOX_H
diff --git a/amarok/src/metadata/m4a/ituneswrtbox.cpp b/amarok/src/metadata/m4a/ituneswrtbox.cpp
deleted file mode 100644
index ec8d2b45..00000000
--- a/amarok/src/metadata/m4a/ituneswrtbox.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <iostream>
-#include "ituneswrtbox.h"
-#include "itunesdatabox.h"
-#include "mp4isobox.h"
-#include "mp4file.h"
-#include "tfile.h"
-#include "mp4tagsproxy.h"
-
-using namespace TagLib;
-
-class MP4::ITunesWrtBox::ITunesWrtBoxPrivate
-{
-public:
- ITunesDataBox* dataBox;
-};
-
-MP4::ITunesWrtBox::ITunesWrtBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- :Mp4IsoBox(file, fourcc, size, offset)
-{
- d = new MP4::ITunesWrtBox::ITunesWrtBoxPrivate();
- d->dataBox = 0;
-}
-
-MP4::ITunesWrtBox::~ITunesWrtBox()
-{
- if( d->dataBox != 0 )
- delete d->dataBox;
- delete d;
-}
-
-//! parse the content of the box
-void MP4::ITunesWrtBox::parse()
-{
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- // parse data box
- uint size;
- MP4::Fourcc fourcc;
-
- if(mp4file->readSizeAndType( size, fourcc ) == true)
- {
- // check for type - must be 'data'
- if( fourcc != MP4::Fourcc("data") )
- {
- std::cerr << "bad atom in itunes tag - skipping it." << std::endl;
- // jump over data tag
- mp4file->seek( size-8, TagLib::File::Current );
- return;
- }
- d->dataBox = new ITunesDataBox( mp4file, fourcc, size, mp4file->tell() );
- d->dataBox->parsebox();
- }
- else
- {
- // reading unsuccessful - serious error!
- std::cerr << "Error in parsing ITunesWrtBox - serious Error in taglib!" << std::endl;
- return;
- }
- // register data box
- mp4file->tagProxy()->registerBox( Mp4TagsProxy::composer, d->dataBox );
-
-#if 0
- // get data pointer - just for debugging...
- TagLib::String dataString( d->dataBox->data() );
- std::cout << "Content of title box: " << dataString << std::endl;
-#endif
-}
-
diff --git a/amarok/src/metadata/m4a/ituneswrtbox.h b/amarok/src/metadata/m4a/ituneswrtbox.h
deleted file mode 100644
index 740d94c6..00000000
--- a/amarok/src/metadata/m4a/ituneswrtbox.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef ITUNESWRTBOX_H
-#define ITUNESWRTBOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class ITunesWrtBox: public Mp4IsoBox
- {
- public:
- ITunesWrtBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~ITunesWrtBox();
-
- private:
- //! parse the content of the box
- virtual void parse();
-
- protected:
- class ITunesWrtBoxPrivate;
- ITunesWrtBoxPrivate* d;
- }; // class ITunesWrtBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // ITUNESWRTBOX_H
diff --git a/amarok/src/metadata/m4a/mp4audioproperties.cpp b/amarok/src/metadata/m4a/mp4audioproperties.cpp
deleted file mode 100644
index 77afab15..00000000
--- a/amarok/src/metadata/m4a/mp4audioproperties.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "mp4audioproperties.h"
-#include "mp4propsproxy.h"
-
-using namespace TagLib;
-
-class MP4::AudioProperties::AudioPropertiesPrivate
-{
-public:
- MP4::Mp4PropsProxy* propsproxy;
-}; // AudioPropertiesPrivate
-
-MP4::AudioProperties::AudioProperties():TagLib::AudioProperties(TagLib::AudioProperties::Average)
-{
- d = new MP4::AudioProperties::AudioPropertiesPrivate();
-}
-
-MP4::AudioProperties::~AudioProperties()
-{
- delete d;
-}
-
-void MP4::AudioProperties::setProxy( Mp4PropsProxy* proxy )
-{
- d->propsproxy = proxy;
-}
-
-int MP4::AudioProperties::length() const
-{
- if( d->propsproxy == 0 )
- return 0;
- return d->propsproxy->seconds();
-}
-
-int MP4::AudioProperties::bitrate() const
-{
- if( d->propsproxy == 0 )
- return 0;
- return d->propsproxy->bitRate()/1000;
-}
-
-int MP4::AudioProperties::sampleRate() const
-{
- if( d->propsproxy == 0 )
- return 0;
- return d->propsproxy->sampleRate();
-}
-
-int MP4::AudioProperties::channels() const
-{
- if( d->propsproxy == 0 )
- return 0;
- return d->propsproxy->channels();
-}
-
diff --git a/amarok/src/metadata/m4a/mp4audioproperties.h b/amarok/src/metadata/m4a/mp4audioproperties.h
deleted file mode 100644
index 4e617905..00000000
--- a/amarok/src/metadata/m4a/mp4audioproperties.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4AUDIOPROPERTIES_H
-#define MP4AUDIOPROPERTIES_H MP4AUDIOPROPERTIES_H
-
-#include "audioproperties.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class Mp4PropsProxy;
-
- class AudioProperties : public TagLib::AudioProperties
- {
- public:
- //! constructor
- AudioProperties();
- //! destructor
- ~AudioProperties();
-
- //! function to set the proxy
- void setProxy( Mp4PropsProxy* proxy );
-
- /*!
- * Returns the length of the file in seconds.
- */
- int length() const;
-
- /*!
- * Returns the most appropriate bit rate for the file in kb/s. For constant
- * bitrate formats this is simply the bitrate of the file. For variable
- * bitrate formats this is either the average or nominal bitrate.
- */
- int bitrate() const;
-
- /*!
- * Returns the sample rate in Hz.
- */
- int sampleRate() const;
-
- /*!
- * Returns the number of audio channels.
- */
- int channels() const;
-
- private:
- class AudioPropertiesPrivate;
- AudioPropertiesPrivate* d;
- };
- } // namespace MP4
-} // namespace TagLib
-
-#endif // MP4AUDIOPROPERTIES_H
diff --git a/amarok/src/metadata/m4a/mp4audiosampleentry.cpp b/amarok/src/metadata/m4a/mp4audiosampleentry.cpp
deleted file mode 100644
index 3c129c55..00000000
--- a/amarok/src/metadata/m4a/mp4audiosampleentry.cpp
+++ /dev/null
@@ -1,146 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <iostream>
-#include "mp4audiosampleentry.h"
-#include "mp4isobox.h"
-#include "mp4file.h"
-#include "mp4propsproxy.h"
-
-using namespace TagLib;
-
-class MP4::Mp4AudioSampleEntry::Mp4AudioSampleEntryPrivate
-{
-public:
- uint channelcount;
- uint samplerate;
- uint bitrate;
-};
-
-MP4::Mp4AudioSampleEntry::Mp4AudioSampleEntry( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- :Mp4SampleEntry(file, fourcc, size, offset)
-{
- d = new MP4::Mp4AudioSampleEntry::Mp4AudioSampleEntryPrivate();
-}
-
-MP4::Mp4AudioSampleEntry::~Mp4AudioSampleEntry()
-{
- delete d;
-}
-
-uint MP4::Mp4AudioSampleEntry::channels() const
-{
- return d->channelcount;
-}
-
-uint MP4::Mp4AudioSampleEntry::samplerate() const
-{
- return d->samplerate;
-}
-
-uint MP4::Mp4AudioSampleEntry::bitrate() const
-{
- return d->bitrate;
-}
-
-void MP4::Mp4AudioSampleEntry::parseEntry()
-{
- TagLib::MP4::File* mp4file = dynamic_cast<TagLib::MP4::File*>(file());
- if(!mp4file)
- return;
-
- // read 8 reserved bytes
- mp4file->seek( 8, TagLib::File::Current );
- // read channelcount
- if(!mp4file->readShort( d->channelcount ))
- return;
- // seek over samplesize, pre_defined and reserved
- mp4file->seek( 6, TagLib::File::Current );
- // read samplerate
- if(!mp4file->readInt( d->samplerate ))
- return;
-
- // register box at proxy
- mp4file->propProxy()->registerAudioSampleEntry( this );
-
-
- //std::cout << "fourcc of audio sample entry: " << fourcc().toString() << std::endl;
- // check for both mp4a (plain files) and drms (encrypted files)
- if( (fourcc() == MP4::Fourcc("mp4a")) ||
- (fourcc() == MP4::Fourcc("drms")) )
- {
- TagLib::MP4::Fourcc fourcc;
- uint esds_size;
-
- if (!mp4file->readSizeAndType( esds_size, fourcc ))
- return;
-
- // read esds' main parts
- if( size()-48 > 0 )
- ByteVector flags_version = mp4file->readBlock(4);
- else
- return;
-
- ByteVector EsDescrTag = mp4file->readBlock(1);
- // first 4 bytes contain full box specifics (version & flags)
- // upcoming byte must be ESDescrTag (0x03)
- if( EsDescrTag[0] == 0x03 )
- {
- uint descr_len = mp4file->readSystemsLen();
- uint EsId;
- if( !mp4file->readShort( EsId ) )
- return;
- ByteVector priority = mp4file->readBlock(1);
- if( descr_len < 20 )
- return;
- }
- else
- {
- uint EsId;
- if( !mp4file->readShort( EsId ) )
- return;
- }
- // read decoder configuration tag (0x04)
- ByteVector DecCfgTag = mp4file->readBlock(1);
- if( DecCfgTag[0] != 0x04 )
- return;
- // read decoder configuration length
- // uint deccfg_len = mp4file->readSystemsLen();
- // read object type Id
- ByteVector objId = mp4file->readBlock(1);
- // read stream type id
- ByteVector strId = mp4file->readBlock(1);
- // read buffer Size DB
- ByteVector bufferSizeDB = mp4file->readBlock(3);
- // read max bitrate
- uint max_bitrate;
- if( !mp4file->readInt( max_bitrate ) )
- return;
- // read average bitrate
- if( !mp4file->readInt( d->bitrate ) )
- return;
- // skip the rest
- mp4file->seek( offset()+size()-8, File::Beginning );
- }
- else
- mp4file->seek( size()-36, File::Current );
-}
-
diff --git a/amarok/src/metadata/m4a/mp4audiosampleentry.h b/amarok/src/metadata/m4a/mp4audiosampleentry.h
deleted file mode 100644
index d0b5479c..00000000
--- a/amarok/src/metadata/m4a/mp4audiosampleentry.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4AUDIOSAMPLEENTRY_H
-#define MP4AUDIOSAMPLEENTRY_H
-
-#include "mp4sampleentry.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class Mp4AudioSampleEntry: public Mp4SampleEntry
- {
- public:
- Mp4AudioSampleEntry( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~Mp4AudioSampleEntry();
-
- //! function to get the number of channels
- uint channels() const;
- //! function to get the sample rate
- uint samplerate() const;
- //! function to get the average bitrate of the audio stream
- uint bitrate() const;
-
- private:
- //! parse the content of the box
- void parseEntry();
-
- protected:
- class Mp4AudioSampleEntryPrivate;
- Mp4AudioSampleEntryPrivate* d;
- }; // class Mp4AudioSampleEntry
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // MP4AUDIOSAMPLEENTRY_H
diff --git a/amarok/src/metadata/m4a/mp4file.cpp b/amarok/src/metadata/m4a/mp4file.cpp
deleted file mode 100644
index a1733a67..00000000
--- a/amarok/src/metadata/m4a/mp4file.cpp
+++ /dev/null
@@ -1,377 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <tbytevector.h>
-#include <tstring.h>
-#include "tlist.h"
-
-#include "mp4itunestag.h"
-#include "mp4file.h"
-#include "boxfactory.h"
-#include "mp4tagsproxy.h"
-#include "mp4propsproxy.h"
-#include "mp4audioproperties.h"
-#include "itunesdatabox.h"
-
-using namespace TagLib;
-
-class MP4::File::FilePrivate
-{
-public:
- //! list for all boxes of the mp4 file
- TagLib::List<MP4::Mp4IsoBox*> boxes;
- //! the box factory - will create all boxes by tag and size
- MP4::BoxFactory boxfactory;
- //! proxy for the tags is filled after parsing
- MP4::Mp4TagsProxy tagsProxy;
- //! proxy for audio properties
- MP4::Mp4PropsProxy propsProxy;
- //! the tag returned by tag() function
- MP4::Tag mp4tag;
- //! container for the audio properties returned by properties() function
- MP4::AudioProperties mp4audioproperties;
- //! is set to valid after successfully parsing
- bool isValid;
-};
-
-//! function to fill the tags with converted proxy data, which has been parsed out of the file previously
-static void fillTagFromProxy( MP4::Mp4TagsProxy& proxy, MP4::Tag& mp4tag );
-
-MP4::File::File(const char *file, bool , AudioProperties::ReadStyle )
- :TagLib::File( file )
-{
- // create member container
- d = new MP4::File::FilePrivate();
-
-
- d->isValid = false;
- uint size;
- MP4::Fourcc fourcc;
-
- while( readSizeAndType( size, fourcc ) == true )
- {
- // create the appropriate subclass and parse it
- MP4::Mp4IsoBox* curbox = d->boxfactory.createInstance( this, fourcc, size, tell() );
- curbox->parsebox();
- d->boxes.append( curbox );
- }
-
- for( TagLib::List<MP4::Mp4IsoBox*>::Iterator iter = d->boxes.begin();
- iter != d->boxes.end();
- iter++ )
- {
- if( (*iter)->fourcc() == MP4::Fourcc("moov") )
- {
- d->isValid = true;
- break;
- }
- }
-
- //if( d->isValid )
- //debug( "file is valid" );
- //else
- //debug( "file is NOT valid" );
-
- // fill tags from proxy data
- fillTagFromProxy( d->tagsProxy, d->mp4tag );
-}
-
-MP4::File::~File()
-{
- TagLib::List<Mp4IsoBox*>::Iterator delIter;
- for( delIter = d->boxes.begin();
- delIter != d->boxes.end();
- delIter++ )
- {
- delete *delIter;
- }
- delete d;
-}
-
-Tag *MP4::File::tag() const
-{
- return &d->mp4tag;
-}
-
-AudioProperties * MP4::File::audioProperties() const
-{
- d->mp4audioproperties.setProxy( &d->propsProxy );
- return &d->mp4audioproperties;
-}
-
-bool MP4::File::save()
-{
- return false;
-}
-
-void MP4::File::remove()
-{
-}
-
-uint MP4::File::readSystemsLen()
-{
- uint length = 0;
- uint nbytes = 0;
- ByteVector input;
- uchar tmp_input;
-
- do
- {
- input = readBlock(1);
- tmp_input = static_cast<uchar>(input[0]);
- nbytes++;
- length = (length<<7) | (tmp_input&0x7F);
- } while( (tmp_input&0x80) && (nbytes<4) );
-
- return length;
-}
-
-bool MP4::File::readSizeAndType( uint& size, MP4::Fourcc& fourcc )
-{
- // read the two blocks from file
- ByteVector readsize = readBlock(4);
- ByteVector readtype = readBlock(4);
-
- if( (readsize.size() != 4) || (readtype.size() != 4) )
- return false;
-
- // set size
- size = static_cast<unsigned char>(readsize[0]) << 24 |
- static_cast<unsigned char>(readsize[1]) << 16 |
- static_cast<unsigned char>(readsize[2]) << 8 |
- static_cast<unsigned char>(readsize[3]);
-
- // type and size seem to be part of the stored size
- if( size < 8 )
- return false;
-
- // set fourcc
- fourcc = readtype.data();
-
- return true;
-}
-
-bool MP4::File::readInt( uint& toRead )
-{
- ByteVector readbuffer = readBlock(4);
- if( readbuffer.size() != 4 )
- return false;
-
- toRead = static_cast<unsigned char>(readbuffer[0]) << 24 |
- static_cast<unsigned char>(readbuffer[1]) << 16 |
- static_cast<unsigned char>(readbuffer[2]) << 8 |
- static_cast<unsigned char>(readbuffer[3]);
- return true;
-}
-
-bool MP4::File::readShort( uint& toRead )
-{
- ByteVector readbuffer = readBlock(2);
- if( readbuffer.size() != 2 )
- return false;
-
- toRead = static_cast<unsigned char>(readbuffer[0]) << 8 |
- static_cast<unsigned char>(readbuffer[1]);
- return true;
-}
-
-bool MP4::File::readLongLong( TagLib::ulonglong& toRead )
-{
- ByteVector readbuffer = readBlock(8);
- if( readbuffer.size() != 8 )
- return false;
-
- toRead = static_cast<ulonglong>(static_cast<unsigned char>(readbuffer[0])) << 56 |
- static_cast<ulonglong>(static_cast<unsigned char>(readbuffer[1])) << 48 |
- static_cast<ulonglong>(static_cast<unsigned char>(readbuffer[2])) << 40 |
- static_cast<ulonglong>(static_cast<unsigned char>(readbuffer[3])) << 32 |
- static_cast<ulonglong>(static_cast<unsigned char>(readbuffer[4])) << 24 |
- static_cast<ulonglong>(static_cast<unsigned char>(readbuffer[5])) << 16 |
- static_cast<ulonglong>(static_cast<unsigned char>(readbuffer[6])) << 8 |
- static_cast<ulonglong>(static_cast<unsigned char>(readbuffer[7]));
- return true;
-}
-
-bool MP4::File::readFourcc( TagLib::MP4::Fourcc& fourcc )
-{
- ByteVector readtype = readBlock(4);
-
- if( readtype.size() != 4)
- return false;
-
- // set fourcc
- fourcc = readtype.data();
-
- return true;
-}
-
-MP4::Mp4TagsProxy* MP4::File::tagProxy() const
-{
- return &d->tagsProxy;
-}
-
-MP4::Mp4PropsProxy* MP4::File::propProxy() const
-{
- return &d->propsProxy;
-}
-
-void fillTagFromProxy( MP4::Mp4TagsProxy& proxy, MP4::Tag& mp4tag )
-{
- // tmp buffer for each tag
- MP4::ITunesDataBox* databox;
-
- databox = proxy.titleData();
- if( databox != 0 )
- {
- // convert data to string
- TagLib::String datastring( databox->data(), String::UTF8 );
- // check if string was set
- if( !datastring.isEmpty() )
- mp4tag.setTitle( datastring );
- }
-
- databox = proxy.artistData();
- if( databox != 0 )
- {
- // convert data to string
- TagLib::String datastring( databox->data(), String::UTF8 );
- // check if string was set
- if( !datastring.isEmpty() )
- mp4tag.setArtist( datastring );
- }
-
- databox = proxy.albumData();
- if( databox != 0 )
- {
- // convert data to string
- TagLib::String datastring( databox->data(), String::UTF8 );
- // check if string was set
- if( !datastring.isEmpty() )
- mp4tag.setAlbum( datastring );
- }
-
- databox = proxy.genreData();
- if( databox != 0 )
- {
- // convert data to string
- TagLib::String datastring( databox->data(), String::UTF8 );
- // check if string was set
- if( !datastring.isEmpty() )
- mp4tag.setGenre( datastring );
- }
-
- databox = proxy.yearData();
- if( databox != 0 )
- {
- // convert data to string
- TagLib::String datastring( databox->data(), String::UTF8 );
- // check if string was set
- if( !datastring.isEmpty() )
- mp4tag.setYear( datastring.toInt() );
- }
-
- databox = proxy.trknData();
- if( databox != 0 )
- {
- // convert data to uint
- TagLib::ByteVector datavec = databox->data();
- if( datavec.size() >= 4 )
- {
- uint trackno = static_cast<uint>( static_cast<unsigned char>(datavec[0]) << 24 |
- static_cast<unsigned char>(datavec[1]) << 16 |
- static_cast<unsigned char>(datavec[2]) << 8 |
- static_cast<unsigned char>(datavec[3]) );
- mp4tag.setTrack( trackno );
- }
- else
- mp4tag.setTrack( 0 );
- }
-
- databox = proxy.commentData();
- if( databox != 0 )
- {
- // convert data to string
- TagLib::String datastring( databox->data(), String::UTF8 );
- // check if string was set
- if( !datastring.isEmpty() )
- mp4tag.setComment( datastring );
- }
-
- databox = proxy.groupingData();
- if( databox != 0 )
- {
- // convert data to string
- TagLib::String datastring( databox->data(), String::UTF8 );
- // check if string was set
- if( !datastring.isEmpty() )
- mp4tag.setGrouping( datastring );
- }
-
- databox = proxy.composerData();
- if( databox != 0 )
- {
- // convert data to string
- TagLib::String datastring( databox->data(), String::UTF8 );
- // check if string was set
- if( !datastring.isEmpty() )
- mp4tag.setComposer( datastring );
- }
-
- databox = proxy.diskData();
- if( databox != 0 )
- {
- // convert data to uint
- TagLib::ByteVector datavec = databox->data();
- if( datavec.size() >= 4 )
- {
- uint discno = static_cast<uint>( static_cast<unsigned char>(datavec[0]) << 24 |
- static_cast<unsigned char>(datavec[1]) << 16 |
- static_cast<unsigned char>(datavec[2]) << 8 |
- static_cast<unsigned char>(datavec[3]) );
- mp4tag.setDisk( discno );
- }
- else
- mp4tag.setDisk( 0 );
- }
-
- databox = proxy.bpmData();
- if( databox != 0 )
- {
- // convert data to uint
- TagLib::ByteVector datavec = databox->data();
-
- if( datavec.size() >= 2 )
- {
- uint bpm = static_cast<uint>( static_cast<unsigned char>(datavec[0]) << 8 |
- static_cast<unsigned char>(datavec[1]) );
- mp4tag.setBpm( bpm );
- }
- else
- mp4tag.setBpm( 0 );
- }
-
- databox = proxy.coverData();
- if( databox != 0 )
- {
- // get byte vector
- mp4tag.setCover( databox->data() );
- }
-}
diff --git a/amarok/src/metadata/m4a/mp4file.h b/amarok/src/metadata/m4a/mp4file.h
deleted file mode 100644
index abe42e91..00000000
--- a/amarok/src/metadata/m4a/mp4file.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-/***************************************************************************
- copyright : (C) 2002, 2003 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 *
- * USA *
- ***************************************************************************/
-
-#ifndef TAGLIB_MP4FILE_H
-#define TAGLIB_MP4FILE_H
-
-#include <tfile.h>
-#include <audioproperties.h>
-
-#include "mp4fourcc.h"
-
-namespace TagLib {
-
- typedef unsigned long long ulonglong;
-
- class Tag;
-
- namespace MP4
- {
- class Mp4TagsProxy;
- class Mp4PropsProxy;
-
- //! An implementation of TagLib::File with mp4 itunes specific methods
-
- /*!
- * This implements and provides an interface for mp4 itunes files to the
- * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
- * the abstract TagLib::File API as well as providing some additional
- * information specific to mp4 itunes files. (TODO)
- */
-
- class File : public TagLib::File
- {
- public:
- /*!
- * Contructs an mp4 itunes file from \a file. If \a readProperties is true the
- * file's audio properties will also be read using \a propertiesStyle. If
- * false, \a propertiesStyle is ignored.
- */
- File(const char *file, bool readProperties = true,
- AudioProperties::ReadStyle propertiesStyle = AudioProperties::Average);
-
- /*!
- * Destroys this instance of the File.
- */
- virtual ~File();
-
- /*!
- * Returns the Tag for this file. This will be an APE tag, an ID3v1 tag
- * or a combination of the two.
- */
- virtual TagLib::Tag *tag() const;
-
- /*!
- * Returns the mp4 itunes::Properties for this file. If no audio properties
- * were read then this will return a null pointer.
- */
- virtual AudioProperties *audioProperties() const;
-
- /*!
- * Saves the file.
- */
- virtual bool save();
-
- /*!
- * This will remove all tags.
- *
- * \note This will also invalidate pointers to the tags
- * as their memory will be freed.
- * \note In order to make the removal permanent save() still needs to be called
- */
- void remove();
-
- /*!
- * Helper function for parsing the MP4 file - reads the size and type of the next box.
- * Returns true if read succeeded - not at EOF
- */
- bool readSizeAndType( uint& size, MP4::Fourcc& fourcc );
-
- /*!
- * Helper function to read the length of an descriptor in systems manner
- */
- uint readSystemsLen();
-
- /*!
- * Helper function for reading an unsigned int out of the file (big endian method)
- */
- bool readInt( uint& toRead );
-
- /*!
- * Helper function for reading an unsigned short out of the file (big endian method)
- */
- bool readShort( uint& toRead );
-
- /*!
- * Helper function for reading an unsigned long long (64bit) out of the file (big endian method)
- */
- bool readLongLong( TagLib::ulonglong& toRead );
-
- /*!
- * Helper function to read a fourcc code
- */
- bool readFourcc( TagLib::MP4::Fourcc& fourcc );
-
- /*!
- * Function to get the tags proxy for registration of the tags boxes.
- * The proxy provides direct access to the data boxes of the certain tags - normally
- * covered by several levels of subboxes
- */
- Mp4TagsProxy* tagProxy() const;
-
- /*!
- * Function to get the properties proxy for registration of the properties boxes.
- * The proxy provides direct access to the needed boxes describing audio properties.
- */
- Mp4PropsProxy* propProxy() const;
-
- private:
- File(const File &);
- File &operator=(const File &);
-
- class FilePrivate;
- FilePrivate *d;
- };
-
- } // namespace MP4
-
-} // namespace TagLib
-
-#endif // TAGLIB_MP4FILE_H
diff --git a/amarok/src/metadata/m4a/mp4fourcc.cpp b/amarok/src/metadata/m4a/mp4fourcc.cpp
deleted file mode 100644
index dac0f99e..00000000
--- a/amarok/src/metadata/m4a/mp4fourcc.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "mp4fourcc.h"
-
-using namespace TagLib;
-
-MP4::Fourcc::Fourcc()
-{
- m_fourcc = 0U;
-}
-
-MP4::Fourcc::Fourcc( TagLib::String fourcc )
-{
- m_fourcc = 0U;
-
- if( fourcc.size() >= 4 )
- m_fourcc = static_cast<unsigned char>(fourcc[0]) << 24 |
- static_cast<unsigned char>(fourcc[1]) << 16 |
- static_cast<unsigned char>(fourcc[2]) << 8 |
- static_cast<unsigned char>(fourcc[3]);
-}
-
-MP4::Fourcc::~Fourcc()
-{}
-
-TagLib::String MP4::Fourcc::toString() const
-{
- TagLib::String fourcc;
- fourcc.append(static_cast<char>(m_fourcc >> 24 & 0xFF));
- fourcc.append(static_cast<char>(m_fourcc >> 16 & 0xFF));
- fourcc.append(static_cast<char>(m_fourcc >> 8 & 0xFF));
- fourcc.append(static_cast<char>(m_fourcc & 0xFF));
-
- return fourcc;
-}
-
-MP4::Fourcc::operator unsigned int() const
-{
- return m_fourcc;
-}
-
-bool MP4::Fourcc::operator == (unsigned int fourccB ) const
-{
- return (m_fourcc==fourccB);
-}
-
-bool MP4::Fourcc::operator != (unsigned int fourccB ) const
-{
- return (m_fourcc!=fourccB);
-}
-
-MP4::Fourcc& MP4::Fourcc::operator = (unsigned int fourcc )
-{
- m_fourcc = fourcc;
- return *this;
-}
-
-MP4::Fourcc& MP4::Fourcc::operator = (char fourcc[4])
-{
- m_fourcc = static_cast<unsigned char>(fourcc[0]) << 24 |
- static_cast<unsigned char>(fourcc[1]) << 16 |
- static_cast<unsigned char>(fourcc[2]) << 8 |
- static_cast<unsigned char>(fourcc[3]);
- return *this;
-}
diff --git a/amarok/src/metadata/m4a/mp4fourcc.h b/amarok/src/metadata/m4a/mp4fourcc.h
deleted file mode 100644
index 90e498ad..00000000
--- a/amarok/src/metadata/m4a/mp4fourcc.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4FOURCC_H
-#define MP4FOURCC_H
-
-#include "tstring.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- /*! union for easy fourcc / type handling */
- class Fourcc
- {
- public:
- //! std constructor
- Fourcc();
- //! string constructor
- Fourcc(TagLib::String fourcc);
-
- //! destructor
- ~Fourcc();
-
- //! function to get a string version of the fourcc
- TagLib::String toString() const;
- //! cast operator to unsigned int
- operator unsigned int() const;
- //! comparison operator
- bool operator == (unsigned int fourccB ) const;
- //! comparison operator
- bool operator != (unsigned int fourccB ) const;
- //! assigment operator for unsigned int
- Fourcc& operator = (unsigned int fourcc );
- //! assigment operator for character string
- Fourcc& operator = (char fourcc[4]);
-
- private:
- uint m_fourcc; /*!< integer code of the fourcc */
- };
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // MP4FOURCC_H
diff --git a/amarok/src/metadata/m4a/mp4hdlrbox.cpp b/amarok/src/metadata/m4a/mp4hdlrbox.cpp
deleted file mode 100644
index 99bbe5f8..00000000
--- a/amarok/src/metadata/m4a/mp4hdlrbox.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <deque>
-#include <iostream>
-#include "mp4hdlrbox.h"
-#include "boxfactory.h"
-#include "mp4file.h"
-
-using namespace TagLib;
-
-class MP4::Mp4HdlrBox::Mp4HdlrBoxPrivate
-{
-public:
- uint pre_defined;
- MP4::Fourcc handler_type;
- TagLib::String hdlr_string;
-}; // class Mp4HdlrBoxPrivate
-
-MP4::Mp4HdlrBox::Mp4HdlrBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- : Mp4IsoFullBox( file, fourcc, size, offset )
-{
- d = new MP4::Mp4HdlrBox::Mp4HdlrBoxPrivate();
-}
-
-MP4::Mp4HdlrBox::~Mp4HdlrBox()
-{
- delete d;
-}
-
-MP4::Fourcc MP4::Mp4HdlrBox::hdlr_type() const
-{
- return d->handler_type;
-}
-
-TagLib::String MP4::Mp4HdlrBox::hdlr_string() const
-{
- return d->hdlr_string;
-}
-
-void MP4::Mp4HdlrBox::parse()
-{
- uint totalread = 12+20;
-
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
- if( mp4file->readInt( d->pre_defined ) == false )
- return;
- if( mp4file->readFourcc( d->handler_type ) == false )
- return;
-
- // read reserved into trash
- mp4file->seek( 3*4, TagLib::File::Current );
-
- // check if there are bytes remaining - used for hdlr string
- if( size() - totalread != 0 )
- d->hdlr_string = mp4file->readBlock( size()-totalread );
-}
diff --git a/amarok/src/metadata/m4a/mp4hdlrbox.h b/amarok/src/metadata/m4a/mp4hdlrbox.h
deleted file mode 100644
index d993bc09..00000000
--- a/amarok/src/metadata/m4a/mp4hdlrbox.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4HDLRBOX_H
-#define MP4HDLRBOX_H
-
-#include "mp4isofullbox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class Mp4HdlrBox: public Mp4IsoFullBox
- {
- public:
- Mp4HdlrBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~Mp4HdlrBox();
-
- //! parse hdlr contents
- void parse();
- //! get the handler type
- MP4::Fourcc hdlr_type() const;
- //! get the hdlr string
- TagLib::String hdlr_string() const;
-
- private:
- class Mp4HdlrBoxPrivate;
- Mp4HdlrBoxPrivate* d;
- }; // Mp4HdlrBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // MP4HDLRBOX_H
diff --git a/amarok/src/metadata/m4a/mp4ilstbox.cpp b/amarok/src/metadata/m4a/mp4ilstbox.cpp
deleted file mode 100644
index 81b6e7a9..00000000
--- a/amarok/src/metadata/m4a/mp4ilstbox.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "tlist.h"
-#include <iostream>
-#include "mp4ilstbox.h"
-#include "boxfactory.h"
-#include "mp4file.h"
-
-using namespace TagLib;
-
-class MP4::Mp4IlstBox::Mp4IlstBoxPrivate
-{
-public:
- //! container for all boxes in ilst box
- TagLib::List<Mp4IsoBox*> ilstBoxes;
- //! a box factory for creating the appropriate boxes
- MP4::BoxFactory boxfactory;
-}; // class Mp4IlstBoxPrivate
-
-MP4::Mp4IlstBox::Mp4IlstBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- : Mp4IsoBox( file, fourcc, size, offset )
-{
- d = new MP4::Mp4IlstBox::Mp4IlstBoxPrivate();
-}
-
-MP4::Mp4IlstBox::~Mp4IlstBox()
-{
- TagLib::List<Mp4IsoBox*>::Iterator delIter;
- for( delIter = d->ilstBoxes.begin();
- delIter != d->ilstBoxes.end();
- delIter++ )
- {
- delete *delIter;
- }
- delete d;
-}
-
-void MP4::Mp4IlstBox::parse()
-{
-#if 0
- std::cout << " parsing ilst box" << std::endl;
-#endif
-
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- uint totalsize = 8;
- // parse all contained boxes
- uint size;
- MP4::Fourcc fourcc;
-
-#if 0
- std::cout << " ";
-#endif
- while( (mp4file->readSizeAndType( size, fourcc ) == true) )
- {
- totalsize += size;
-
- // check for errors
- if( totalsize > MP4::Mp4IsoBox::size() )
- {
- std::cerr << "Error in mp4 file " << mp4file->name() << " ilst box contains bad box with name: " << fourcc.toString() << std::endl;
- return;
- }
-
- // create the appropriate subclass and parse it
- MP4::Mp4IsoBox* curbox = d->boxfactory.createInstance( mp4file, fourcc, size, mp4file->tell() );
- curbox->parsebox();
- d->ilstBoxes.append( curbox );
-
- // check for end of ilst box
- if( totalsize == MP4::Mp4IsoBox::size() )
- break;
-
-#if 0
- std::cout << " ";
-#endif
- }
-}
diff --git a/amarok/src/metadata/m4a/mp4ilstbox.h b/amarok/src/metadata/m4a/mp4ilstbox.h
deleted file mode 100644
index 43df7e5d..00000000
--- a/amarok/src/metadata/m4a/mp4ilstbox.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4ILSTBOX_H
-#define MP4ILSTBOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class Mp4IlstBox: public Mp4IsoBox
- {
- public:
- Mp4IlstBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~Mp4IlstBox();
-
- //! parse ilst contents
- void parse();
-
- private:
- class Mp4IlstBoxPrivate;
- Mp4IlstBoxPrivate* d;
- }; // Mp4IlstBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // MP4ILSTBOX_H
diff --git a/amarok/src/metadata/m4a/mp4isobox.cpp b/amarok/src/metadata/m4a/mp4isobox.cpp
deleted file mode 100644
index 6a559b89..00000000
--- a/amarok/src/metadata/m4a/mp4isobox.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "mp4isobox.h"
-#include "tfile.h"
-
-using namespace TagLib;
-
-class MP4::Mp4IsoBox::Mp4IsoBoxPrivate
-{
-public:
- MP4::Fourcc fourcc;
- uint size;
- long offset;
- TagLib::File* file;
-};
-
-MP4::Mp4IsoBox::Mp4IsoBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
-{
- d = new MP4::Mp4IsoBox::Mp4IsoBoxPrivate();
- d->file = file;
- d->fourcc = fourcc;
- d->size = size;
- d->offset = offset;
-}
-
-MP4::Mp4IsoBox::~Mp4IsoBox()
-{
- delete d;
-}
-
-void MP4::Mp4IsoBox::parsebox()
-{
- // seek to offset
- file()->seek( offset(), File::Beginning );
- // simply call parse method of sub class
- parse();
-}
-
-MP4::Fourcc MP4::Mp4IsoBox::fourcc() const
-{
- return d->fourcc;
-}
-
-uint MP4::Mp4IsoBox::size() const
-{
- return d->size;
-}
-
-long MP4::Mp4IsoBox::offset() const
-{
- return d->offset;
-}
-
-TagLib::File* MP4::Mp4IsoBox::file() const
-{
- return d->file;
-}
diff --git a/amarok/src/metadata/m4a/mp4isobox.h b/amarok/src/metadata/m4a/mp4isobox.h
deleted file mode 100644
index 4d4edc9c..00000000
--- a/amarok/src/metadata/m4a/mp4isobox.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4ISOBOX_H
-#define MP4ISOBOX_H
-
-#include "taglib.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- class File;
-
- namespace MP4
- {
- class Mp4IsoBox
- {
- public:
- //! constructor for base class
- Mp4IsoBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- //! destructor - simply freeing private ptr
- virtual ~Mp4IsoBox();
-
- //! function to get the fourcc code
- MP4::Fourcc fourcc() const;
- //! function to get the size of tha atom/box
- uint size() const;
- //! function to get the offset of the atom in the mp4 file
- long offset() const;
-
- //! parse wrapper to get common interface for both box and fullbox
- virtual void parsebox();
- //! pure virtual function for all subclasses to implement
- virtual void parse() = 0;
-
- protected:
- //! function to get the file pointer
- TagLib::File* file() const;
-
- protected:
- class Mp4IsoBoxPrivate;
- Mp4IsoBoxPrivate* d;
- };
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // MP4ISOBOX_H
-
diff --git a/amarok/src/metadata/m4a/mp4isofullbox.cpp b/amarok/src/metadata/m4a/mp4isofullbox.cpp
deleted file mode 100644
index b104681f..00000000
--- a/amarok/src/metadata/m4a/mp4isofullbox.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "mp4isofullbox.h"
-#include "tfile.h"
-
-using namespace TagLib;
-
-class MP4::Mp4IsoFullBox::Mp4IsoFullBoxPrivate
-{
-public:
- uchar version;
- uint flags;
-}; // Mp4IsoFullBoxPrivate
-
-
-MP4::Mp4IsoFullBox::Mp4IsoFullBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
-: Mp4IsoBox( file, fourcc, size, offset )
-{
- d = new MP4::Mp4IsoFullBox::Mp4IsoFullBoxPrivate();
-}
-
-MP4::Mp4IsoFullBox::~Mp4IsoFullBox()
-{
- delete d;
-}
-
-void MP4::Mp4IsoFullBox::parsebox()
-{
- // seek to offset
- Mp4IsoBox::file()->seek(Mp4IsoBox::offset(), File::Beginning );
- // parse version and flags
- ByteVector version_flags = Mp4IsoBox::file()->readBlock(4);
- d->version = version_flags[0];
- d->flags = version_flags[1] << 16 || version_flags[2] << 8 || version_flags[3];
- // call parse method of subclass
- parse();
-}
-
-uchar MP4::Mp4IsoFullBox::version()
-{
- return d->version;
-}
-
-uint MP4::Mp4IsoFullBox::flags()
-{
- return d->flags;
-}
-
diff --git a/amarok/src/metadata/m4a/mp4isofullbox.h b/amarok/src/metadata/m4a/mp4isofullbox.h
deleted file mode 100644
index bc01b619..00000000
--- a/amarok/src/metadata/m4a/mp4isofullbox.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4ISOFULLBOX_H
-#define MP4ISOFULLBOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class Mp4IsoFullBox : public Mp4IsoBox
- {
- public:
- //! constructor for full box
- Mp4IsoFullBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- //! destructor for mp4 iso full box
- virtual ~Mp4IsoFullBox();
-
- //! function to get the version of box
- uchar version();
- //! function to get the flag map
- uint flags();
-
- //! parse wrapper to get common interface for both box and fullbox
- virtual void parsebox();
-
- protected:
- class Mp4IsoFullBoxPrivate;
- Mp4IsoFullBoxPrivate* d;
- };
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // MP4ISOFULLBOX_H
-
diff --git a/amarok/src/metadata/m4a/mp4itunestag.cpp b/amarok/src/metadata/m4a/mp4itunestag.cpp
deleted file mode 100644
index c3ec182d..00000000
--- a/amarok/src/metadata/m4a/mp4itunestag.cpp
+++ /dev/null
@@ -1,197 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "mp4itunestag.h"
-
-using namespace TagLib;
-
-class MP4::Tag::TagPrivate
-{
-public:
- MP4::File* mp4file;
- TagLib::String title;
- TagLib::String artist;
- TagLib::String album;
- TagLib::String genre;
- uint year;
- uint track;
- TagLib::String comment;
- TagLib::String grouping;
- TagLib::String composer;
- uint disk;
- uint bpm;
- bool isEmpty;
- TagLib::ByteVector cover;
-};
-
-
-MP4::Tag::Tag( )
-{
- d = new TagPrivate();
- d->year = 0;
- d->track = 0;
- d->disk = 0;
- d->bpm = 0;
- d->isEmpty = true;
-}
-
-MP4::Tag::~Tag()
-{
- delete d;
-}
-
-String MP4::Tag::title() const
-{
- return d->title;
-}
-
-String MP4::Tag::artist() const
-{
- return d->artist;
-}
-
-String MP4::Tag::album() const
-{
- return d->album;
-}
-
-String MP4::Tag::comment() const
-{
- return d->comment;
-}
-
-String MP4::Tag::genre() const
-{
- return d->genre;
-}
-
-uint MP4::Tag::year() const
-{
- return d->year;
-}
-
-uint MP4::Tag::track() const
-{
- return d->track;
-}
-
-String MP4::Tag::grouping() const
-{
- return d->grouping;
-}
-
-String MP4::Tag::composer() const
-{
- return d->composer;
-}
-
-uint MP4::Tag::disk() const
-{
- return d->disk;
-}
-
-uint MP4::Tag::bpm() const
-{
- return d->bpm;
-}
-
-TagLib::ByteVector MP4::Tag::cover() const
-{
- return d->cover;
-}
-
-void MP4::Tag::setTitle(const String &s)
-{
- d->title = s;
- d->isEmpty = false;
-}
-
-void MP4::Tag::setArtist(const String &s)
-{
- d->artist = s;
- d->isEmpty = false;
-}
-
-void MP4::Tag::setAlbum(const String &s)
-{
- d->album = s;
- d->isEmpty = false;
-}
-
-void MP4::Tag::setComment(const String &s)
-{
- d->comment = s;
- d->isEmpty = false;
-}
-
-void MP4::Tag::setGenre(const String &s)
-{
- d->genre = s;
- d->isEmpty = false;
-}
-
-void MP4::Tag::setYear(const uint i)
-{
- d->year = i;
- d->isEmpty = false;
-}
-
-void MP4::Tag::setTrack(const uint i)
-{
- d->track = i;
- d->isEmpty = false;
-}
-
-void MP4::Tag::setGrouping(const String &s)
-{
- d->grouping = s;
- d->isEmpty = false;
-}
-
-void MP4::Tag::setComposer(const String &s)
-{
- d->composer = s;
- d->isEmpty = false;
-}
-
-void MP4::Tag::setDisk(const uint i)
-{
- d->disk = i;
- d->isEmpty = false;
-}
-
-void MP4::Tag::setBpm(const uint i)
-{
- d->bpm = i;
- d->isEmpty = false;
-}
-
-void MP4::Tag::setCover(const TagLib::ByteVector& c)
-{
- d->cover = c;
- d->isEmpty = false;
-}
-
-bool MP4::Tag::isEmpty() const
-{
- return d->isEmpty;
-}
-
diff --git a/amarok/src/metadata/m4a/mp4itunestag.h b/amarok/src/metadata/m4a/mp4itunestag.h
deleted file mode 100644
index 9e572a7f..00000000
--- a/amarok/src/metadata/m4a/mp4itunestag.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4ITUNESTAG_H
-#define MP4ITUNESTAG_H
-
-#include "taglib.h"
-#include "tstring.h"
-#include "tag.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class File;
-
- class Tag : public TagLib::Tag
- {
- public:
- /*!
- * Constructs an empty MP4 iTunes tag.
- */
- Tag( );
-
- /*!
- * Destroys this Tag instance.
- */
- virtual ~Tag();
-
- // Reimplementations.
-
- virtual String title() const;
- virtual String artist() const;
- virtual String album() const;
- virtual String comment() const;
- virtual String genre() const;
- virtual uint year() const;
- virtual uint track() const;
-
- virtual void setTitle(const String &s);
- virtual void setArtist(const String &s);
- virtual void setAlbum(const String &s);
- virtual void setComment(const String &s);
- virtual void setGenre(const String &s);
- virtual void setYear(const uint i);
- virtual void setTrack(const uint i);
-
- // MP4 specific fields
-
- String grouping() const;
- String composer() const;
- uint disk() const;
- uint bpm() const;
- ByteVector cover() const;
- int compilation() const { return -1; }
-
- void setGrouping(const String &s);
- void setComposer(const String &s);
- void setDisk(const uint i);
- void setBpm(const uint i);
- void setCover( const ByteVector& cover );
- void setCompilation( bool /*isCompilation*/ ) {}
-
- virtual bool isEmpty() const;
-
- private:
- Tag(const Tag &);
- Tag &operator=(const Tag &);
-
- class TagPrivate;
- TagPrivate *d;
- };
- } // namespace MP4
-
-} // namespace TagLib
-
-#endif // MP4ITUNESTAG_H
diff --git a/amarok/src/metadata/m4a/mp4mdiabox.cpp b/amarok/src/metadata/m4a/mp4mdiabox.cpp
deleted file mode 100644
index f4e76191..00000000
--- a/amarok/src/metadata/m4a/mp4mdiabox.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "tlist.h"
-#include <iostream>
-#include "mp4mdiabox.h"
-#include "mp4hdlrbox.h"
-#include "mp4minfbox.h"
-#include "boxfactory.h"
-#include "mp4file.h"
-
-using namespace TagLib;
-
-class MP4::Mp4MdiaBox::Mp4MdiaBoxPrivate
-{
-public:
- //! container for all boxes in mdia box
- TagLib::List<Mp4IsoBox*> mdiaBoxes;
- //! a box factory for creating the appropriate boxes
- MP4::BoxFactory boxfactory;
-}; // class Mp4MdiaBoxPrivate
-
-MP4::Mp4MdiaBox::Mp4MdiaBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- : Mp4IsoBox( file, fourcc, size, offset )
-{
- d = new MP4::Mp4MdiaBox::Mp4MdiaBoxPrivate();
-}
-
-MP4::Mp4MdiaBox::~Mp4MdiaBox()
-{
- TagLib::List<Mp4IsoBox*>::Iterator delIter;
- for( delIter = d->mdiaBoxes.begin();
- delIter != d->mdiaBoxes.end();
- delIter++ )
- {
- delete *delIter;
- }
- delete d;
-}
-
-void MP4::Mp4MdiaBox::parse()
-{
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- uint totalsize = 8;
- // parse all contained boxes
- uint size;
- MP4::Fourcc fourcc;
-
- // stores the current handler type
- TagLib::MP4::Fourcc hdlrtype;
-
- while( (mp4file->readSizeAndType( size, fourcc ) == true) )
- {
- totalsize += size;
-
- // check for errors
- if( totalsize > MP4::Mp4IsoBox::size() )
- {
- std::cerr << "Error in mp4 file " << mp4file->name() << " mdia box contains bad box with name: " << fourcc.toString() << std::endl;
- return;
- }
-
- // create the appropriate subclass and parse it
- MP4::Mp4IsoBox* curbox = d->boxfactory.createInstance( mp4file, fourcc, size, mp4file->tell() );
- if( static_cast<uint>( fourcc ) == 0x6d696e66 /*"minf"*/ )
- {
- // cast to minf
- Mp4MinfBox* minfbox = dynamic_cast<Mp4MinfBox*>( curbox );
- if(!minfbox)
- return;
- // set handler type
- minfbox->setHandlerType( hdlrtype );
- }
-
- curbox->parsebox();
- d->mdiaBoxes.append( curbox );
-
- if(static_cast<uint>( fourcc ) == 0x68646c72 /*"hdlr"*/ )
- {
- // cast to hdlr box
- Mp4HdlrBox* hdlrbox = dynamic_cast<Mp4HdlrBox*>( curbox );
- if(!hdlrbox)
- return;
- // get handler type
- hdlrtype = hdlrbox->hdlr_type();
- }
- // check for end of mdia box
- if( totalsize == MP4::Mp4IsoBox::size() )
- break;
-
- }
-}
diff --git a/amarok/src/metadata/m4a/mp4mdiabox.h b/amarok/src/metadata/m4a/mp4mdiabox.h
deleted file mode 100644
index da631052..00000000
--- a/amarok/src/metadata/m4a/mp4mdiabox.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4MDIABOX_H
-#define MP4MDIABOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class Mp4MdiaBox: public Mp4IsoBox
- {
- public:
- Mp4MdiaBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~Mp4MdiaBox();
-
- //! parse mdia contents
- void parse();
-
- private:
- class Mp4MdiaBoxPrivate;
- Mp4MdiaBoxPrivate* d;
- }; // Mp4MdiaBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // MP4MDIABOX_H
diff --git a/amarok/src/metadata/m4a/mp4metabox.cpp b/amarok/src/metadata/m4a/mp4metabox.cpp
deleted file mode 100644
index 2bebe2ec..00000000
--- a/amarok/src/metadata/m4a/mp4metabox.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <tlist.h>
-#include <iostream>
-#include "mp4metabox.h"
-#include "boxfactory.h"
-#include "mp4file.h"
-
-using namespace TagLib;
-
-class MP4::Mp4MetaBox::Mp4MetaBoxPrivate
-{
-public:
- //! container for all boxes in meta box
- TagLib::List<Mp4IsoBox*> metaBoxes;
- //! a box factory for creating the appropriate boxes
- MP4::BoxFactory boxfactory;
-}; // class Mp4MetaBoxPrivate
-
-MP4::Mp4MetaBox::Mp4MetaBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- : Mp4IsoFullBox( file, fourcc, size, offset )
-{
- d = new MP4::Mp4MetaBox::Mp4MetaBoxPrivate();
-}
-
-MP4::Mp4MetaBox::~Mp4MetaBox()
-{
- TagLib::List<Mp4IsoBox*>::Iterator delIter;
- for( delIter = d->metaBoxes.begin();
- delIter != d->metaBoxes.end();
- delIter++ )
- {
- delete *delIter;
- }
- delete d;
-}
-
-void MP4::Mp4MetaBox::parse()
-{
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- uint totalsize = 12; // initial size of box
- // parse all contained boxes
- uint size;
- MP4::Fourcc fourcc;
-
- while( (mp4file->readSizeAndType( size, fourcc ) == true) )
- {
- totalsize += size;
-
- // check for errors
- if( totalsize > MP4::Mp4IsoBox::size() )
- {
- std::cerr << "Error in mp4 file " << mp4file->name() << " meta box contains bad box with name: " << fourcc.toString() << std::endl;
- return;
- }
-
- // create the appropriate subclass and parse it
- MP4::Mp4IsoBox* curbox = d->boxfactory.createInstance( mp4file, fourcc, size, mp4file->tell() );
- curbox->parsebox();
- d->metaBoxes.append( curbox );
-
- // check for end of meta box
- if( totalsize == MP4::Mp4IsoBox::size() )
- break;
- }
-}
diff --git a/amarok/src/metadata/m4a/mp4metabox.h b/amarok/src/metadata/m4a/mp4metabox.h
deleted file mode 100644
index 3f8847f8..00000000
--- a/amarok/src/metadata/m4a/mp4metabox.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4METABOX_H
-#define MP4METABOX_H
-
-#include "mp4isofullbox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class Mp4MetaBox: public Mp4IsoFullBox
- {
- public:
- Mp4MetaBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~Mp4MetaBox();
-
- //! parse meta contents
- void parse();
-
- private:
- class Mp4MetaBoxPrivate;
- Mp4MetaBoxPrivate* d;
- }; // Mp4MetaBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // MP4METABOX_H
diff --git a/amarok/src/metadata/m4a/mp4minfbox.cpp b/amarok/src/metadata/m4a/mp4minfbox.cpp
deleted file mode 100644
index 027f36f3..00000000
--- a/amarok/src/metadata/m4a/mp4minfbox.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "tlist.h"
-#include <iostream>
-#include "mp4minfbox.h"
-#include "mp4stblbox.h"
-#include "boxfactory.h"
-#include "mp4file.h"
-
-using namespace TagLib;
-
-class MP4::Mp4MinfBox::Mp4MinfBoxPrivate
-{
-public:
- //! container for all boxes in minf box
- TagLib::List<Mp4IsoBox*> minfBoxes;
- //! a box factory for creating the appropriate boxes
- MP4::BoxFactory boxfactory;
- //! stores the handler type of the current trak
- MP4::Fourcc handler_type;
-}; // class Mp4MinfBoxPrivate
-
-MP4::Mp4MinfBox::Mp4MinfBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- : Mp4IsoBox( file, fourcc, size, offset )
-{
- d = new MP4::Mp4MinfBox::Mp4MinfBoxPrivate();
-}
-
-MP4::Mp4MinfBox::~Mp4MinfBox()
-{
- TagLib::List<Mp4IsoBox*>::Iterator delIter;
- for( delIter = d->minfBoxes.begin();
- delIter != d->minfBoxes.end();
- delIter++ )
- {
- delete *delIter;
- }
- delete d;
-}
-
-void MP4::Mp4MinfBox::setHandlerType( MP4::Fourcc fourcc )
-{
- d->handler_type = fourcc;
-}
-
-void MP4::Mp4MinfBox::parse()
-{
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- uint totalsize = 8;
- // parse all contained boxes
- uint size;
- MP4::Fourcc fourcc;
-
- while( (mp4file->readSizeAndType( size, fourcc ) == true) )
- {
- totalsize += size;
-
- // check for errors
- if( totalsize > MP4::Mp4IsoBox::size() )
- {
- std::cerr << "Error in mp4 file " << mp4file->name() << " minf box contains bad box with name: " << fourcc.toString() << std::endl;
- return;
- }
-
- // create the appropriate subclass and parse it
- MP4::Mp4IsoBox* curbox = d->boxfactory.createInstance( mp4file, fourcc, size, mp4file->tell() );
- if(static_cast<uint>( fourcc ) == 0x7374626c /*stbl*/ )
- {
- // cast to hdlr box
- Mp4StblBox* stblbox = dynamic_cast<Mp4StblBox*>( curbox );
- if(!stblbox)
- return;
- // set handler type
- stblbox->setHandlerType( d->handler_type );
- }
-
- curbox->parsebox();
- d->minfBoxes.append( curbox );
-
- // check for end of minf box
- if( totalsize == MP4::Mp4IsoBox::size() )
- break;
- }
-}
diff --git a/amarok/src/metadata/m4a/mp4minfbox.h b/amarok/src/metadata/m4a/mp4minfbox.h
deleted file mode 100644
index bd438676..00000000
--- a/amarok/src/metadata/m4a/mp4minfbox.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4MINFBOX_H
-#define MP4MINFBOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class Mp4MinfBox: public Mp4IsoBox
- {
- public:
- Mp4MinfBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~Mp4MinfBox();
-
- //! parse minf contents
- void parse();
- //! set the handler type - needed for stsd
- void setHandlerType( MP4::Fourcc fourcc );
-
- private:
- class Mp4MinfBoxPrivate;
- Mp4MinfBoxPrivate* d;
- }; // Mp4MinfBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // MP4MINFBOX_H
diff --git a/amarok/src/metadata/m4a/mp4moovbox.cpp b/amarok/src/metadata/m4a/mp4moovbox.cpp
deleted file mode 100644
index 2a98cacc..00000000
--- a/amarok/src/metadata/m4a/mp4moovbox.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "tlist.h"
-#include <iostream>
-#include "mp4moovbox.h"
-#include "boxfactory.h"
-#include "mp4file.h"
-
-using namespace TagLib;
-
-class MP4::Mp4MoovBox::Mp4MoovBoxPrivate
-{
-public:
- //! container for all boxes in moov box
- TagLib::List<Mp4IsoBox*> moovBoxes;
- //! a box factory for creating the appropriate boxes
- MP4::BoxFactory boxfactory;
-}; // class Mp4MoovBoxPrivate
-
-MP4::Mp4MoovBox::Mp4MoovBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- : Mp4IsoBox( file, fourcc, size, offset )
-{
- d = new MP4::Mp4MoovBox::Mp4MoovBoxPrivate();
-}
-
-MP4::Mp4MoovBox::~Mp4MoovBox()
-{
- TagLib::List<Mp4IsoBox*>::Iterator delIter;
- for( delIter = d->moovBoxes.begin();
- delIter != d->moovBoxes.end();
- delIter++ )
- {
- delete *delIter;
- }
- delete d;
-}
-
-void MP4::Mp4MoovBox::parse()
-{
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- uint totalsize = 8;
- // parse all contained boxes
- uint size;
- MP4::Fourcc fourcc;
-
- while( (mp4file->readSizeAndType( size, fourcc ) == true) )
- {
- totalsize += size;
-
- // check for errors
- if( totalsize > MP4::Mp4IsoBox::size() )
- {
- std::cerr << "Error in mp4 file " << mp4file->name() << " moov box contains bad box with name: " << fourcc.toString() << std::endl;
- return;
- }
-
- // create the appropriate subclass and parse it
- MP4::Mp4IsoBox* curbox = d->boxfactory.createInstance( mp4file, fourcc, size, mp4file->tell() );
- curbox->parsebox();
- d->moovBoxes.append( curbox );
-
- // check for end of moov box
- if( totalsize == MP4::Mp4IsoBox::size() )
- break;
- }
-}
diff --git a/amarok/src/metadata/m4a/mp4moovbox.h b/amarok/src/metadata/m4a/mp4moovbox.h
deleted file mode 100644
index 87a8c1df..00000000
--- a/amarok/src/metadata/m4a/mp4moovbox.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4MOOVBOX_H
-#define MP4MOOVBOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class Mp4MoovBox: public Mp4IsoBox
- {
- public:
- Mp4MoovBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~Mp4MoovBox();
-
- //! parse moov contents
- void parse();
-
- private:
- class Mp4MoovBoxPrivate;
- Mp4MoovBoxPrivate* d;
- }; // Mp4MoovBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // MP4MOOVBOX_H
diff --git a/amarok/src/metadata/m4a/mp4mvhdbox.cpp b/amarok/src/metadata/m4a/mp4mvhdbox.cpp
deleted file mode 100644
index 3dbd31a5..00000000
--- a/amarok/src/metadata/m4a/mp4mvhdbox.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <deque>
-#include <iostream>
-#include "mp4mvhdbox.h"
-#include "boxfactory.h"
-#include "mp4file.h"
-#include "mp4propsproxy.h"
-
-using namespace TagLib;
-
-class MP4::Mp4MvhdBox::Mp4MvhdBoxPrivate
-{
-public:
- //! creation time of the file
- TagLib::ulonglong creationTime;
- //! modification time of the file - since midnight, Jan. 1, 1904, UTC-time
- TagLib::ulonglong modificationTime;
- //! timescale for the file - referred by all time specifications in this box
- uint timescale;
- //! duration of presentation
- TagLib::ulonglong duration;
- //! playout speed
- uint rate;
- //! volume for entire presentation
- uint volume;
- //! track ID for an additional track (next new track)
- uint nextTrackID;
-}; // class Mp4MvhdBoxPrivate
-
-MP4::Mp4MvhdBox::Mp4MvhdBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- : Mp4IsoFullBox( file, fourcc, size, offset )
-{
- d = new MP4::Mp4MvhdBox::Mp4MvhdBoxPrivate();
-}
-
-MP4::Mp4MvhdBox::~Mp4MvhdBox()
-{
- delete d;
-}
-
-TagLib::ulonglong MP4::Mp4MvhdBox::creationTime() const
-{
- return d->creationTime;
-}
-
-TagLib::ulonglong MP4::Mp4MvhdBox::modificationTime() const
-{
- return d->modificationTime;
-}
-
-uint MP4::Mp4MvhdBox::timescale() const
-{
- return d->timescale;
-}
-
-TagLib::ulonglong MP4::Mp4MvhdBox::duration() const
-{
- return d->duration;
-}
-
-uint MP4::Mp4MvhdBox::rate() const
-{
- return d->rate;
-}
-
-uint MP4::Mp4MvhdBox::volume() const
-{
- return d->volume;
-}
-
-uint MP4::Mp4MvhdBox::nextTrackID() const
-{
- return d->nextTrackID;
-}
-
-
-void MP4::Mp4MvhdBox::parse()
-{
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- if( version() == 1 )
- {
- if( !mp4file->readLongLong( d->creationTime ) )
- return;
- if( !mp4file->readLongLong( d->modificationTime ) )
- return;
- if( !mp4file->readInt( d->timescale ) )
- return;
- if( !mp4file->readLongLong( d->duration ) )
- return;
- }
- else
- {
- uint creationTime_tmp, modificationTime_tmp, duration_tmp;
-
- if( !mp4file->readInt( creationTime_tmp ) )
- return;
- if( !mp4file->readInt( modificationTime_tmp ) )
- return;
- if( !mp4file->readInt( d->timescale ) )
- return;
- if( !mp4file->readInt( duration_tmp ) )
- return;
-
- d->creationTime = creationTime_tmp;
- d->modificationTime = modificationTime_tmp;
- d->duration = duration_tmp;
- }
- if( !mp4file->readInt( d->rate ) )
- return;
- if( !mp4file->readInt( d->volume ) )
- return;
- // jump over unused fields
- mp4file->seek( 68, File::Current );
-
- if( !mp4file->readInt( d->nextTrackID ) )
- return;
- // register at proxy
- mp4file->propProxy()->registerMvhd( this );
-}
diff --git a/amarok/src/metadata/m4a/mp4mvhdbox.h b/amarok/src/metadata/m4a/mp4mvhdbox.h
deleted file mode 100644
index ba15e4e2..00000000
--- a/amarok/src/metadata/m4a/mp4mvhdbox.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4MVHDBOX_H
-#define MP4MVHDBOX_H
-
-#include "mp4isofullbox.h"
-#include "mp4fourcc.h"
-#include "mp4file.h" // ulonglong
-
-namespace TagLib
-{
- namespace MP4
- {
- class Mp4MvhdBox: public Mp4IsoFullBox
- {
- public:
- Mp4MvhdBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~Mp4MvhdBox();
-
- //! function to get the creation time of the mp4 file
- ulonglong creationTime() const;
- //! function to get the modification time of the mp4 file
- ulonglong modificationTime() const;
- //! function to get the timescale referenced by the above timestamps
- uint timescale() const;
- //! function to get the presentation duration in the mp4 file
- ulonglong duration() const;
- //! function to get the rate (playout speed) - typically 1.0;
- uint rate() const;
- //! function to get volume level for presentation - typically 1.0;
- uint volume() const;
- //! function to get the track ID for adding new tracks - useless for this lib
- uint nextTrackID() const;
-
- //! parse mvhd contents
- void parse();
-
- private:
- class Mp4MvhdBoxPrivate;
- Mp4MvhdBoxPrivate* d;
- }; // Mp4MvhdBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // MP4MVHDBOX_H
diff --git a/amarok/src/metadata/m4a/mp4propsproxy.cpp b/amarok/src/metadata/m4a/mp4propsproxy.cpp
deleted file mode 100644
index 70f38491..00000000
--- a/amarok/src/metadata/m4a/mp4propsproxy.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "mp4propsproxy.h"
-
-using namespace TagLib;
-
-class MP4::Mp4PropsProxy::Mp4PropsProxyPrivate
-{
-public:
- //! the movie header box
- MP4::Mp4MvhdBox* mvhdbox;
- //! the sample table box
- MP4::Mp4AudioSampleEntry* audiosampleentry;
-};
-
-
-MP4::Mp4PropsProxy::Mp4PropsProxy()
-{
- d = new MP4::Mp4PropsProxy::Mp4PropsProxyPrivate();
- d->mvhdbox = 0;
- d->audiosampleentry = 0;
-}
-
-MP4::Mp4PropsProxy::~Mp4PropsProxy()
-{
- delete d;
-}
-
-uint MP4::Mp4PropsProxy::seconds() const
-{
- if( d->mvhdbox )
- return static_cast<uint>( d->mvhdbox->duration() / d->mvhdbox->timescale() );
- else
- return 0;
-}
-
-uint MP4::Mp4PropsProxy::channels() const
-{
- if( d->audiosampleentry )
- return d->audiosampleentry->channels();
- else
- return 0;
-}
-
-uint MP4::Mp4PropsProxy::sampleRate() const
-{
- if( d->audiosampleentry )
- return (d->audiosampleentry->samplerate()>>16);
- else
- return 0;
-}
-
-uint MP4::Mp4PropsProxy::bitRate() const
-{
- if( d->audiosampleentry )
- return (d->audiosampleentry->bitrate());
- else
- return 0;
-}
-
-void MP4::Mp4PropsProxy::registerMvhd( MP4::Mp4MvhdBox* mvhdbox )
-{
- d->mvhdbox = mvhdbox;
-}
-
-void MP4::Mp4PropsProxy::registerAudioSampleEntry( MP4::Mp4AudioSampleEntry* audioSampleEntry )
-{
- d->audiosampleentry = audioSampleEntry;
-}
-
diff --git a/amarok/src/metadata/m4a/mp4propsproxy.h b/amarok/src/metadata/m4a/mp4propsproxy.h
deleted file mode 100644
index f6132c90..00000000
--- a/amarok/src/metadata/m4a/mp4propsproxy.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4PROPSPROXY_H
-#define MP4PROPSPROXY_H MP4PROPSPROXY_H
-#include "mp4mvhdbox.h"
-#include "mp4audiosampleentry.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- //! Mp4PropsProxy is used to access the stsd box and mvhd box directly
- /*! this class works as a shortcut to avoid stepping through all parent boxes
- * to access the boxes in question
- */
- class Mp4PropsProxy
- {
- public:
- //! constructor for properties proxy
- Mp4PropsProxy();
- //! destructor
- ~Mp4PropsProxy();
-
- //! function to get length of media in seconds
- uint seconds() const;
- //! function to get the nunmber of channels
- uint channels() const;
- //! function to get the sample rate
- uint sampleRate() const;
- //! function to get the bitrate rate
- uint bitRate() const;
-
- //! function to register the movie header box - mvhd
- void registerMvhd( MP4::Mp4MvhdBox* mvhdbox );
- //! function to register the sample description box
- void registerAudioSampleEntry( MP4::Mp4AudioSampleEntry* audiosampleentry );
-
- private:
- class Mp4PropsProxyPrivate;
- Mp4PropsProxyPrivate* d;
-
- }; // Mp4PropsProxy
- } // MP4
-} // TagLib
-
-#endif // MP4PROPSPROXY_H
diff --git a/amarok/src/metadata/m4a/mp4sampleentry.cpp b/amarok/src/metadata/m4a/mp4sampleentry.cpp
deleted file mode 100644
index d74a22f4..00000000
--- a/amarok/src/metadata/m4a/mp4sampleentry.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "mp4sampleentry.h"
-#include "mp4isobox.h"
-#include "mp4file.h"
-
-using namespace TagLib;
-
-class MP4::Mp4SampleEntry::Mp4SampleEntryPrivate
-{
-public:
- uint data_reference_index;
-};
-
-MP4::Mp4SampleEntry::Mp4SampleEntry( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- :Mp4IsoBox(file, fourcc, size, offset)
-{
- d = new MP4::Mp4SampleEntry::Mp4SampleEntryPrivate();
-}
-
-MP4::Mp4SampleEntry::~Mp4SampleEntry()
-{
- delete d;
-}
-
-//! parse the content of the box
-void MP4::Mp4SampleEntry::parse()
-{
- TagLib::MP4::File* mp4file = dynamic_cast<TagLib::MP4::File*>(file());
- if(!mp4file)
- return;
-
- // skip the first 6 bytes
- mp4file->seek( 6, TagLib::File::Current );
- // read data reference index
- if(!mp4file->readShort( d->data_reference_index))
- return;
- parseEntry();
-}
-
diff --git a/amarok/src/metadata/m4a/mp4sampleentry.h b/amarok/src/metadata/m4a/mp4sampleentry.h
deleted file mode 100644
index 39475f7c..00000000
--- a/amarok/src/metadata/m4a/mp4sampleentry.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4SAMPLEENTRY_H
-#define MP4SAMPLEENTRY_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class Mp4SampleEntry: public Mp4IsoBox
- {
- public:
- Mp4SampleEntry( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~Mp4SampleEntry();
-
- public:
- //! parse the content of the box
- virtual void parse();
-
- private:
- //! function to be implemented in subclass
- virtual void parseEntry() = 0;
-
- protected:
- class Mp4SampleEntryPrivate;
- Mp4SampleEntryPrivate* d;
- }; // class Mp4SampleEntry
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // MP4SAMPLEENTRY_H
diff --git a/amarok/src/metadata/m4a/mp4skipbox.cpp b/amarok/src/metadata/m4a/mp4skipbox.cpp
deleted file mode 100644
index 8cb52180..00000000
--- a/amarok/src/metadata/m4a/mp4skipbox.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "mp4skipbox.h"
-#include "mp4isobox.h"
-#include "tfile.h"
-
-using namespace TagLib;
-
-class MP4::Mp4SkipBox::Mp4SkipBoxPrivate
-{
-public:
-};
-
-MP4::Mp4SkipBox::Mp4SkipBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- :Mp4IsoBox(file, fourcc, size, offset)
-{
- d = new MP4::Mp4SkipBox::Mp4SkipBoxPrivate();
-}
-
-MP4::Mp4SkipBox::~Mp4SkipBox()
-{
- delete d;
-}
-
-//! parse the content of the box
-void MP4::Mp4SkipBox::parse()
-{
- // skip contents
- file()->seek( size() - 8, TagLib::File::Current );
-}
-
diff --git a/amarok/src/metadata/m4a/mp4skipbox.h b/amarok/src/metadata/m4a/mp4skipbox.h
deleted file mode 100644
index 896fcaa7..00000000
--- a/amarok/src/metadata/m4a/mp4skipbox.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4SKIPBOX_H
-#define MP4SKIPBOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class Mp4SkipBox: public Mp4IsoBox
- {
- public:
- Mp4SkipBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~Mp4SkipBox();
-
- private:
- //! parse the content of the box
- virtual void parse();
-
- protected:
- class Mp4SkipBoxPrivate;
- Mp4SkipBoxPrivate* d;
- }; // class Mp4SkipBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // MP4SKIPBOX_H
diff --git a/amarok/src/metadata/m4a/mp4stblbox.cpp b/amarok/src/metadata/m4a/mp4stblbox.cpp
deleted file mode 100644
index cfd1978d..00000000
--- a/amarok/src/metadata/m4a/mp4stblbox.cpp
+++ /dev/null
@@ -1,105 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "tlist.h"
-#include <iostream>
-#include "mp4stblbox.h"
-#include "mp4stsdbox.h"
-#include "boxfactory.h"
-#include "mp4file.h"
-
-using namespace TagLib;
-
-class MP4::Mp4StblBox::Mp4StblBoxPrivate
-{
-public:
- //! container for all boxes in stbl box
- TagLib::List<Mp4IsoBox*> stblBoxes;
- //! a box factory for creating the appropriate boxes
- MP4::BoxFactory boxfactory;
- //! the handler type for the current trak
- MP4::Fourcc handler_type;
-}; // class Mp4StblBoxPrivate
-
-MP4::Mp4StblBox::Mp4StblBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- : Mp4IsoBox( file, fourcc, size, offset )
-{
- d = new MP4::Mp4StblBox::Mp4StblBoxPrivate();
-}
-
-MP4::Mp4StblBox::~Mp4StblBox()
-{
- TagLib::List<Mp4IsoBox*>::Iterator delIter;
- for( delIter = d->stblBoxes.begin();
- delIter != d->stblBoxes.end();
- delIter++ )
- {
- delete *delIter;
- }
- delete d;
-}
-
-void MP4::Mp4StblBox::setHandlerType( MP4::Fourcc fourcc )
-{
- d->handler_type = fourcc;
-}
-
-void MP4::Mp4StblBox::parse()
-{
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- uint totalsize = 8;
- // parse all contained boxes
- uint size;
- MP4::Fourcc fourcc;
-
- while( (mp4file->readSizeAndType( size, fourcc ) == true) )
- {
- totalsize += size;
-
- // check for errors
- if( totalsize > MP4::Mp4IsoBox::size() )
- {
- std::cerr << "Error in mp4 file " << mp4file->name() << " stbl box contains bad box with name: " << fourcc.toString() << std::endl;
- return;
- }
-
- // create the appropriate subclass and parse it
- MP4::Mp4IsoBox* curbox = d->boxfactory.createInstance( mp4file, fourcc, size, mp4file->tell() );
-
- // check for stsd
- if( static_cast<uint>(fourcc) == 0x73747364 /*'stsd'*/ )
- {
- // cast to stsd box
- MP4::Mp4StsdBox* stsdbox = dynamic_cast<MP4::Mp4StsdBox*>(curbox);
- if(!stsdbox)
- return;
- // set the handler type
- stsdbox->setHandlerType( d->handler_type );
- }
- curbox->parsebox();
- d->stblBoxes.append( curbox );
-
- // check for end of stbl box
- if( totalsize == MP4::Mp4IsoBox::size() )
- break;
- }
-}
diff --git a/amarok/src/metadata/m4a/mp4stblbox.h b/amarok/src/metadata/m4a/mp4stblbox.h
deleted file mode 100644
index 3eed245a..00000000
--- a/amarok/src/metadata/m4a/mp4stblbox.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4STBLBOX_H
-#define MP4STBLBOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class Mp4StblBox: public Mp4IsoBox
- {
- public:
- Mp4StblBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~Mp4StblBox();
-
- //! parse stbl contents
- void parse();
- //! set the handler type - needed for stsd
- void setHandlerType( MP4::Fourcc fourcc );
-
- private:
- class Mp4StblBoxPrivate;
- Mp4StblBoxPrivate* d;
- }; // Mp4StblBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // MP4STBLBOX_H
diff --git a/amarok/src/metadata/m4a/mp4stsdbox.cpp b/amarok/src/metadata/m4a/mp4stsdbox.cpp
deleted file mode 100644
index bd9e8f4a..00000000
--- a/amarok/src/metadata/m4a/mp4stsdbox.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "tlist.h"
-#include <iostream>
-#include "mp4stsdbox.h"
-#include "mp4audiosampleentry.h"
-#include "mp4file.h"
-
-using namespace TagLib;
-
-class MP4::Mp4StsdBox::Mp4StsdBoxPrivate
-{
-public:
- //! the handler type for the current trak
- MP4::Fourcc handler_type;
- //! the audio sample entry
- MP4::Mp4AudioSampleEntry* audioSampleEntry;
-}; // class Mp4StsdBoxPrivate
-
-MP4::Mp4StsdBox::Mp4StsdBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- : Mp4IsoFullBox( file, fourcc, size, offset )
-{
- d = new MP4::Mp4StsdBox::Mp4StsdBoxPrivate();
-}
-
-MP4::Mp4StsdBox::~Mp4StsdBox()
-{
- delete d;
-}
-
-void MP4::Mp4StsdBox::setHandlerType( MP4::Fourcc fourcc )
-{
- d->handler_type = fourcc;
-}
-
-void MP4::Mp4StsdBox::parse()
-{
- MP4::File* mp4file = dynamic_cast<MP4::File*>( file() );
- if(!mp4file)
- return;
-
- uint totalsize = 12; // initial size of box
-
- // check for handler type - only parse if 'soun':
- if( static_cast<uint>(d->handler_type) == 0x736f756e )
- {
- // read entry count
- uint entry_count;
- if(!mp4file->readInt( entry_count ))
- return;
-
- // simply read first entry and skip all following
- // read size and type
- uint cursize;
- MP4::Fourcc fourcc;
- if( !mp4file->readSizeAndType( cursize, fourcc ))
- return;
-
- totalsize += 12;
- // alocate an AudioSampleEntry
- d->audioSampleEntry = new MP4::Mp4AudioSampleEntry( mp4file, fourcc, cursize, mp4file->tell() );
- // parse the AudioSampleEntry
- d->audioSampleEntry->parse();
- totalsize += cursize-8;
- // skip the remaining box contents
- mp4file->seek( size()-totalsize, TagLib::File::Current );
- }
- else
- {
- mp4file->seek( size()-totalsize, TagLib::File::Current );
- }
-}
diff --git a/amarok/src/metadata/m4a/mp4stsdbox.h b/amarok/src/metadata/m4a/mp4stsdbox.h
deleted file mode 100644
index 54318759..00000000
--- a/amarok/src/metadata/m4a/mp4stsdbox.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4STSDBOX_H
-#define MP4STSDBOX_H
-
-#include "mp4isofullbox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class Mp4StsdBox: public Mp4IsoFullBox
- {
- public:
- Mp4StsdBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~Mp4StsdBox();
-
- //! parse stsd contents
- void parse();
- //! set the handler type - needed for stsd
- void setHandlerType( MP4::Fourcc fourcc );
-
- private:
- class Mp4StsdBoxPrivate;
- Mp4StsdBoxPrivate* d;
- }; // Mp4StsdBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // MP4STSDBOX_H
diff --git a/amarok/src/metadata/m4a/mp4tagsproxy.cpp b/amarok/src/metadata/m4a/mp4tagsproxy.cpp
deleted file mode 100644
index 0a77427c..00000000
--- a/amarok/src/metadata/m4a/mp4tagsproxy.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "mp4tagsproxy.h"
-#include "itunesdatabox.h"
-
-using namespace TagLib;
-
-class MP4::Mp4TagsProxy::Mp4TagsProxyPrivate
-{
-public:
- ITunesDataBox* titleData;
- ITunesDataBox* artistData;
- ITunesDataBox* albumData;
- ITunesDataBox* coverData;
- ITunesDataBox* genreData;
- ITunesDataBox* yearData;
- ITunesDataBox* trknData;
- ITunesDataBox* commentData;
- ITunesDataBox* groupingData;
- ITunesDataBox* composerData;
- ITunesDataBox* diskData;
- ITunesDataBox* bpmData;
-};
-
-MP4::Mp4TagsProxy::Mp4TagsProxy()
-{
- d = new MP4::Mp4TagsProxy::Mp4TagsProxyPrivate();
- d->titleData = 0;
- d->artistData = 0;
- d->albumData = 0;
- d->coverData = 0;
- d->genreData = 0;
- d->yearData = 0;
- d->trknData = 0;
- d->commentData = 0;
- d->groupingData = 0;
- d->composerData = 0;
- d->diskData = 0;
- d->bpmData = 0;
-}
-
-MP4::Mp4TagsProxy::~Mp4TagsProxy()
-{
- delete d;
-}
-
-MP4::ITunesDataBox* MP4::Mp4TagsProxy::titleData() const
-{
- return d->titleData;
-}
-
-MP4::ITunesDataBox* MP4::Mp4TagsProxy::artistData() const
-{
- return d->artistData;
-}
-
-MP4::ITunesDataBox* MP4::Mp4TagsProxy::albumData() const
-{
- return d->albumData;
-}
-
-MP4::ITunesDataBox* MP4::Mp4TagsProxy::genreData() const
-{
- return d->genreData;
-}
-
-MP4::ITunesDataBox* MP4::Mp4TagsProxy::yearData() const
-{
- return d->yearData;
-}
-
-MP4::ITunesDataBox* MP4::Mp4TagsProxy::trknData() const
-{
- return d->trknData;
-}
-
-MP4::ITunesDataBox* MP4::Mp4TagsProxy::commentData() const
-{
- return d->commentData;
-}
-
-MP4::ITunesDataBox* MP4::Mp4TagsProxy::groupingData() const
-{
- return d->groupingData;
-}
-
-MP4::ITunesDataBox* MP4::Mp4TagsProxy::composerData() const
-{
- return d->composerData;
-}
-
-MP4::ITunesDataBox* MP4::Mp4TagsProxy::diskData() const
-{
- return d->diskData;
-}
-
-MP4::ITunesDataBox* MP4::Mp4TagsProxy::bpmData() const
-{
- return d->bpmData;
-}
-
-MP4::ITunesDataBox* MP4::Mp4TagsProxy::coverData() const
-{
- return d->coverData;
-}
-
-void MP4::Mp4TagsProxy::registerBox( EBoxType boxtype, ITunesDataBox* databox )
-{
- switch( boxtype )
- {
- case title:
- d->titleData = databox;
- break;
- case artist:
- d->artistData = databox;
- break;
- case album:
- d->albumData = databox;
- break;
- case cover:
- d->coverData = databox;
- break;
- case genre:
- d->genreData = databox;
- break;
- case year:
- d->yearData = databox;
- break;
- case trackno:
- d->trknData = databox;
- break;
- case comment:
- d->commentData = databox;
- break;
- case grouping:
- d->groupingData = databox;
- break;
- case composer:
- d->composerData = databox;
- break;
- case disk:
- d->diskData = databox;
- break;
- case bpm:
- d->bpmData = databox;
- break;
- }
-}
-
diff --git a/amarok/src/metadata/m4a/mp4tagsproxy.h b/amarok/src/metadata/m4a/mp4tagsproxy.h
deleted file mode 100644
index c8bcbf06..00000000
--- a/amarok/src/metadata/m4a/mp4tagsproxy.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4TAGSPROXY_H
-#define MP4TAGSPROXY_H
-
-namespace TagLib
-{
- namespace MP4
- {
- // forward declaration(s)
- class ITunesDataBox;
- /*! proxy for mp4 itunes tag relevant boxes
- *
- * this class works as a proxy for the specific tag boxes
- * in an mp4 itunes file. the boxes are mired in
- * the mp4 file structure and stepping through all box layers
- * is avoided by registration at the proxy object.
- */
- class Mp4TagsProxy
- {
- public:
- /*! enum for all supported box types */
- typedef enum
- {
- title = 0,
- artist,
- album,
- cover,
- genre,
- year,
- trackno,
- comment,
- grouping,
- composer,
- disk,
- bpm
- } EBoxType;
-
- //! constructor
- Mp4TagsProxy();
- //! destructor
- ~Mp4TagsProxy();
-
- //! function to get the data box for the title
- ITunesDataBox* titleData() const;
- //! function to get the data box for the artist
- ITunesDataBox* artistData() const;
- //! function to get the data box for the album
- ITunesDataBox* albumData() const;
- //! function to get the data box for the genre
- ITunesDataBox* genreData() const;
- //! function to get the data box for the year
- ITunesDataBox* yearData() const;
- //! function to get the data box for the track number
- ITunesDataBox* trknData() const;
- //! function to get the data box for the comment
- ITunesDataBox* commentData() const;
- //! function to get the data box for the grouping
- ITunesDataBox* groupingData() const;
- //! function to get the data box for the composer
- ITunesDataBox* composerData() const;
- //! function to get the data box for the disk number
- ITunesDataBox* diskData() const;
- //! function to get the data box for the bpm
- ITunesDataBox* bpmData() const;
- //! function to get the data box for the cover
- ITunesDataBox* coverData() const;
-
- //! function to register a data box for a certain box type
- void registerBox( EBoxType boxtype, ITunesDataBox* databox );
-
- private:
- class Mp4TagsProxyPrivate;
- //! private data of tags proxy
- Mp4TagsProxyPrivate* d;
- }; // class Mp4TagsProxy
- } // namespace MP4
-} // namespace TagLib
-
-#endif // MP4TAGSPROXY_H
diff --git a/amarok/src/metadata/m4a/mp4trakbox.cpp b/amarok/src/metadata/m4a/mp4trakbox.cpp
deleted file mode 100644
index 4fe373ff..00000000
--- a/amarok/src/metadata/m4a/mp4trakbox.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "tlist.h"
-#include <iostream>
-#include "mp4trakbox.h"
-#include "boxfactory.h"
-#include "mp4file.h"
-
-using namespace TagLib;
-
-class MP4::Mp4TrakBox::Mp4TrakBoxPrivate
-{
-public:
- //! container for all boxes in trak box
- TagLib::List<Mp4IsoBox*> trakBoxes;
- //! a box factory for creating the appropriate boxes
- MP4::BoxFactory boxfactory;
-}; // class Mp4TrakBoxPrivate
-
-MP4::Mp4TrakBox::Mp4TrakBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- : Mp4IsoBox( file, fourcc, size, offset )
-{
- d = new MP4::Mp4TrakBox::Mp4TrakBoxPrivate();
-}
-
-MP4::Mp4TrakBox::~Mp4TrakBox()
-{
- TagLib::List<Mp4IsoBox*>::Iterator delIter;
- for( delIter = d->trakBoxes.begin();
- delIter != d->trakBoxes.end();
- delIter++ )
- {
- delete *delIter;
- }
- delete d;
-}
-
-void MP4::Mp4TrakBox::parse()
-{
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- uint totalsize = 8;
- // parse all contained boxes
- uint size;
- MP4::Fourcc fourcc;
-
- while( (mp4file->readSizeAndType( size, fourcc ) == true) )
- {
- totalsize += size;
-
- // check for errors
- if( totalsize > MP4::Mp4IsoBox::size() )
- {
- std::cerr << "Error in mp4 file " << mp4file->name() << " trak box contains bad box with name: " << fourcc.toString() << std::endl;
- return;
- }
-
- // create the appropriate subclass and parse it
- MP4::Mp4IsoBox* curbox = d->boxfactory.createInstance( mp4file, fourcc, size, mp4file->tell() );
- curbox->parsebox();
- d->trakBoxes.append( curbox );
-
- // check for end of trak box
- if( totalsize == MP4::Mp4IsoBox::size() )
- break;
- }
-}
diff --git a/amarok/src/metadata/m4a/mp4trakbox.h b/amarok/src/metadata/m4a/mp4trakbox.h
deleted file mode 100644
index b0f05cb3..00000000
--- a/amarok/src/metadata/m4a/mp4trakbox.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4TRAKBOX_H
-#define MP4TRAKBOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class Mp4TrakBox: public Mp4IsoBox
- {
- public:
- Mp4TrakBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~Mp4TrakBox();
-
- //! parse trak contents
- void parse();
-
- private:
- class Mp4TrakBoxPrivate;
- Mp4TrakBoxPrivate* d;
- }; // Mp4TrakBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // MP4TRAKBOX_H
diff --git a/amarok/src/metadata/m4a/mp4udtabox.cpp b/amarok/src/metadata/m4a/mp4udtabox.cpp
deleted file mode 100644
index 58a171ba..00000000
--- a/amarok/src/metadata/m4a/mp4udtabox.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "tlist.h"
-#include <iostream>
-#include "mp4udtabox.h"
-#include "boxfactory.h"
-#include "mp4file.h"
-
-using namespace TagLib;
-
-class MP4::Mp4UdtaBox::Mp4UdtaBoxPrivate
-{
-public:
- //! container for all boxes in udta box
- TagLib::List<Mp4IsoBox*> udtaBoxes;
- //! a box factory for creating the appropriate boxes
- MP4::BoxFactory boxfactory;
-}; // class Mp4UdtaBoxPrivate
-
-MP4::Mp4UdtaBox::Mp4UdtaBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset )
- : Mp4IsoBox( file, fourcc, size, offset )
-{
- d = new MP4::Mp4UdtaBox::Mp4UdtaBoxPrivate();
-}
-
-MP4::Mp4UdtaBox::~Mp4UdtaBox()
-{
- TagLib::List<Mp4IsoBox*>::Iterator delIter;
- for( delIter = d->udtaBoxes.begin();
- delIter != d->udtaBoxes.end();
- delIter++ )
- {
- delete *delIter;
- }
- delete d;
-}
-
-void MP4::Mp4UdtaBox::parse()
-{
-#if 0
- std::cout << " parsing udta box" << std::endl;
-#endif
- TagLib::MP4::File* mp4file = static_cast<MP4::File*>( file() );
-
- uint totalsize = 8;
- // parse all contained boxes
- uint size;
- MP4::Fourcc fourcc;
-
-#if 0
- std::cout << " ";
-#endif
- while( (mp4file->readSizeAndType( size, fourcc ) == true) )
- {
- totalsize += size;
-
- // check for errors
- if( totalsize > MP4::Mp4IsoBox::size() )
- {
- std::cerr << "Error in mp4 file " << mp4file->name() << " udta box contains bad box with name: " << fourcc.toString() << std::endl;
- return;
- }
-
- // create the appropriate subclass and parse it
- MP4::Mp4IsoBox* curbox = d->boxfactory.createInstance( mp4file, fourcc, size, mp4file->tell() );
- curbox->parsebox();
- d->udtaBoxes.append( curbox );
-
- // check for end of udta box
- if( totalsize == MP4::Mp4IsoBox::size() )
- break;
-#if 0
- std::cout << " ";
-#endif
- }
-}
diff --git a/amarok/src/metadata/m4a/mp4udtabox.h b/amarok/src/metadata/m4a/mp4udtabox.h
deleted file mode 100644
index eb982023..00000000
--- a/amarok/src/metadata/m4a/mp4udtabox.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002, 2003, 2006 by Jochen Issing
- email : jochen.issing@isign-softart.de
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef MP4UDTABOX_H
-#define MP4UDTABOX_H
-
-#include "mp4isobox.h"
-#include "mp4fourcc.h"
-
-namespace TagLib
-{
- namespace MP4
- {
- class Mp4UdtaBox: public Mp4IsoBox
- {
- public:
- Mp4UdtaBox( TagLib::File* file, MP4::Fourcc fourcc, uint size, long offset );
- ~Mp4UdtaBox();
-
- //! parse moov contents
- void parse();
-
- private:
- class Mp4UdtaBoxPrivate;
- Mp4UdtaBoxPrivate* d;
- }; // Mp4UdtaBox
-
- } // namespace MP4
-} // namespace TagLib
-
-#endif // MP4UDTABOX_H
diff --git a/amarok/src/metadata/m4a/taglib_mp4filetyperesolver.cpp b/amarok/src/metadata/m4a/taglib_mp4filetyperesolver.cpp
deleted file mode 100644
index 9566a934..00000000
--- a/amarok/src/metadata/m4a/taglib_mp4filetyperesolver.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-/***************************************************************************
- copyright : (C) 2006 by Martin Aumueller
- email : aumuell@reserv.at
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "taglib_mp4filetyperesolver.h"
-#include "mp4file.h"
-
-#include <string.h>
-
-TagLib::File *MP4FileTypeResolver::createFile(const char *fileName,
- bool readProperties,
- TagLib::AudioProperties::ReadStyle propertiesStyle) const
-{
-// fprintf(stderr, "mp4?: %s\n", fileName);
- const char *ext = strrchr(fileName, '.');
- if(ext && (!strcasecmp(ext, ".m4a")
- || !strcasecmp(ext, ".m4b") || !strcasecmp(ext, ".m4p")
- || !strcasecmp(ext, ".mp4")
- || !strcasecmp(ext, ".m4v") || !strcasecmp(ext, ".mp4v")))
- {
- return new TagLib::MP4::File(fileName, readProperties, propertiesStyle);
- }
-
- return 0;
-}
diff --git a/amarok/src/metadata/m4a/taglib_mp4filetyperesolver.h b/amarok/src/metadata/m4a/taglib_mp4filetyperesolver.h
deleted file mode 100644
index fbc3dd4d..00000000
--- a/amarok/src/metadata/m4a/taglib_mp4filetyperesolver.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/***************************************************************************
- copyright : (C) 2006 by Martin Aumueller
- email : aumuell@reserv.at
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef TAGLIB_MP4FILETYPERESOLVER_H
-#define TAGLIB_MP4FILETYPERESOLVER_H
-
-#include <taglib/tfile.h>
-#include <taglib/fileref.h>
-
-
-class MP4FileTypeResolver : public TagLib::FileRef::FileTypeResolver
-{
- TagLib::File *createFile(const char *fileName,
- bool readAudioProperties,
- TagLib::AudioProperties::ReadStyle audioPropertiesStyle) const;
-};
-
-#endif
diff --git a/amarok/src/metadata/mp4/CMakeLists.txt b/amarok/src/metadata/mp4/CMakeLists.txt
deleted file mode 100644
index f3ed9d37..00000000
--- a/amarok/src/metadata/mp4/CMakeLists.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-#################################################
-#
-# (C) 2010-2013 Darrell Anderson
-# humanreadable (AT) yahoo.com
-#
-# Improvements and feedback are welcome
-#
-# This file is released under GPL >= 2
-#
-#################################################
-
-include_directories(
- ${CMAKE_BINARY_DIR}
- ${TDE_INCLUDE_DIR}
- ${TQT_INCLUDE_DIRS}
- ${TAGLIB_INCLUDE_DIRS}
- ${MP4V2_INCLUDE_DIRS}
-)
-
-
-##### tagmp4 (static)
-
-tde_add_library( common-tagmp4 STATIC_PIC
-
- SOURCES
- mp4file.cpp
- mp4properties.cpp
- mp4tag.cpp
- taglib_mp4filetyperesolver.cpp
- LINK
- ${MP4V2_LIBRARIES}
-)
diff --git a/amarok/src/metadata/mp4/Makefile.am b/amarok/src/metadata/mp4/Makefile.am
deleted file mode 100644
index c48ccc5f..00000000
--- a/amarok/src/metadata/mp4/Makefile.am
+++ /dev/null
@@ -1,18 +0,0 @@
-SUBDIRS =
-
-INCLUDES = $(all_includes) $(MP4V2_INCLUDES) $(TAGLIB_CFLAGS)
-METASOURCES = AUTO
-libtagmp4_la_LDFLAGS = $(all_libraries) $(MP4V2_LIBS)
-noinst_LTLIBRARIES = libtagmp4.la
-
-libtagmp4_la_SOURCES = \
- mp4properties.cpp \
- mp4tag.cpp \
- mp4file.cpp \
- taglib_mp4filetyperesolver.cpp
-
-noinst_HEADERS = \
- mp4properties.h \
- mp4tag.h \
- mp4file.h \
- taglib_mp4filetyperesolver.h
diff --git a/amarok/src/metadata/mp4/mp4file.cpp b/amarok/src/metadata/mp4/mp4file.cpp
deleted file mode 100644
index e78d6ae9..00000000
--- a/amarok/src/metadata/mp4/mp4file.cpp
+++ /dev/null
@@ -1,260 +0,0 @@
-/***************************************************************************
-copyright : (C) 2005 by Andy Leadbetter
-email : andrew.leadbetter@gmail.com
-
-copyright : (C) 2005 by Martin Aumueller
-email : aumuell@reserv.at
- (write support)
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <config.h>
-
-#include "mp4file.h"
-
-#include "mp4tag.h"
-#include <tfile.h>
-#include <audioproperties.h>
-
-#include <stdint.h>
-#include <cstdlib>
-#include <stdlib.h>
-#include <sys/types.h>
-
-#ifdef HAVE_MP4V2_H
-#define USE_ITMF_TAGS
-#else
-#define MP4V2_HAS_WRITE_BUG 1
-#endif
-
-namespace TagLib {
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-MP4::File::File(const char *file,
- bool readProperties,
- Properties::ReadStyle propertiesStyle,
- MP4FileHandle handle) : TagLib::File(file),
- mp4tag(NULL), properties(NULL)
-{
-
- // debug ("MP4::File: create new file object.");
- //debug ( file );
- /**
- * Create the MP4 file.
- */
-
- if(handle == MP4_INVALID_FILE_HANDLE)
- {
- mp4file = MP4Read(file);
- }
- else
- {
- mp4file = handle;
- }
-
- if( isOpen() )
- {
- read(readProperties, propertiesStyle );
- }
-}
-
-MP4::File::~File()
-{
- MP4Close(mp4file);
- delete mp4tag;
- delete properties;
-}
-
-TagLib::Tag *MP4::File::tag() const
-{
- return mp4tag;
-}
-
-TagLib::MP4::Tag *MP4::File::getMP4Tag() const
-{
- return mp4tag;
-}
-
-MP4::Properties *MP4::File::audioProperties() const
-{
- return properties;
-}
-
-bool MP4::File::save()
-{
- MP4Close(mp4file);
-
- MP4FileHandle handle = MP4Modify(name());
- if(handle == MP4_INVALID_FILE_HANDLE)
- {
- mp4file = MP4Read(name());
- return false;
- }
-
-#ifdef USE_ITMF_TAGS
- const MP4Tags* filetags = MP4TagsAlloc();
- MP4TagsFetch(filetags, handle);
-#endif
-
-#ifdef MP4V2_HAS_WRITE_BUG
- /* according to gtkpod we have to delete all meta data before modifying it,
- save the stuff we would not touch */
-
- // need to fetch/rewrite this only if we aren't going to anyway
- uint8_t compilation = 0;
- bool has_compilation = mp4tag->compilation() == MP4::Tag::Undefined ? MP4GetMetadataCompilation(handle, &compilation) : false;
-
- char *tool = NULL;
- MP4GetMetadataTool(handle, &tool);
-
- MP4MetadataDelete(handle);
-#endif
-
-
-#ifdef USE_ITMF_TAGS
- MP4TagsSetName(filetags, mp4tag->title().isEmpty() ? "" : mp4tag->title().toCString(true));
- MP4TagsSetArtist(filetags, mp4tag->artist().isEmpty() ? "" : mp4tag->artist().toCString(true));
- MP4TagsSetAlbum(filetags, mp4tag->album().isEmpty() ? "" : mp4tag->album().toCString(true));
- MP4TagsSetComments(filetags, mp4tag->comment().isEmpty() ? "" : mp4tag->comment().toCString(true));
- MP4TagsSetGenre(filetags, mp4tag->genre().isEmpty() ? "" : mp4tag->genre().toCString(true));
- MP4TagsSetComposer(filetags, mp4tag->composer().isEmpty() ? "" : mp4tag->composer().toCString(true));
-#else
-#define setmeta(val, tag) \
- if(mp4tag->val().isEmpty()) { \
- /*MP4DeleteMetadata##tag(handle);*/ \
- MP4SetMetadata##tag(handle, ""); \
- } else { \
- MP4SetMetadata##tag(handle, mp4tag->val().toCString(true)); \
- }
- setmeta(title, Name);
- setmeta(artist, Artist);
- setmeta(album, Album);
- setmeta(comment, Comment);
- setmeta(genre, Genre);
- setmeta(composer, Writer);
-#endif
-
- char buf[100] = "";
- if(mp4tag->year())
- snprintf(buf, sizeof(buf), "%u", mp4tag->year());
-#ifdef USE_ITMF_TAGS
- MP4TagsSetReleaseDate(filetags, buf);
-#else
- MP4SetMetadataYear(handle, buf);
-#endif
- u_int16_t t1, t2;
-
-#ifdef USE_ITMF_TAGS
- MP4TagTrack track = *filetags->track;
- track.index = t1;
- MP4TagsSetTrack(filetags, &track);
-#else
- MP4GetMetadataTrack(handle, &t1, &t2);
- MP4SetMetadataTrack(handle, mp4tag->track(), t2);
-#endif
- if(mp4tag->bpm() != 0) {
-#ifdef USE_ITMF_TAGS
- u_int16_t tempo = mp4tag->bpm();
- MP4TagsSetTempo(filetags, &tempo);
-#else
- MP4SetMetadataTempo(handle, mp4tag->bpm());
-#endif
- }
- if(mp4tag->compilation() != MP4::Tag::Undefined) {
-#ifdef USE_ITMF_TAGS
- u_int8_t compilation = mp4tag->compilation();
- MP4TagsSetCompilation(filetags, &compilation);
-#else
- MP4SetMetadataCompilation(handle, mp4tag->compilation());
-#endif
- }
-
-#ifdef USE_ITMF_TAGS
- if(mp4tag->cover().size()) {
- MP4TagArtwork art;
- art.size = mp4tag->cover().size();
- art.data = mp4tag->cover().size() ? const_cast<u_int8_t *>( reinterpret_cast<const u_int8_t *>( mp4tag->cover().data() ) ) : 0;
- art.type = MP4_ART_UNDEFINED; // delegate typing to libmp4v2
- if(filetags->artworkCount > 0) {
- MP4TagsSetArtwork(filetags, 0, &art);
- }
- else {
- MP4TagsAddArtwork(filetags, &art);
- }
- }
-#else
- MP4SetMetadataCoverArt(handle, mp4tag->cover().size() ? const_cast<u_int8_t *>( reinterpret_cast<const u_int8_t *>( mp4tag->cover().data() ) ) : 0, mp4tag->cover().size());
-#endif
-
-#ifdef MP4V2_HAS_WRITE_BUG
- // set the saved data again
-
- if(has_compilation)
- MP4SetMetadataCompilation(handle, compilation);
- if(tool)
- {
- MP4SetMetadataTool(handle, tool);
- free(tool);
- }
-#endif
-
-#ifdef USE_ITMF_TAGS
- MP4TagsStore(filetags, handle);
- MP4TagsFree(filetags);
-#endif
- MP4Close(handle);
-
- mp4file = MP4Read(name());
- if(mp4file == MP4_INVALID_FILE_HANDLE)
- {
- fprintf(stderr, "reopen failed\n");
- return false;
- }
-
- return true;
-}
-
-bool MP4::File::isOpen()
-{
- return mp4file != MP4_INVALID_FILE_HANDLE;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// private members
-////////////////////////////////////////////////////////////////////////////////
-
-void MP4::File::read(bool readProperties, Properties::ReadStyle propertiesStyle)
-{
- properties = new MP4::Properties(propertiesStyle);
- mp4tag = new MP4::Tag();
-
- if (mp4file != MP4_INVALID_FILE_HANDLE) {
-
- if(readProperties)
- {
- // Parse bitrate etc.
- properties->readMP4Properties( mp4file );
- }
-
- mp4tag->readTags( mp4file );
- }
-}
-
-}
diff --git a/amarok/src/metadata/mp4/mp4file.h b/amarok/src/metadata/mp4/mp4file.h
deleted file mode 100644
index 6eb0c1a0..00000000
--- a/amarok/src/metadata/mp4/mp4file.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/***************************************************************************
-copyright : (C) 2005 by Andy Leadbetter
-email : andrew.leadbetter@gmail.com
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef TAGLIB_MP4FILE_H
-#define TAGLIB_MP4FILE_H
-
-#include <tfile.h>
-#include "mp4properties.h"
-
-namespace TagLib {
-
- namespace MP4 {
-
- class Tag;
-
- class File : public TagLib::File
- {
- public:
- /*!
- * Contructs a MP4 file from \a file. If \a readProperties is true the
- * file's audio properties will also be read using \a propertiesStyle. If
- * false, \a propertiesStyle is ignored.
- */
- File(const char *file, bool readProperties = true,
- Properties::ReadStyle propertiesStyle = Properties::Average,
- MP4FileHandle handle=MP4_INVALID_FILE_HANDLE);
-
- /*!
- * Destroys this instance of the File.
- */
- virtual ~File();
-
-
- virtual TagLib::Tag *tag() const;
-
- /*!
- * Returns the MP4::Properties for this file. If no audio properties
- * were read then this will return a null pointer.
- */
- virtual MP4::Properties *audioProperties() const;
-
- /*!
- * Save the file.
- * This is the same as calling save(AllTags);
- *
- * \note As of now, saving MP4 tags is not supported.
- */
- virtual bool save();
-
- void read(bool readProperties, Properties::ReadStyle propertiesStyle);
-
- MP4::Tag *getMP4Tag() const;
-
- protected:
- File(const File &);
- File &operator=(const File &);
- bool isOpen();
-
-
- MP4::Tag *mp4tag;
- MP4::Properties *properties;
- MP4FileHandle mp4file;
-
- };
- }
-}
-
-#endif
diff --git a/amarok/src/metadata/mp4/mp4properties.cpp b/amarok/src/metadata/mp4/mp4properties.cpp
deleted file mode 100644
index fa93d94a..00000000
--- a/amarok/src/metadata/mp4/mp4properties.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-/***************************************************************************
-copyright : (C) 2005 by Andy Leadbetter
-email : andrew.leadbetter@gmail.com
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "mp4properties.h"
-
-
-#include <tstring.h>
-
-#include <config.h>
-#ifdef HAVE_SYSTEMS_H
-#include <systems.h>
-#endif
-
-#include <stdint.h>
-#include <cstring>
-#include <sys/types.h>
-
-#ifndef UINT64_TO_DOUBLE
-#define UINT64_TO_DOUBLE(a) ((double)((int64_t)(a)))
-#endif
-
-using namespace TagLib;
-
-
-////////////////////////////////////////////////////////////////////////////////
-// public members
-////////////////////////////////////////////////////////////////////////////////
-
-MP4::Properties::Properties(Properties::ReadStyle style) : AudioProperties(style)
-{
- m_length = 0;
- m_bitrate = 0;
- m_sampleRate = 0;
- m_channels = 0;
-}
-
-MP4::Properties::~Properties()
-{
-}
-
-int MP4::Properties::length() const
-{
- return m_length;
-}
-
-int MP4::Properties::bitrate() const
-{
- return m_bitrate;
-}
-
-int MP4::Properties::sampleRate() const
-{
- return m_sampleRate;
-}
-
-int MP4::Properties::channels() const
-{
- return m_channels;
-}
-
-void MP4::Properties::readMP4Properties( MP4FileHandle mp4File )
-{
- u_int32_t numTracks = MP4GetNumberOfTracks(mp4File);
-
- for (u_int32_t i = 0; i < numTracks; i++)
- {
- MP4TrackId trackId = MP4FindTrackId(mp4File, i);
-
- const char* trackType =
- MP4GetTrackType(mp4File, trackId);
-
- if (!strcmp(trackType, MP4_AUDIO_TRACK_TYPE))
- {
- // OK we found an audio track so
- // decode it.
- readAudioTrackProperties(mp4File, trackId );
- }
- }
-}
-
-void MP4::Properties::readAudioTrackProperties(MP4FileHandle mp4File, MP4TrackId trackId )
-{
-
- u_int32_t timeScale =
- MP4GetTrackTimeScale(mp4File, trackId);
-
- MP4Duration trackDuration =
- MP4GetTrackDuration(mp4File, trackId);
-
- double msDuration =
- UINT64_TO_DOUBLE(MP4ConvertFromTrackDuration(mp4File, trackId,
- trackDuration, MP4_MSECS_TIME_SCALE));
-
- u_int32_t avgBitRate =
- MP4GetTrackBitRate(mp4File, trackId);
-
- m_bitrate = (avgBitRate + 500) / 1000;
- m_sampleRate = timeScale;
- m_length = (int)(msDuration / 1000.0);
- m_channels = 2;
-
-
-
-}
diff --git a/amarok/src/metadata/mp4/mp4properties.h b/amarok/src/metadata/mp4/mp4properties.h
deleted file mode 100644
index bbe3fa48..00000000
--- a/amarok/src/metadata/mp4/mp4properties.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/***************************************************************************
-copyright : (C) 2005 by Andy Leadbetter
-email : andrew.leadbetter@gmail.com
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef TAGLIB_MP4PROPERTIES_H
-#define TAGLIB_MP4PROPERTIES_H
-
-#include <config.h>
-
-#include <audioproperties.h>
-#include <tstring.h>
-#ifdef HAVE_MP4V2_H
-#include <mp4v2/mp4v2.h>
-#endif
-#ifdef HAVE_MP4_H
-#include <mp4.h>
-// mp4.h drags in mp4_config.h that defines these
-// get rid of them so they don't conflict with our config.h
-#undef VERSION
-#undef PACKAGE
-#endif
-
-namespace TagLib {
-
- namespace MP4 {
-
- class File;
-
- /*!
- * This reads the data from a MP4 stream to support the
- * AudioProperties API.
- */
-
- class Properties : public AudioProperties
- {
- public:
- /*!
- * Initialize this structure
- */
- Properties(Properties::ReadStyle style);
-
- /*!
- * Destroys this MP4 Properties instance.
- */
- virtual ~Properties();
-
- // Reimplementations.
-
- virtual int length() const;
- virtual int bitrate() const;
- virtual int sampleRate() const;
- virtual int channels() const;
-
- void readMP4Properties(MP4FileHandle mp4File);
-
-
- private:
- void readAudioTrackProperties(MP4FileHandle mp4File, MP4TrackId trackId );
- friend class MP4::File;
-
- int m_length;
- int m_bitrate;
- int m_sampleRate;
- int m_channels;
-
- Properties(const Properties &);
- Properties &operator=(const Properties &);
-
- void read();
- };
-
- }
-
-}
-
-#endif
diff --git a/amarok/src/metadata/mp4/mp4tag.cpp b/amarok/src/metadata/mp4/mp4tag.cpp
deleted file mode 100644
index 24537ae5..00000000
--- a/amarok/src/metadata/mp4/mp4tag.cpp
+++ /dev/null
@@ -1,183 +0,0 @@
-
-/***************************************************************************
-copyright : (C) 2005 by Andy Leadbetter
-email : andrew.leadbetter@gmail.com
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-#include <config.h>
-
-#include "mp4tag.h"
-
-#include <tag.h>
-#include <stdint.h>
-#include <cstdlib>
-#include <cstring>
-#include <stdlib.h>
-#include <sys/types.h>
-
-#ifdef HAVE_MP4V2_H
-#define USE_ITMF_TAGS
-#endif
-
-using namespace TagLib;
-
-MP4::Tag::Tag() : TagLib::Tag::Tag() {
- m_title = String();
- m_artist = String();
- m_album = String();
- m_comment = String();
- m_genre = String();
- m_composer = String();
- m_year = 0;
- m_track = 0;
- m_disk = 0;
- m_bpm = 0;
- m_compilation = Undefined;
-}
-
-MP4::Tag::~Tag() {
-}
-
-bool MP4::Tag::isEmpty() const {
- return m_title.isEmpty() &&
- m_artist.isEmpty() &&
- m_album.isEmpty() &&
- m_comment.isEmpty() &&
- m_genre.isEmpty() &&
- m_composer.isEmpty() &&
- m_year == 0 &&
- m_track == 0 &&
- m_disk == 0 &&
- m_bpm == 0 &&
- m_compilation == Undefined &&
- m_image.size() == 0;
-}
-
-void MP4::Tag::duplicate(const Tag *source, Tag *target, bool overwrite) {
- // Duplicate standard information
- Tag::duplicate(source, target, overwrite);
-
- if ((overwrite || target->compilation() == Undefined) && (source->compilation() != Undefined)) {
- target->setCompilation(source->compilation());
- }
-
- if (overwrite || target->cover().size() == 0) {
- target->setCover(source->cover());
- }
-}
-
-void MP4::Tag::readTags( MP4FileHandle mp4file )
-{
- // Now parse tag.
-#ifdef USE_ITMF_TAGS
- const MP4Tags* filetags = MP4TagsAlloc();
- MP4TagsFetch(filetags, mp4file);
-
- if(filetags->name != NULL) {
- m_title = String(filetags->name, String::UTF8);
- }
- if(filetags->artist != NULL) {
- m_artist = String(filetags->artist, String::UTF8);
- }
- if(filetags->comments != NULL) {
- m_comment = String(filetags->comments, String::UTF8);
- }
- if(filetags->releaseDate != NULL) {
- m_year = strtol(filetags->releaseDate, NULL, 0);
- }
- if(filetags->album != NULL) {
- m_album = String(filetags->album, String::UTF8);
- }
- if(filetags->track != NULL) {
- m_track = filetags->track->index;
- }
- if(filetags->disk != NULL) {
- m_disk = filetags->disk->index;
- }
- if(filetags->tempo != NULL) {
- m_bpm = *filetags->tempo;
- }
- if(filetags->compilation != NULL) {
- m_compilation = *filetags->compilation;
- }
- if(filetags->genre != NULL) {
- m_genre = String(filetags->genre, String::UTF8);
- }
- if(filetags->composer != NULL) {
- m_composer = String(filetags->composer, String::UTF8);
- }
- if(filetags->artworkCount > 0) {
- m_image.setData(reinterpret_cast<const char *>( filetags->artwork[0].data ), filetags->artwork[0].size);
- }
- MP4TagsFree(filetags);
-#else
- char *value;
- uint8_t boolvalue;
- uint16_t numvalue, numvalue2;
- uint8_t *image;
- uint32_t imageSize;
-
- if (MP4GetMetadataName(mp4file, &value) && value != NULL) {
- m_title = String(value, String::UTF8);
- free(value);
- }
- if (MP4GetMetadataArtist(mp4file, &value) && value != NULL) {
- m_artist = String(value, String::UTF8);
- free(value);
- }
-
- if (MP4GetMetadataComment(mp4file, &value) && value != NULL) {
- m_comment = String(value, String::UTF8);
- free(value);
- }
-
- if (MP4GetMetadataYear(mp4file, &value) && value != NULL) {
- m_year = strtol(value, NULL,0);
- free(value);
- }
- if (MP4GetMetadataAlbum(mp4file, &value) && value != NULL) {
- m_album = String(value, String::UTF8);
- free(value);
- }
- if (MP4GetMetadataTrack(mp4file, &numvalue, &numvalue2)) {
- m_track = numvalue;
- }
- if (MP4GetMetadataDisk(mp4file, &numvalue, &numvalue2)) {
- m_disk = numvalue;
- }
- if (MP4GetMetadataTempo(mp4file, &numvalue)) {
- m_bpm = numvalue;
- }
- if (MP4GetMetadataCompilation(mp4file, &boolvalue)) {
- m_compilation = boolvalue;
- }
- if (MP4GetMetadataGenre(mp4file, &value) && value != NULL) {
- m_genre = String(value, String::UTF8);
- free(value);
- }
- if (MP4GetMetadataWriter(mp4file, &value) && value != NULL) {
- m_composer = String(value, String::UTF8);
- free(value);
- }
- if (MP4GetMetadataCoverArt(mp4file, &image, &imageSize) && image && imageSize) {
- m_image.setData(reinterpret_cast<const char *>( image ), imageSize);
- free(image);
- }
-#endif
-}
diff --git a/amarok/src/metadata/mp4/mp4tag.h b/amarok/src/metadata/mp4/mp4tag.h
deleted file mode 100644
index f791c078..00000000
--- a/amarok/src/metadata/mp4/mp4tag.h
+++ /dev/null
@@ -1,234 +0,0 @@
-/***************************************************************************
-copyright : (C) 2005 by Andy Leadbetter
-email : andrew.leadbetter@gmail.com
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-#ifndef TAGLIB_MP4TAG_H
-#define TAGLIB_MP4TAG_H
-
-#include <config.h>
-
-#include <tag.h>
-#include "mp4file.h"
-#ifdef HAVE_MP4V2_H
-#include <mp4v2/mp4v2.h>
-#endif
-#ifdef HAVE_MP4_H
-#include <mp4.h>
-#endif
-
-namespace TagLib {
-
- namespace MP4 {
- /*!
- * This implements the generic TagLib::Tag API
- */
- class Tag : public TagLib::Tag
- {
- public:
- static const int Undefined = -1;
-
- Tag();
-
- /*!
- * read tags from the mp4 file.
- */
- void readTags( MP4FileHandle mp4file);
-
- /*!
- * Destroys this MP4Tag instance.
- */
- virtual ~Tag();
-
- /*!
- * Returns the track name; if no track name is present in the tag
- * a null String will be returned.
- */
- virtual String title() const { return m_title; }
-
- /*!
- * Returns the artist name; if no artist name is present in the tag
- * a null String will be returned.
- */
- virtual String artist() const { return m_artist; }
-
- /*!
- * Returns the album name; if no album name is present in the tag
- * a null String will be returned.
- */
- virtual String album() const { return m_album; }
-
- /*!
- * Returns the track comment; if no comment is present in the tag
- * a null String will be returned.
- */
- virtual String comment() const { return m_comment; }
-
- /*!
- * Returns the genre name; if no genre is present in the tag a null String
- * will be returned.
- */
- virtual String genre() const { return m_genre; }
-
- /*!
- * Returns the composer name; if no composer is present in the tag a null String
- * will be returned.
- */
- virtual String composer() const { return m_composer; }
-
- /*!
- * Returns the year; if there is no year set, this will return 0.
- */
- virtual uint year() const { return m_year; }
-
- /*!
- * Returns the track number; if there is no track number set, this will
- * return 0.
- */
- virtual uint track() const { return m_track; }
-
- /*!
- * Returns the disc number; if there is no disc number set, this will
- * return 0.
- */
- virtual uint disk() const { return m_disk; }
-
- /*!
- * Returns the BPM (tempo); if there is no BPM, this will return 0.
- */
- virtual uint bpm() const { return m_bpm; }
-
- /*!
- * Returns the embedded cover image; if there is no cover set, this will
- * return an empty ByteVector.
- */
- virtual const ByteVector &cover() const { return m_image; }
-
- /*!
- * Returns whether this is part of a compilation; if this flag is not set,
- * this will return the Undefined constant.
- */
- virtual int compilation() const { return m_compilation; }
-
- /*!
- * Sets the title to \a s. If \a s is a null String then this value will be
- * cleared.
- */
- virtual void setTitle(const String &s) { m_title = s; }
-
- /*!
- * Sets the artist to \a s. If \a s is a null String then this value will be
- * cleared.
- */
- virtual void setArtist(const String &s) { m_artist = s; }
-
- /*!
- * Sets the album to \a s. If \a s is a null String then this value will be
- * cleared.
- */
- virtual void setAlbum(const String &s) { m_album = s; }
-
- /*!
- * Sets the album to \a s. If \a s is a null String then this value will be
- * cleared.
- */
- virtual void setComment(const String &s) { m_comment = s; }
-
- /*!
- * Sets the genre to \a s. If \a s is a null String then this value will be
- * cleared. For tag formats that use a fixed set of genres, the appropriate
- * value will be selected based on a string comparison. A list of available
- * genres for those formats should be available in that type's
- * implementation.
- */
- virtual void setGenre(const String &s) { m_genre = s; }
-
- /*!
- * Sets the year to \a i. If \a s is 0 then this value will be cleared.
- */
- virtual void setYear(uint i) { m_year = i; }
-
- /*!
- * Sets the track to \a i. If \a i is 0 then this value will be cleared.
- */
- virtual void setTrack(uint i) { m_track = i; }
-
- /*!
- * Sets the disc to \a i. If \a i is 0 then this value will be cleared.
- */
- virtual void setDisk(uint i) { m_disk = i; }
-
- /*!
- * Sets the BPM (tempo) to \a i. It \a i is 0 then this value will be cleared.
- */
- virtual void setBpm(uint i) { m_bpm = i; }
-
- /*!
- * Sets whether this is part of a compilation.
- */
- virtual void setCompilation(bool compilation) { m_compilation = compilation ? 1 : 0; }
-
- /*!
- * Sets the composer to \a s. If \a s is a null String then this value will
- * be cleared.
- */
- virtual void setComposer(const String &s) { m_composer = s; }
-
- /*!
- * Sets the embedded cover image to \a i. If \a i is empty then this value
- * will be cleared.
- */
- virtual void setCover(const ByteVector &i) { m_image = i; }
-
- /*!
- * Returns true if the tag does not contain any data. This should be
- * reimplemented in subclasses that provide more than the basic tagging
- * abilities in this class.
- */
- virtual bool isEmpty() const;
-
- /*!
- * Copies the generic data from one tag to another.
- *
- * \note This will not affect any of the lower level details of the tag. For
- * instance if any of the tag type specific data (maybe a URL for a band) is
- * set, this will not modify or copy that. This just copies using the API
- * in this class.
- *
- * If \a overwrite is true then the values will be unconditionally copied.
- * If false only empty values will be overwritten.
- */
- static void duplicate(const Tag *source, Tag *target, bool overwrite = true);
-
- protected:
- String m_title;
- String m_artist;
- String m_album;
- String m_comment;
- String m_genre;
- String m_composer;
- uint m_year;
- uint m_track;
- uint m_disk;
- uint m_bpm;
- int m_compilation;
- ByteVector m_image;
- };
- }
-}
-#endif
diff --git a/amarok/src/metadata/mp4/taglib_mp4filetyperesolver.cpp b/amarok/src/metadata/mp4/taglib_mp4filetyperesolver.cpp
deleted file mode 100644
index e179da5d..00000000
--- a/amarok/src/metadata/mp4/taglib_mp4filetyperesolver.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/***************************************************************************
- copyright : (C) 2005 by Martin Aumueller
- email : aumuell@reserv.at
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-// (c) 2005 Martin Aumueller <aumuell@reserv.at>
-// See COPYING file for licensing information
-
-#include "taglib_mp4filetyperesolver.h"
-#include "mp4file.h"
-#include <cstring>
-
-TagLib::File *MP4FileTypeResolver::createFile(const char *fileName,
- bool readProperties,
- TagLib::AudioProperties::ReadStyle propertiesStyle) const
-{
- const char *ext = strrchr(fileName, '.');
- if(ext && (!strcasecmp(ext, ".m4a")
- || !strcasecmp(ext, ".m4b") || !strcasecmp(ext, ".m4p")
- || !strcasecmp(ext, ".mp4")
- || !strcasecmp(ext, ".m4v") || !strcasecmp(ext, ".mp4v")))
- {
-#if defined(MP4V2_PROJECT_version_hex) && MP4V2_PROJECT_version_hex >= 0x00020000
- MP4FileHandle h = MP4Read(fileName);
-#else
- MP4FileHandle h = MP4Read(fileName, 0);
-#endif
- if(MP4_INVALID_FILE_HANDLE == h)
- {
- return 0;
- }
-
- return new TagLib::MP4::File(fileName, readProperties, propertiesStyle, h);
- }
-
- return 0;
-}
diff --git a/amarok/src/metadata/mp4/taglib_mp4filetyperesolver.h b/amarok/src/metadata/mp4/taglib_mp4filetyperesolver.h
deleted file mode 100644
index 4b6a54e8..00000000
--- a/amarok/src/metadata/mp4/taglib_mp4filetyperesolver.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/***************************************************************************
- copyright : (C) 2005 by Martin Aumueller
- email : aumuell@reserv.at
- ***************************************************************************/
-
-/***************************************************************************
- * 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., 51 Franklin Street, Fifth Floor, Boston, *
- * MA 02110-1301 USA *
- ***************************************************************************/
-
-// (c) 2005 Martin Aumueller <aumuell@reserv.at>
-// See COPYING file for licensing information
-
-#ifndef TAGLIB_MP4FILETYPERESOLVER_H
-#define TAGLIB_MP4FILETYPERESOLVER_H
-
-#include <taglib/tfile.h>
-#include <taglib/fileref.h>
-
-
-class MP4FileTypeResolver : public TagLib::FileRef::FileTypeResolver
-{
- TagLib::File *createFile(const char *fileName,
- bool readAudioProperties,
- TagLib::AudioProperties::ReadStyle audioPropertiesStyle) const;
-
-public:
- virtual ~MP4FileTypeResolver() {}
-};
-
-#endif
diff --git a/amarok/src/metadata/tplugins.cpp b/amarok/src/metadata/tplugins.cpp
index 0af1eaf9..eb96243e 100644
--- a/amarok/src/metadata/tplugins.cpp
+++ b/amarok/src/metadata/tplugins.cpp
@@ -28,14 +28,6 @@
#include <taglib/fileref.h>
#include <taglib/tfile.h>
-#ifdef HAVE_MP4V2
-#include "mp4/taglib_mp4filetyperesolver.h"
-#include "mp4/mp4file.h"
-#else
-#include "m4a/taglib_mp4filetyperesolver.h"
-#include "m4a/mp4file.h"
-#endif
-
#ifndef TAGLIB_15
#include "trueaudio/taglib_trueaudiofiletyperesolver.h"
#include "trueaudio/ttafile.h"
@@ -62,6 +54,7 @@
#include <taglib/vorbisfile.h>
#include <taglib/flacfile.h>
#include <taglib/mpcfile.h>
+#include <taglib/mp4file.h>
class MimeTypeFileTypeResolver : public TagLib::FileRef::FileTypeResolver
@@ -133,7 +126,6 @@ TagLib::File *MimeTypeFileTypeResolver::createFile(const char *fileName,
void registerTaglibPlugins()
{
//TagLib::FileRef::addFileTypeResolver(new MimeTypeFileTypeResolver);
- TagLib::FileRef::addFileTypeResolver(new MP4FileTypeResolver);
TagLib::FileRef::addFileTypeResolver(new ASFFileTypeResolver);
TagLib::FileRef::addFileTypeResolver(new RealMediaFileTypeResolver);
TagLib::FileRef::addFileTypeResolver(new AudibleFileTypeResolver);