Add Zend_Media_Id3v2 class proposal

git-svn-id: http://php-reader.googlecode.com/svn/branches/zend@153 51a70ab9-7547-0410-9469-37e369ee0574
This commit is contained in:
svollbehr
2009-05-30 11:58:10 +00:00
parent fa507390a3
commit 6a78fc508e
215 changed files with 11203 additions and 11720 deletions

View File

@@ -1,79 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**
* The <var>Encoding</var> interface implies that the ID3v2 frame supports
* content encoding.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
interface ID3_Encoding
{
/** The ISO-8859-1 encoding. */
const ISO88591 = 0;
/** The UTF-16 Unicode encoding with BOM. */
const UTF16 = 1;
/** The UTF-16LE Unicode encoding without BOM. */
const UTF16LE = 4;
/** The UTF-16BE Unicode encoding without BOM. */
const UTF16BE = 2;
/** The UTF-8 Unicode encoding. */
const UTF8 = 3;
/**
* Returns the text encoding.
*
* @return integer
*/
public function getEncoding();
/**
* Sets the text encoding.
*
* @param integer $encoding The text encoding.
*/
public function setEncoding($encoding);
}

View File

@@ -1,51 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**
* The ID3_Exception is thrown whenever an error occurs within the {@link ID3v1}
* or the {@link ID3v2} classes.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
class ID3_Exception extends Exception
{
}

View File

@@ -1,324 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Object.php");
/**#@-*/
/**
* The extended header contains information that can provide further insight in
* the structure of the tag, but is not vital to the correct parsing of the tag
* information; hence the extended header is optional.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_ExtendedHeader extends ID3_Object
{
/**
* A flag to denote that the present tag is an update of a tag found earlier
* in the present file or stream. If frames defined as unique are found in
* the present tag, they are to override any corresponding ones found in the
* earlier tag. This flag has no corresponding data.
*
* @since ID3v2.4.0
*/
const UPDATE = 64;
/**
* @since ID3v2.4.0 A flag to denote that a CRC-32 data is included in the
* extended header. The CRC is calculated on all the data between the header
* and footer as indicated by the header's tag length field, minus the
* extended header. Note that this includes the padding (if there is any), but
* excludes the footer. The CRC-32 is stored as an 35 bit synchsafe integer,
* leaving the upper four bits always zeroed.
*
* @since ID3v2.3.0 The CRC is calculated before unsynchronisation on the data
* between the extended header and the padding, i.e. the frames and only the
* frames.
*/
const CRC32 = 32;
/**
* A flag to denote whether or not the tag has restrictions applied on it.
*
* @since ID3v2.4.0
*/
const RESTRICTED = 16;
/** @var integer */
private $_size;
/** @var integer */
private $_flags = 0;
/** @var integer */
private $_padding;
/** @var integer */
private $_crc;
/** @var integer */
private $_restrictions = 0;
/**
* Constructs the class with given parameters and reads object related data
* from the ID3v2 tag.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
$offset = $this->_reader->getOffset();
$this->_size = $this->_reader->readUInt32BE();
/* ID3v2.3.0 ExtendedHeader */
if ($this->getOption("version", 4) < 4) {
if ($this->_reader->readUInt16BE() == 0x8000)
$this->_flags = self::CRC32;
$this->_padding = $this->_reader->readUInt32BE();
if ($this->hasFlag(self::CRC32))
$this->_crc = Transform::readUInt32BE();
}
/* ID3v2.4.0 ExtendedHeader */
else {
$this->_size = $this->_decodeSynchsafe32($this->_size);
$this->_reader->skip(1);
$this->_flags = $this->_reader->readInt8();
if ($this->hasFlag(self::UPDATE))
$this->_reader->skip(1);
if ($this->hasFlag(self::CRC32)) {
$this->_reader->skip(1);
$this->_crc =
Transform::fromInt8($this->_reader->read(1)) * (0xfffffff + 1) +
_decodeSynchsafe32(Transform::fromUInt32BE($this->_reader->read(4)));
}
if ($this->hasFlag(self::RESTRICTED)) {
$this->_reader->skip(1);
$this->_restrictions = $this->_reader->readInt8(1);
}
}
}
/**
* Returns the extended header size in bytes.
*
* @return integer
*/
public function getSize() { return $this->_size; }
/**
* Checks whether or not the flag is set. Returns <var>true</var> if the flag
* is set, <var>false</var> otherwise.
*
* @param integer $flag The flag to query.
* @return boolean
*/
public function hasFlag($flag) { return ($this->_flags & $flag) == $flag; }
/**
* Returns the flags byte.
*
* @return integer
*/
public function getFlags($flags) { return $this->_flags; }
/**
* Sets the flags byte.
*
* @param integer $flags The flags byte.
*/
public function setFlags($flags) { $this->_flags = $flags; }
/**
* Returns the CRC-32 data.
*
* @return integer
*/
public function getCrc()
{
if ($this->hasFlag(self::CRC32))
return $this->_crc;
return false;
}
/**
* Sets whether the CRC-32 should be generated upon tag write.
*
* @param boolean $useCrc Whether CRC-32 should be generated.
*/
public function useCrc($useCrc)
{
if ($useCrc)
$this->setFlags($this->getFlags() | self::CRC32);
else
$this->setFlags($this->getFlags() & ~self::CRC32);
}
/**
* Sets the CRC-32. The CRC-32 value is calculated of all the frames in the
* tag and includes padding.
*
* @param integer $crc The 32-bit CRC value.
*/
public function setCrc($crc)
{
if (is_bool($crc))
$this->useCrc($crc);
else
$this->_crc = $crc;
}
/**
* Returns the restrictions. For some applications it might be desired to
* restrict a tag in more ways than imposed by the ID3v2 specification. Note
* that the presence of these restrictions does not affect how the tag is
* decoded, merely how it was restricted before encoding. If this flag is set
* the tag is restricted as follows:
*
* <pre>
* Restrictions %ppqrrstt
*
* p - Tag size restrictions
*
* 00 No more than 128 frames and 1 MB total tag size.
* 01 No more than 64 frames and 128 KB total tag size.
* 10 No more than 32 frames and 40 KB total tag size.
* 11 No more than 32 frames and 4 KB total tag size.
*
* q - Text encoding restrictions
*
* 0 No restrictions
* 1 Strings are only encoded with ISO-8859-1 or UTF-8.
*
* r - Text fields size restrictions
*
* 00 No restrictions
* 01 No string is longer than 1024 characters.
* 10 No string is longer than 128 characters.
* 11 No string is longer than 30 characters.
*
* Note that nothing is said about how many bytes is used to represent those
* characters, since it is encoding dependent. If a text frame consists of
* more than one string, the sum of the strungs is restricted as stated.
*
* s - Image encoding restrictions
*
* 0 No restrictions
* 1 Images are encoded only with PNG [PNG] or JPEG [JFIF].
*
* t - Image size restrictions
*
* 00 No restrictions
* 01 All images are 256x256 pixels or smaller.
* 10 All images are 64x64 pixels or smaller.
* 11 All images are exactly 64x64 pixels, unless required otherwise.
* </pre>
*
* @return integer
*/
public function getRestrictions() { return $this->_restrictions; }
/**
* Sets the restrictions byte. See {@link #getRestrictions} for more.
*
* @param integer $restrictions The restrictions byte.
*/
public function setRestrictions($restrictions)
{
$this->_restrictions = $restrictions;
}
/**
* Returns the total padding size, or simply the total tag size excluding the
* frames and the headers.
*
* @return integer
* @deprecated ID3v2.3.0
*/
public function getPadding() { return $this->_padding; }
/**
* Sets the total padding size, or simply the total tag size excluding the
* frames and the headers.
*
* @param integer $padding The padding size.
* @deprecated ID3v2.3.0
*/
public function setPadding($padding) { return $this->_padding = $padding; }
/**
* Returns the header data.
*
* @return string
*/
public function __toString()
{
/* ID3v2.3.0 ExtendedHeader */
if ($this->getOption("version", 4) < 4) {
return Transform::toUInt32BE($this->_size) .
Transform::toUInt16BE($this->hasFlag(self::CRC32) ? 0x8000 : 0) .
Transform::toUInt32BE($this->_padding) .
($this->hasFlag(self::CRC32) ? Transform::toUInt32BE($this->_crc) : "");
}
/* ID3v2.4.0 ExtendedHeader */
else {
return Transform::toUInt32BE($this->_encodeSynchsafe32($this->_size)) .
Transform::toInt8(1) . Transform::toInt8($this->_flags) .
($this->hasFlag(self::UPDATE) ? "\0" : "") .
($this->hasFlag(self::CRC32) ? Transform::toInt8(5) .
Transform::toInt8($this->_crc & 0xf0000000 >> 28 & 0xf /*eq >>> 28*/) .
Transform::toUInt32BE($this->_encodeSynchsafe32($this->_crc)) : "") .
($this->hasFlag(self::RESTRICTED) ?
Transform::toInt8(1) . Transform::toInt8($this->_restrictions) : "");
}
}
}

View File

@@ -1,299 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Object.php");
/**#@-*/
/**
* A base class for all ID3v2 frames as described in the
* {@link http://www.id3.org/id3v2.4.0-frames ID3v2 frames document}.
*
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
abstract class ID3_Frame extends ID3_Object
{
/**
* This flag tells the tag parser what to do with this frame if it is unknown
* and the tag is altered in any way. This applies to all kinds of
* alterations, including adding more padding and reordering the frames.
*/
const DISCARD_ON_TAGCHANGE = 16384;
/**
* This flag tells the tag parser what to do with this frame if it is unknown
* and the file, excluding the tag, is altered. This does not apply when the
* audio is completely replaced with other audio data.
*/
const DISCARD_ON_FILECHANGE = 8192;
/**
* This flag, if set, tells the software that the contents of this frame are
* intended to be read only. Changing the contents might break something,
* e.g. a signature.
*/
const READ_ONLY = 4096;
/**
* This flag indicates whether or not this frame belongs in a group with
* other frames. If set, a group identifier byte is added to the frame. Every
* frame with the same group identifier belongs to the same group.
*/
const GROUPING_IDENTITY = 32;
/**
* This flag indicates whether or not the frame is compressed. A <i>Data
* Length Indicator</i> byte is included in the frame.
*
* @see DATA_LENGTH_INDICATOR
*/
const COMPRESSION = 8;
/**
* This flag indicates whether or not the frame is encrypted. If set, one byte
* indicating with which method it was encrypted will be added to the frame.
* See description of the {@link ID3_Frame_ENCR} frame for more information
* about encryption method registration. Encryption should be done after
* compression. Whether or not setting this flag requires the presence of a
* <i>Data Length Indicator</i> depends on the specific algorithm used.
*
* @see DATA_LENGTH_INDICATOR
*/
const ENCRYPTION = 4;
/**
* This flag indicates whether or not unsynchronisation was applied to this
* frame.
*
* @since ID3v2.4.0
*/
const UNSYNCHRONISATION = 2;
/**
* This flag indicates that a data length indicator has been added to the
* frame.
*
* @since ID3v2.4.0
*/
const DATA_LENGTH_INDICATOR = 1;
/** @var integer */
private $_identifier;
/** @var integer */
private $_size = 0;
/** @var integer */
private $_flags = 0;
/**
* Raw content of the frame.
*
* @var string
*/
protected $_data = "";
/**
* Constructs the class with given parameters and reads object related data
* from the ID3v2 tag.
*
* @todo Only limited subset of flags are processed.
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null) {
$this->_identifier = substr(get_class($this), -4);
} else {
$this->_identifier = $this->_reader->readString8(4);
/* ID3v2.3.0 size and flags; convert flags to 2.4.0 format */
if ($this->getOption("version", 4) < 4) {
$this->_size = $this->_reader->readUInt32BE();
$flags = $this->_reader->readUInt16BE();
if (($flags & 0x8000) == 0x8000)
$this->_flags |= self::DISCARD_ON_TAGCHANGE;
if (($flags & 0x4000) == 0x4000)
$this->_flags |= self::DISCARD_ON_FILECHANGE;
if (($flags & 0x2000) == 0x2000)
$this->_flags |= self::READ_ONLY;
if (($flags & 0x80) == 0x80)
$this->_flags |= self::COMPRESSION;
if (($flags & 0x40) == 0x40)
$this->_flags |= self::ENCRYPTION;
if (($flags & 0x20) == 0x20)
$this->_flags |= self::GROUPING_IDENTITY;
}
/* ID3v2.4.0 size and flags */
else {
$this->_size =
$this->_decodeSynchsafe32($this->_reader->readUInt32BE());
$this->_flags = $this->_reader->readUInt16BE();
}
$dataLength = $this->_size;
if ($this->hasFlag(self::DATA_LENGTH_INDICATOR)) {
$dataLength = $this->_decodeSynchsafe32($this->_reader->readUInt32BE());
$this->_size -= 4;
}
$this->_data = $this->_reader->read($this->_size);
$this->_size = $dataLength;
if ($this->hasFlag(self::UNSYNCHRONISATION) ||
$this->getOption("unsynchronisation", false) === true)
$this->_data = $this->_decodeUnsynchronisation($this->_data);
}
}
/**
* Returns the frame identifier string.
*
* @return string
*/
public final function getIdentifier() { return $this->_identifier; }
/**
* Sets the frame identifier.
*
* @param string $identifier The identifier.
*/
public final function setIdentifier($identifier)
{
$this->_identifier = $identifier;
}
/**
* Returns the size of the data in the final frame, after encryption,
* compression and unsynchronisation. The size is excluding the frame header.
*
* @return integer
*/
public final function getSize() { return $this->_size; }
/**
* Checks whether or not the flag is set. Returns <var>true</var> if the flag
* is set, <var>false</var> otherwise.
*
* @param integer $flag The flag to query.
* @return boolean
*/
public final function hasFlag($flag)
{
return ($this->_flags & $flag) == $flag;
}
/**
* Returns the frame flags byte.
*
* @return integer
*/
public final function getFlags($flags) { return $this->_flags; }
/**
* Sets the frame flags byte.
*
* @param string $flags The flags byte.
*/
public final function setFlags($flags) { $this->_flags = $flags; }
/**
* Returns the frame raw data without the header.
*
* @return string
*/
abstract protected function _getData();
/**
* Returns the frame data with the header.
*
* @return string
*/
public function __toString()
{
/* ID3v2.3.0 Flags; convert from 2.4.0 format */
if ($this->getOption("version", 4) < 4) {
$flags = 0;
if ($this->hasFlag(self::DISCARD_ON_TAGCHANGE))
$flags = $flags | 0x8000;
if ($this->hasFlag(self::DISCARD_ON_FILECHANGE))
$flags = $flags | 0x4000;
if ($this->hasFlag(self::READ_ONLY))
$flags = $flags | 0x2000;
if ($this->hasFlag(self::COMPRESSION))
$flags = $flags | 0x80;
if ($this->hasFlag(self::ENCRYPTION))
$flags = $flags | 0x40;
if ($this->hasFlag(self::GROUPING_IDENTITY))
$flags = $flags | 0x20;
}
/* ID3v2.4.0 Flags */
else
$flags = $this->_flags;
if ($this->getOption("version", 4) < 4) {
$data = $this->_data = $this->_getData();
$size = $this->_size = strlen($data);
} else {
$data = $this->_data = $this->_getData();
$size = $this->_size = strlen($data);
$data = $this->_encodeUnsynchronisation($data);
if (($dataLength = strlen($data)) != $size) {
$size = 4 + $dataLength;
$data = Transform::toUInt32BE($this->_encodeSynchsafe32($this->_size)) .
$data;
$flags |= self::DATA_LENGTH_INDICATOR | self::UNSYNCHRONISATION;
$this->setOption("unsynchronisation", true);
} else
$flags &= ~(self::DATA_LENGTH_INDICATOR | self::UNSYNCHRONISATION);
}
return Transform::toString8(substr($this->_identifier, 0, 4), 4) .
Transform::toUInt32BE($this->_encodeSynchsafe32($size)) .
Transform::toUInt16BE($flags) . $data;
}
}

View File

@@ -1,171 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* The <i>Audio encryption</i> indicates if the actual audio stream is
* encrypted, and by whom.
*
* The identifier is a URL containing an email address, or a link to a location
* where an email address can be found, that belongs to the organisation
* responsible for this specific encrypted audio file. Questions regarding the
* encrypted audio should be sent to the email address specified. There may be
* more than one AENC frame in a tag, but only one with the same owner
* identifier.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_AENC extends ID3_Frame
{
/** @var string */
private $_owner;
/** @var integer */
private $_previewStart;
/** @var integer */
private $_previewLength;
/** @var string */
private $_encryptionInfo;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
list($this->_owner, $this->_data) = $this->_explodeString8($this->_data, 2);
$this->_previewStart = Transform::fromUInt16BE(substr($this->_data, 0, 2));
$this->_previewLength = Transform::fromUInt16BE(substr($this->_data, 2, 2));
$this->_encryptionInfo = substr($this->_data, 4);
}
/**
* Returns the owner identifier string.
*
* @return string
*/
public function getOwner() { return $this->_owner; }
/**
* Sets the owner identifier string.
*
* @param string $owner The owner identifier string.
*/
public function setOwner($owner) { $this->_owner = $owner; }
/**
* Returns the pointer to an unencrypted part of the audio in frames.
*
* @return integer
*/
public function getPreviewStart() { return $this->_previewStart; }
/**
* Sets the pointer to an unencrypted part of the audio in frames.
*
* @param integer $previewStart The pointer to an unencrypted part.
*/
public function setPreviewStart($previewStart)
{
$this->_previewStart = $previewStart;
}
/**
* Returns the length of the preview in frames.
*
* @return integer
*/
public function getPreviewLength() { return $this->_previewLength; }
/**
* Sets the length of the preview in frames.
*
* @param integer $previewLength The length of the preview.
*/
public function setPreviewLength($previewLength)
{
$this->_previewLength = $previewLength;
}
/**
* Returns the encryption info.
*
* @return string
*/
public function getEncryptionInfo() { return $this->_encryptionInfo; }
/**
* Sets the encryption info binary string.
*
* @param string $encryptionInfo The data string.
*/
public function setEncryptionInfo($encryptionInfo)
{
$this->_encryptionInfo = $encryptionInfo;
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
return
$this->_owner . "\0" . Transform::toUInt16BE($this->_previewStart) .
Transform::toUInt16BE($this->_previewLength) . $this->_encryptionInfo;
}
}

View File

@@ -1,274 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
require_once("ID3/Encoding.php");
/**#@-*/
/**
* The <i>Attached picture</i> frame contains a picture directly related to the
* audio file. Image format is the MIME type and subtype for the image.
*
* There may be several pictures attached to one file, each in their individual
* APIC frame, but only one with the same content descriptor. There may only
* be one picture with the same picture type. There is the possibility to put
* only a link to the image file by using the MIME type "-->" and having a
* complete URL instead of picture data.
*
* The use of linked files should however be used sparingly since there is the
* risk of separation of files.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_APIC extends ID3_Frame
implements ID3_Encoding
{
/**
* The list of image types.
*
* @var Array
*/
public static $types = array
("Other", "32x32 pixels file icon (PNG only)", "Other file icon",
"Cover (front)", "Cover (back)", "Leaflet page",
"Media (e.g. label side of CD)", "Lead artist/lead performer/soloist",
"Artist/performer", "Conductor", "Band/Orchestra", "Composer",
"Lyricist/text writer", "Recording Location", "During recording",
"During performance", "Movie/video screen capture",
"A bright coloured fish", "Illustration", "Band/artist logotype",
"Publisher/Studio logotype");
/** @var integer */
private $_encoding;
/** @var string */
private $_mimeType = "image/unknown";
/** @var integer */
private $_imageType = 0;
/** @var string */
private $_description;
/** @var string */
private $_imageData;
/** @var integer */
private $_imageSize = 0;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
$this->_encoding = $this->getOption("encoding", ID3_Encoding::UTF8);
if ($reader === null)
return;
$encoding = Transform::fromUInt8($this->_data[0]);
$this->_mimeType = substr
($this->_data, 1, ($pos = strpos($this->_data, "\0", 1)) - 1);
$this->_imageType = Transform::fromUInt8($this->_data[++$pos]);
$this->_data = substr($this->_data, $pos + 1);
switch ($encoding) {
case self::UTF16:
list ($this->_description, $this->_imageData) =
$this->_explodeString16($this->_data, 2);
$this->_description = $this->_convertString
(Transform::fromString16($this->_description), "utf-16");
break;
case self::UTF16BE:
list ($this->_description, $this->_imageData) =
$this->_explodeString16($this->_data, 2);
$this->_description = $this->_convertString
(Transform::fromString16($this->_description), "utf-16be");
break;
case self::UTF8:
list ($this->_description, $this->_imageData) =
$this->_explodeString8($this->_data, 2);
$this->_description = $this->_convertString
($this->_description, "utf-8");
break;
default:
list ($this->_description, $this->_imageData) =
$this->_explodeString8($this->_data, 2);
$this->_description = $this->_convertString
($this->_description, "iso-8859-1");
}
$this->_imageSize = strlen($this->_imageData);
}
/**
* Returns the text encoding.
*
* All the strings read from a file are automatically converted to the
* character encoding specified with the <var>encoding</var> option. See
* {@link ID3v2} for details. This method returns the original text encoding
* used to write the frame.
*
* @return integer
*/
public function getEncoding() { return $this->_encoding; }
/**
* Sets the text encoding.
*
* All the string written to the frame are done so using given character
* encoding. No conversions of existing data take place upon the call to this
* method thus all texts must be given in given character encoding.
*
* The default character encoding used to write the frame is UTF-8.
*
* @see ID3_Encoding
* @param integer $encoding The text encoding.
*/
public function setEncoding($encoding) { $this->_encoding = $encoding; }
/**
* Returns the MIME type. The MIME type is always ISO-8859-1 encoded.
*
* @return string
*/
public function getMimeType() { return $this->_mimeType; }
/**
* Sets the MIME type. The MIME type is always ISO-8859-1 encoded.
*
* @param string $mimeType The MIME type.
*/
public function setMimeType($mimeType) { $this->_mimeType = $mimeType; }
/**
* Returns the image type.
*
* @return integer
*/
public function getImageType() { return $this->_imageType; }
/**
* Sets the image type code.
*
* @param integer $imageType The image type code.
*/
public function setImageType($imageType) { $this->_imageType = $imageType; }
/**
* Returns the file description.
*
* @return string
*/
public function getDescription() { return $this->_description; }
/**
* Sets the content description text using given encoding.
*
* @param string $description The content description text.
* @param integer $encoding The text encoding.
*/
public function setDescription($description, $encoding = false)
{
$this->_description = $description;
if ($encoding !== false)
$this->_encoding = $encoding;
}
/**
* Returns the embedded image data.
*
* @return string
*/
public function getImageData() { return $this->_imageData; }
/**
* Sets the embedded image data. Also updates the image size field to
* correspond the new data.
*
* @param string $imageData The image data.
*/
public function setImageData($imageData)
{
$this->_imageData = $imageData;
$this->_imageSize = strlen($imageData);
}
/**
* Returns the size of the embedded image data.
*
* @return integer
*/
public function getImageSize() { return $this->_imageSize; }
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
$data = Transform::toUInt8($this->_encoding) . $this->_mimeType . "\0" .
Transform::toUInt8($this->_imageType);
switch ($this->_encoding) {
case self::UTF16LE:
$data .= Transform::toString16
($this->_description, Transform::LITTLE_ENDIAN_ORDER, 1);
break;
case self::UTF16:
case self::UTF16BE:
$data .= Transform::toString16($this->_description, false, 1);
break;
default:
$data .= $this->_description . "\0";
}
return $data . $this->_imageData;
}
}

View File

@@ -1,160 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @since ID3v2.4.0
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* Audio files with variable bit rates are intrinsically difficult to deal with
* in the case of seeking within the file. The <i>Audio seek point index</i> or
* ASPI frame makes seeking easier by providing a list a seek points within the
* audio file. The seek points are a fractional offset within the audio data,
* providing a starting point from which to find an appropriate point to start
* decoding. The presence of an ASPI frame requires the existence of a
* {@link ID3_Frame_TLEN} frame, indicating the duration of the file in
* milliseconds. There may only be one audio seek point index frame in a tag.
*
* @todo Data parsing and write support
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @since ID3v2.4.0
*/
final class ID3_Frame_ASPI extends ID3_Frame
{
/** @var integer */
private $_dataStart;
/** @var integer */
private $_dataLength;
/** @var integer */
private $_size;
/** @var Array */
private $_fractions = array();
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null) {
require_once("ID3/Exception.php");
throw new ID3_Exception("Write not supported yet");
}
$this->_dataStart = Transform::fromInt32BE(substr($this->_data, 0, 4));
$this->_dataLength = Transform::fromInt32BE(substr($this->_data, 4, 4));
$this->_size = Transform::fromInt16BE(substr($this->_data, 8, 2));
$bitsPerPoint = Transform::fromInt8($this->_data[10]);
/*for ($i = 0, $offset = 11; $i < $this->_size; $i++) {
if ($bitsPerPoint == 16) {
$this->_fractions[$i] = substr($this->_data, $offset, 2);
$offset += 2;
} else {
$this->_fractions[$i] = substr($this->_data, $offset, 1);
$offset ++;
}
}*/
}
/**
* Returns the byte offset from the beginning of the file.
*
* @return integer
*/
public function getDataStart() { return $this->_dataStart; }
/**
* Sets the byte offset from the beginning of the file.
*
* @param integer $dataStart The offset.
*/
public function setDataStart($dataStart) { $this->_dataStart = $dataStart; }
/**
* Returns the byte length of the audio data being indexed.
*
* @return integer
*/
public function getDataLength() { return $this->_dataLength; }
/**
* Sets the byte length of the audio data being indexed.
*
* @param integer $dataLength The length.
*/
public function setDataLength($dataLength)
{
$this->_dataLength = $dataLength;
}
/**
* Returns the number of index points in the frame.
*
* @return integer
*/
public function getSize() { return count($this->_fractions); }
/**
* Returns the numerator of the fraction representing a relative position in
* the data or <var>false</var> if index not defined. The denominator is 2
* to the power of b.
*
* @param integer $index The fraction numerator.
* @return integer
*/
public function getFractionAt($index)
{
if (isset($this->_fractions[$index]))
return $this->_fractions[$index];
return false;
}
}

View File

@@ -1,96 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* A base class for all the URL link frames.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
abstract class ID3_Frame_AbstractLink extends ID3_Frame
{
/** @var string */
protected $_link;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader !== null)
$this->_link = implode($this->_explodeString8($this->_data, 1), "");
}
/**
* Returns the link associated with the frame.
*
* @return string
*/
public function getLink() { return $this->_link; }
/**
* Sets the link. The link encoding is always ISO-8859-1.
*
* @param string $link The link.
*/
public function setLink($link) { $this->_link = $link; }
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
return $this->_link;
}
}

View File

@@ -1,188 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
require_once("ID3/Encoding.php");
/**#@-*/
/**
* A base class for all the text frames.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
abstract class ID3_Frame_AbstractText extends ID3_Frame
implements ID3_Encoding
{
/**
* The text encoding.
*
* @var integer
*/
protected $_encoding;
/**
* The text array.
*
* @var string
*/
protected $_text;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
$this->_encoding = $this->getOption("encoding", ID3_Encoding::UTF8);
if ($reader === null)
return;
$encoding = Transform::fromUInt8($this->_data[0]);
$this->_data = substr($this->_data, 1);
switch ($encoding) {
case self::UTF16:
$this->_text = $this->_convertString
($this->_explodeString16(Transform::fromString16($this->_data)),
"utf-16");
break;
case self::UTF16BE:
$this->_text = $this->_convertString
($this->_explodeString16(Transform::fromString16($this->_data)),
"utf-16be");
break;
case self::UTF8:
$this->_text = $this->_convertString
($this->_explodeString8(Transform::fromString8($this->_data)), "utf-8");
break;
default:
$this->_text = $this->_convertString
($this->_explodeString8(Transform::fromString8($this->_data)),
"iso-8859-1");
}
}
/**
* Returns the text encoding.
*
* All the strings read from a file are automatically converted to the
* character encoding specified with the <var>encoding</var> option. See
* {@link ID3v2} for details. This method returns the original text encoding
* used to write the frame.
*
* @return integer
*/
public function getEncoding() { return $this->_encoding; }
/**
* Sets the text encoding.
*
* All the string written to the frame are done so using given character
* encoding. No conversions of existing data take place upon the call to this
* method thus all texts must be given in given character encoding.
*
* The default character encoding used to write the frame is UTF-8.
*
* @see ID3_Encoding
* @param integer $encoding The text encoding.
*/
public function setEncoding($encoding) { $this->_encoding = $encoding; }
/**
* Returns the first text chunk the frame contains.
*
* @return string
*/
public function getText() { return $this->_text[0]; }
/**
* Returns an array of texts the frame contains.
*
* @return Array
*/
public function getTexts() { return $this->_text; }
/**
* Sets the text using given encoding.
*
* @param mixed $text The test string or an array of strings.
* @param integer $encoding The text encoding.
*/
public function setText($text, $encoding = false)
{
$this->_text = is_array($text) ? $text : array($text);
if ($encoding !== false)
$this->_encoding = $encoding;
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
$data = Transform::toUInt8($this->_encoding);
switch ($this->_encoding) {
case self::UTF16LE:
$array = $this->_text;
foreach ($array as &$text)
$text = Transform::toString16($text, Transform::LITTLE_ENDIAN_ORDER);
$data .= implode("\0\0", $array);
break;
case self::UTF16:
case self::UTF16BE:
$data .= implode("\0\0", $this->_text);
break;
default:
$data .= implode("\0", $this->_text);
}
return $data;
}
}

View File

@@ -1,254 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
require_once("ID3/Encoding.php");
require_once("ID3/Language.php");
require_once("ID3/Exception.php");
/**#@-*/
/**
* The <i>Comments</i> frame is intended for any kind of full text information
* that does not fit in any other frame. It consists of a frame header followed
* by encoding, language and content descriptors and is ended with the actual
* comment as a text string. Newline characters are allowed in the comment text
* string. There may be more than one comment frame in each tag, but only one
* with the same language and content descriptor.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_COMM extends ID3_Frame
implements ID3_Encoding, ID3_Language
{
/** @var integer */
private $_encoding;
/** @var string */
private $_language = "und";
/** @var string */
private $_description;
/** @var string */
private $_text;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
$this->_encoding = $this->getOption("encoding", ID3_Encoding::UTF8);
if ($reader === null)
return;
$encoding = Transform::fromUInt8($this->_data[0]);
$this->_language = substr($this->_data, 1, 3);
if ($this->_language == "XXX")
$this->_language = "und";
$this->_data = substr($this->_data, 4);
switch ($encoding) {
case self::UTF16:
list ($this->_description, $this->_text) =
$this->_explodeString16($this->_data, 2);
$this->_description = $this->_convertString
(Transform::fromString16($this->_description), "utf-16");
$this->_text = $this->_convertString
(Transform::fromString16($this->_text), "utf-16");
break;
case self::UTF16BE:
list ($this->_description, $this->_text) =
$this->_explodeString16($this->_data, 2);
$this->_description = $this->_convertString
(Transform::fromString16($this->_description), "utf-16be");
$this->_text = $this->_convertString
(Transform::fromString16($this->_text), "utf-16be");
break;
case self::UTF8:
list ($this->_description, $this->_text) =
$this->_explodeString8($this->_data, 2);
$this->_description = $this->_convertString
(Transform::fromString8($this->_description), "utf-8");
$this->_text = $this->_convertString
(Transform::fromString8($this->_text), "utf-8");
break;
default:
list ($this->_description, $this->_text) =
$this->_explodeString8($this->_data, 2);
$this->_description = $this->_convertString
(Transform::fromString8($this->_description), "iso-8859-1");
$this->_text = $this->_convertString
(Transform::fromString8($this->_text), "iso-8859-1");
}
}
/**
* Returns the text encoding.
*
* All the strings read from a file are automatically converted to the
* character encoding specified with the <var>encoding</var> option. See
* {@link ID3v2} for details. This method returns the original text encoding
* used to write the frame.
*
* @return integer
*/
public function getEncoding() { return $this->_encoding; }
/**
* Sets the text encoding.
*
* All the string written to the frame are done so using given character
* encoding. No conversions of existing data take place upon the call to this
* method thus all texts must be given in given character encoding.
*
* The default character encoding used to write the frame is UTF-8.
*
* @see ID3_Encoding
* @param integer $encoding The text encoding.
*/
public function setEncoding($encoding) { $this->_encoding = $encoding; }
/**
* Returns the language code as specified in the
* {@link http://www.loc.gov/standards/iso639-2/ ISO-639-2} standard.
*
* @return string
*/
public function getLanguage() { return $this->_language; }
/**
* Sets the text language code as specified in the
* {@link http://www.loc.gov/standards/iso639-2/ ISO-639-2} standard.
*
* @see ID3_Language
* @param string $language The language code.
*/
public function setLanguage($language)
{
if ($language == "XXX")
$language = "und";
$this->_language = substr($language, 0, 3);
}
/**
* Returns the short content description.
*
* @return string
*/
public function getDescription() { return $this->_description; }
/**
* Sets the content description text using given encoding. The description
* language and encoding must be that of the actual text.
*
* @param string $description The content description text.
* @param string $language The language code.
* @param integer $encoding The text encoding.
*/
public function setDescription($description, $language = false,
$encoding = false)
{
$this->_description = $description;
if ($language !== false)
$this->setLanguage($language);
if ($encoding !== false)
$this->setEncoding($encoding);
}
/**
* Returns the comment text.
*
* @return string
*/
public function getText() { return $this->_text; }
/**
* Sets the text using given encoding. The text language and encoding must be
* that of the description text.
*
* @param mixed $text The test string.
* @param string $language The language code.
* @param integer $encoding The text encoding.
*/
public function setText($text, $language = false, $encoding = false)
{
$this->_text = $text;
if ($language !== false)
$this->setLanguage($language);
if ($encoding !== false)
$this->setEncoding($encoding);
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
$data = Transform::toUInt8($this->_encoding) . $this->_language;
switch ($this->_encoding) {
case self::UTF16LE:
$data .= Transform::toString16
($this->_description, Transform::LITTLE_ENDIAN_ORDER, 1) .
Transform::toString16($this->_text, Transform::LITTLE_ENDIAN_ORDER);
break;
case self::UTF16:
case self::UTF16BE:
$data .= Transform::toString16($this->_description, false, 1) .
Transform::toString16($this->_text);
break;
default:
$data .= $this->_description . "\0" . $this->_text;
}
return $data;
}
}

View File

@@ -1,400 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
require_once("ID3/Encoding.php");
/**#@-*/
/**
* The <i>Commercial frame</i> enables several competing offers in the same tag
* by bundling all needed information. That makes this frame rather complex but
* it's an easier solution than if one tries to achieve the same result with
* several frames.
*
* There may be more than one commercial frame in a tag, but no two may be
* identical.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_COMR extends ID3_Frame
implements ID3_Encoding
{
/**
* The delivery types.
*
* @var Array
*/
public static $types = array
("Other", "Standard CD album with other songs", "Compressed audio on CD",
"File over the Internet", "Stream over the Internet", "As note sheets",
"As note sheets in a book with other sheets", "Music on other media",
"Non-musical merchandise");
/** @var integer */
private $_encoding;
/** @var string */
private $_currency = "EUR";
/** @var string */
private $_price;
/** @var string */
private $_date;
/** @var string */
private $_contact;
/** @var integer */
private $_delivery = 0;
/** @var string */
private $_seller;
/** @var string */
private $_description;
/** @var string */
private $_mimeType = false;
/** @var string */
private $_imageData;
/** @var integer */
private $_imageSize = 0;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
$this->_encoding = $this->getOption("encoding", ID3_Encoding::UTF8);
if ($reader === null)
return;
$encoding = Transform::fromUInt8($this->_data[0]);
list($pricing, $this->_data) =
$this->_explodeString8(substr($this->_data, 1), 2);
$this->_currency = substr($pricing, 0, 3);
$this->_price = substr($pricing, 3);
$this->_date = substr($this->_data, 0, 8);
list($this->_contact, $this->_data) =
$this->_explodeString8(substr($this->_data, 8), 2);
$this->_delivery = Transform::fromUInt8($this->_data[0]);
$this->_data = substr($this->_data, 1);
switch ($encoding) {
case self::UTF16:
list ($this->_seller, $this->_description, $this->_data) =
$this->_explodeString16($this->_data, 3);
$this->_seller = $this->_convertString
(Transform::fromString16($this->_seller), "utf-16");
$this->_description = $this->_convertString
(Transform::fromString16($this->_description), "utf-16");
break;
case self::UTF16BE:
list ($this->_seller, $this->_description, $this->_data) =
$this->_explodeString16($this->_data, 3);
$this->_seller = $this->_convertString
(Transform::fromString16($this->_seller), "utf-16be");
$this->_description = $this->_convertString
(Transform::fromString16($this->_description), "utf-16be");
break;
case self::UTF8:
list ($this->_seller, $this->_description, $this->_data) =
$this->_explodeString8($this->_data, 3);
$this->_seller = $this->_convertString
(Transform::fromString8($this->_seller), "utf-8");
$this->_description = $this->_convertString
(Transform::fromString8($this->_description), "utf-8");
break;
default:
list ($this->_seller, $this->_description, $this->_data) =
$this->_explodeString8($this->_data, 3);
$this->_seller = $this->_convertString
(Transform::fromString8($this->_seller), "iso-8859-1");
$this->_description = $this->_convertString
(Transform::fromString8($this->_description), "iso-8859-1");
}
if (strlen($this->_data) == 0)
return;
list($this->_mimeType, $this->_imageData) =
$this->_explodeString8($this->_data, 2);
$this->_imageSize = strlen($this->_imageData);
}
/**
* Returns the text encoding.
*
* All the strings read from a file are automatically converted to the
* character encoding specified with the <var>encoding</var> option. See
* {@link ID3v2} for details. This method returns the original text encoding
* used to write the frame.
*
* @return integer
*/
public function getEncoding() { return $this->_encoding; }
/**
* Sets the text encoding.
*
* All the string written to the frame are done so using given character
* encoding. No conversions of existing data take place upon the call to this
* method thus all texts must be given in given character encoding.
*
* The default character encoding used to write the frame is UTF-8.
*
* @see ID3_Encoding
* @param integer $encoding The text encoding.
*/
public function setEncoding($encoding) { $this->_encoding = $encoding; }
/**
* Returns the currency code, encoded according to
* {@link http://www.iso.org/iso/support/faqs/faqs_widely_used_standards/widely_used_standards_other/currency_codes/currency_codes_list-1.htm
* ISO 4217} alphabetic currency code.
*
* @return string
*/
public function getCurrency() { return $this->_currency; }
/**
* Sets the currency used in transaction, encoded according to
* {@link http://www.iso.org/iso/support/faqs/faqs_widely_used_standards/widely_used_standards_other/currency_codes/currency_codes_list-1.htm
* ISO 4217} alphabetic currency code.
*
* @param string $currency The currency code.
*/
public function setCurrency($currency) { $this->_currency = $currency; }
/**
* Returns the price as a numerical string using "." as the decimal separator.
*
* In the price string several prices may be concatenated, separated by a "/"
* character, but there may only be one currency of each type.
*
* @return string
*/
public function getPrice() { return $this->_price; }
/**
* Sets the price. The price must use "." as the decimal separator and have
* multiple values be separated by a "/" character.
*
* @param string $price The price.
*/
public function setPrice($price)
{
$this->_price = $price;
}
/**
* Returns the date as an 8 character date string (YYYYMMDD), describing for
* how long the price is valid.
*
* @return string
*/
public function getDate() { return $this->_date; }
/**
* Sets the date describing for how long the price is valid for. The date must
* be an 8 character date string (YYYYMMDD).
*
* @param string $date The date string.
*/
public function setDate($date) { $this->_date = $date; }
/**
* Returns the contact URL, with which the user can contact the seller.
*
* @return string
*/
public function getContact() { return $this->_contact; }
/**
* Sets the contact URL, with which the user can contact the seller.
*
* @param string $contact The contact URL.
*/
public function setContact($contact) { $this->_contact = $contact; }
/**
* Returns the delivery type with whitch the audio was delivered when bought.
*
* @return integer
*/
public function getDelivery() { return $this->_delivery; }
/**
* Sets the delivery type with whitch the audio was delivered when bought.
*
* @param integer $delivery The delivery type code.
*/
public function setDelivery($delivery) { $this->_delivery = $delivery; }
/**
* Returns the name of the seller.
*
* @return string
*/
public function getSeller() { return $this->_seller; }
/**
* Sets the name of the seller using given encoding. The seller text encoding
* must be that of the description text.
*
* @param string $seller The name of the seller.
* @param integer $encoding The text encoding.
*/
public function setSeller($seller, $encoding = false)
{
$this->_seller = $seller;
if ($encoding !== false)
$this->_encoding = $encoding;
}
/**
* Returns the short description of the product.
*
* @return string
*/
public function getDescription() { return $this->_description; }
/**
* Sets the content description text using given encoding. The description
* encoding must be that of the seller text.
*
* @param string $description The content description text.
* @param integer $encoding The text encoding.
*/
public function setDescription($description, $encoding = false)
{
$this->_description = $description;
if ($encoding !== false)
$this->_encoding = $encoding;
}
/**
* Returns the MIME type of the seller's company logo, if attached, or
* <var>false</var> otherwise. Currently only "image/png" and "image/jpeg"
* are allowed.
*
* @return string
*/
public function getMimeType() { return $this->_mimeType; }
/**
* Sets the MIME type. Currently only "image/png" and "image/jpeg" are
* allowed. The MIME type is always ISO-8859-1 encoded.
*
* @param string $mimeType The MIME type.
*/
public function setMimeType($mimeType) { $this->_mimeType = $mimeType; }
/**
* Returns the embedded image binary data.
*
* @return string
*/
public function getImageData() { return $this->_imageData; }
/**
* Sets the embedded image data. Also updates the image size to correspond the
* new data.
*
* @param string $imageData The image data.
*/
public function setImageData($imageData)
{
$this->_imageData = $imageData;
$this->_imageSize = strlen($imageData);
}
/**
* Returns the size of the embedded image data.
*
* @return integer
*/
public function getImageSize() { return $this->_imageSize; }
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
$data = Transform::toUInt8($this->_encoding) . $this->_currency .
$this->_price . "\0" . $this->_date . $this->_contact . "\0" .
Transform::toUInt8($this->_delivery);
switch ($this->_encoding) {
case self::UTF16LE:
$data .= Transform::toString16
($this->_seller, Transform::LITTLE_ENDIAN_ORDER, 1) .
Transform::toString16
($this->_description, Transform::LITTLE_ENDIAN_ORDER, 1);
break;
case self::UTF16:
case self::UTF16BE:
$data .= Transform::toString16($this->_seller, false, 1) .
Transform::toString16($this->_description, false, 1);
break;
default:
$data .= $this->_seller . "\0" . $this->_description . "\0";
}
return
$data . ($this->_mimeType ?
$this->_mimeType . "\0" . $this->_imageData : "");
}
}

View File

@@ -1,156 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* To identify with which method a frame has been encrypted the encryption
* method must be registered in the tag with the <i>Encryption method
* registration</i> frame.
*
* The owner identifier a URL containing an email address, or a link to a
* location where an email address can be found, that belongs to the
* organisation responsible for this specific encryption method. Questions
* regarding the encryption method should be sent to the indicated email
* address.
*
* The method symbol contains a value that is associated with this method
* throughout the whole tag, in the range $80-F0. All other values are reserved.
* The method symbol may optionally be followed by encryption specific data.
*
* There may be several ENCR frames in a tag but only one containing the same
* symbol and only one containing the same owner identifier. The method must be
* used somewhere in the tag. See {@link ID3_Frame#ENCRYPTION} for more
* information.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_ENCR extends ID3_Frame
{
/** @var string */
private $_owner;
/** @var integer */
private $_method;
/** @var string */
private $_encryptionData;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
list($this->_owner, $this->_data) = $this->_explodeString8($this->_data, 2);
$this->_method = Transform::fromInt8($this->_data[0]);
$this->_encryptionData = substr($this->_data, 1);
}
/**
* Returns the owner identifier string.
*
* @return string
*/
public function getOwner() { return $this->_owner; }
/**
* Sets the owner identifier string.
*
* @param string $owner The owner identifier string.
*/
public function setOwner($owner) { $this->_owner = $owner; }
/**
* Returns the method symbol.
*
* @return integer
*/
public function getMethod() { return $this->_method; }
/**
* Sets the method symbol.
*
* @param integer $method The method symbol byte.
*/
public function setMethod($method) { $this->_method = $method; }
/**
* Returns the encryption data.
*
* @return string
*/
public function getEncryptionData() { return $this->_encryptionData; }
/**
* Sets the encryption data.
*
* @param string $encryptionData The encryption data string.
*/
public function setEncryptionData($encryptionData)
{
$this->_encryptionData = $encryptionData;
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
return
$this->_owner . "\0" . Transform::toInt8($this->_method) .
$this->_encryptionData;
}
}

View File

@@ -1,193 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @since ID3v2.4.0
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* The <i>Equalisation (2)</i> is another subjective, alignment frame. It allows
* the user to predefine an equalisation curve within the audio file. There may
* be more than one EQU2 frame in each tag, but only one with the same
* identification string.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @since ID3v2.4.0
*/
final class ID3_Frame_EQU2 extends ID3_Frame
{
/**
* Interpolation type that defines that no interpolation is made. A jump from
* one adjustment level to another occurs in the middle between two adjustment
* points.
*/
const BAND = 0;
/**
* Interpolation type that defines that interpolation between adjustment
* points is linear.
*/
const LINEAR = 1;
/** @var integer */
private $_interpolation;
/** @var string */
private $_device;
/** @var Array */
private $_adjustments;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
$this->_interpolation = Transform::fromInt8($this->_data[0]);
list ($this->_device, $this->_data) =
$this->_explodeString8(substr($this->_data, 1), 2);
for ($i = 0; $i < strlen($this->_data); $i += 4)
$this->_adjustments
[(int)(Transform::fromUInt16BE(substr($this->_data, $i, 2)) / 2)] =
Transform::fromInt16BE(substr($this->_data, $i + 2, 2)) / 512.0;
ksort($this->_adjustments);
}
/**
* Returns the interpolation method. The interpolation method describes which
* method is preferred when an interpolation between the adjustment point that
* follows.
*
* @return integer
*/
public function getInterpolation() { return $this->_interpolation; }
/**
* Sets the interpolation method. The interpolation method describes which
* method is preferred when an interpolation between the adjustment point that
* follows.
*
* @param integer $interpolation The interpolation method code.
*/
public function setInterpolation($interpolation)
{
$this->_interpolation = $interpolation;
}
/**
* Returns the device where the adjustments should apply.
*
* @return string
*/
public function getDevice() { return $this->_device; }
/**
* Sets the device where the adjustments should apply.
*
* @param string $device The device.
*/
public function setDevice($device) { $this->_device = $device; }
/**
* Returns the array containing adjustments having frequencies as keys and
* their corresponding adjustments as values.
*
* Adjustment points are ordered by frequency.
*
* @return Array
*/
public function getAdjustments() { return $this->_adjustments; }
/**
* Adds a volume adjustment setting for given frequency. The frequency can
* have a value from 0 to 32767 Hz, and the adjustment </> +/- 64 dB with a
* precision of 0.001953125 dB.
*
* @param integer $frequency The frequency, in hertz.
* @param integer $adjustment The adjustment, in dB.
*/
public function addAdjustment($frequency, $adjustment)
{
$this->_adjustments[$frequency] = $adjustment;
ksort($this->_adjustments);
}
/**
* Sets the adjustments array. The array must have frequencies as keys and
* their corresponding adjustments as values. The frequency can have a value
* from 0 to 32767 Hz, and the adjustment </> +/- 64 dB with a precision of
* 0.001953125 dB. One frequency should only be described once in the frame.
*
* @param Array $adjustments The adjustments array.
*/
public function setAdjustments($adjustments)
{
$this->_adjustments = $adjustments;
ksort($this->_adjustments);
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
$data = Transform::toInt8($this->_interpolation) . $this->_device . "\0";
foreach ($this->_adjustments as $frequency => $adjustment)
$data .= Transform::toUInt16BE($frequency * 2) .
Transform::toInt16BE($adjustment * 512);
return $data;
}
}

View File

@@ -1,142 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @deprecated ID3v2.3.0
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* The <i>Equalisation</i> frame is another subjective, alignment frame. It
* allows the user to predefine an equalisation curve within the audio file.
* There may only be one EQUA frame in each tag.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @deprecated ID3v2.3.0
*/
final class ID3_Frame_EQUA extends ID3_Frame
{
/** @var Array */
private $_adjustments;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
$adjustmentBits = Transform::fromInt8($this->_data[0]);
if ($adjustmentBits <= 8 || $adjustmentBits > 16) {
require_once("ID3/Exception.php");
throw new ID3_Exception
("Unsupported adjustment bit size of: " . $adjustmentBits);
}
for ($i = 1; $i < strlen($this->_data); $i += 4) {
$frequency = Transform::fromUInt16BE(substr($this->_data, $i, 2));
$this->_adjustments[($frequency & 0x7fff)] =
($frequency & 0x8000) == 0x8000 ?
Transform::fromUInt16BE(substr($this->_data, $i + 2, 2)) :
-Transform::fromUInt16BE(substr($this->_data, $i + 2, 2));
}
ksort($this->_adjustments);
}
/**
* Returns the array containing adjustments having frequencies as keys and
* their corresponding adjustments as values.
*
* @return Array
*/
public function getAdjustments() { return $this->_adjustments; }
/**
* Adds a volume adjustment setting for given frequency. The frequency can
* have a value from 0 to 32767 Hz.
*
* @param integer $frequency The frequency, in hertz.
* @param integer $adjustment The adjustment, in dB.
*/
public function addAdjustment($frequency, $adjustment)
{
$this->_adjustments[$frequency] = $adjustment;
ksort($this->_adjustments);
}
/**
* Sets the adjustments array. The array must have frequencies as keys and
* their corresponding adjustments as values. The frequency can have a value
* from 0 to 32767 Hz. One frequency should only be described once in the
* frame.
*
* @param Array $adjustments The adjustments array.
*/
public function setAdjustments($adjustments)
{
$this->_adjustments = $adjustments;
ksort($this->_adjustments);
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
$data = Transform::toInt8(16);
foreach ($this->_adjustments as $frequency => $adjustment)
$data .= Transform::toUInt16BE
($adjustment > 0 ? $frequency | 0x8000 : $frequency & ~0x8000) .
Transform::toUInt16BE(abs($adjustment));
return $data;
}
}

View File

@@ -1,168 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
require_once("ID3/Timing.php");
/**#@-*/
/**
* The <i>Event timing codes</i> allows synchronisation with key events in the
* audio.
*
* The events are an array of timestamp and type pairs. The time stamp is set to
* zero if directly at the beginning of the sound or after the previous event.
* All events are sorted in chronological order.
*
* The events $E0-EF are for user events. You might want to synchronise your
* music to something, like setting off an explosion on-stage, activating a
* screensaver etc.
*
* There may only be one ETCO frame in each tag.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_ETCO extends ID3_Frame
implements ID3_Timing
{
/**
* The list of event types.
*
* @var Array
*/
public static $types = array
("Padding", "End of initial silence", "Intro start", "Main part start",
"Outro start", "Outro end", "Verse start","Refrain start",
"Interlude start", "Theme start", "Variation start", "Key change",
"Time change", "Momentary unwanted noise", "Sustained noise",
"Sustained noise end", "Intro end", "Main part end", "Verse end",
"Refrain end", "Theme end", "Profanity", "Profanity end",
0xe0 => "User event", "User event", "User event", "User event",
"User event", "User event", "User event", "User event", "User event",
"User event", "User event", "User event", "User event", "User event",
0xfd => "Audio end (start of silence)", "Audio file ends",
"One more byte of events follows");
/** @var integer */
private $_format = ID3_Timing::MPEG_FRAMES;
/** @var Array */
private $_events = array();
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
$this->_format = Transform::fromUInt8($this->_data[0]);
for ($i = 1; $i < $this->getSize(); $i += 5) {
$this->_events[Transform::fromUInt32BE(substr($this->_data, $i + 1, 4))] =
$data = Transform::fromUInt8($this->_data[$i]);
if ($data == 0xff)
break;
}
ksort($this->_events);
}
/**
* Returns the timing format.
*
* @return integer
*/
public function getFormat() { return $this->_format; }
/**
* Sets the timing format.
*
* @see ID3_Timing
* @param integer $format The timing format.
*/
public function setFormat($format) { $this->_format = $format; }
/**
* Returns the events as an associated array having the timestamps as keys and
* the event types as values.
*
* @return Array
*/
public function getEvents() { return $this->_events; }
/**
* Sets the events using given format. The value must be an associated array
* having the timestamps as keys and the event types as values.
*
* @param Array $events The events array.
* @param integer $format The timing format.
*/
public function setEvents($events, $format = false)
{
$this->_events = $events;
if ($format !== false)
$this->_format = $format;
ksort($this->_events);
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
$data = Transform::toUInt8($this->_format);
foreach ($this->_events as $timestamp => $type)
$data .= Transform::toUInt8($type) . Transform::toUInt32BE($timestamp);
return $data;
}
}

View File

@@ -1,253 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
require_once("ID3/Encoding.php");
/**#@-*/
/**
* In the <i>General encapsulated object</i> frame any type of file can be
* encapsulated.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_GEOB extends ID3_Frame
implements ID3_Encoding
{
/** @var integer */
private $_encoding;
/** @var string */
private $_mimeType;
/** @var string */
private $_filename;
/** @var string */
private $_description;
/** @var string */
private $_objectData;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
$this->_encoding = $this->getOption("encoding", ID3_Encoding::UTF8);
if ($reader === null)
return;
$encoding = Transform::fromUInt8($this->_data[0]);
$this->_mimeType = substr
($this->_data, 1, ($pos = strpos($this->_data, "\0", 1)) - 1);
$this->_data = substr($this->_data, $pos + 1);
switch ($encoding) {
case self::UTF16:
list ($this->_filename, $this->_description, $this->_objectData) =
$this->_explodeString16($this->_data, 3);
$this->_filename = $this->_convertString
(Transform::fromString16($this->_filename), "utf-16");
$this->_description = $this->_convertString
(Transform::fromString16($this->_description), "utf-16");
break;
case self::UTF16BE:
list ($this->_filename, $this->_description, $this->_objectData) =
$this->_explodeString16($this->_data, 3);
$this->_filename = $this->_convertString
(Transform::fromString16($this->_filename), "utf-16be");
$this->_description = $this->_convertString
(Transform::fromString16($this->_description), "utf-16be");
break;
case self::UTF8:
list ($this->_filename, $this->_description, $this->_objectData) =
$this->_explodeString8($this->_data, 3);
$this->_filename = $this->_convertString
(Transform::fromString8($this->_filename), "utf-8");
$this->_description = $this->_convertString
(Transform::fromString8($this->_description), "utf-8");
break;
default:
list ($this->_filename, $this->_description, $this->_objectData) =
$this->_explodeString8($this->_data, 3);
$this->_filename = $this->_convertString
(Transform::fromString8($this->_filename), "iso-8859-1");
$this->_description = $this->_convertString
(Transform::fromString8($this->_description), "iso-8859-1");
}
}
/**
* Returns the text encoding.
*
* All the strings read from a file are automatically converted to the
* character encoding specified with the <var>encoding</var> option. See
* {@link ID3v2} for details. This method returns the original text encoding
* used to write the frame.
*
* @return integer
*/
public function getEncoding() { return $this->_encoding; }
/**
* Sets the text encoding.
*
* All the string written to the frame are done so using given character
* encoding. No conversions of existing data take place upon the call to this
* method thus all texts must be given in given character encoding.
*
* The default character encoding used to write the frame is UTF-8.
*
* @see ID3_Encoding
* @param integer $encoding The text encoding.
*/
public function setEncoding($encoding) { $this->_encoding = $encoding; }
/**
* Returns the MIME type. The MIME type is always encoded with ISO-8859-1.
*
* @return string
*/
public function getMimeType() { return $this->_mimeType; }
/**
* Sets the MIME type. The MIME type is always ISO-8859-1 encoded.
*
* @param string $mimeType The MIME type.
*/
public function setMimeType($mimeType) { $this->_mimeType = $mimeType; }
/**
* Returns the file name.
*
* @return string
*/
public function getFilename() { return $this->_filename; }
/**
* Sets the file name using given encoding. The file name encoding must be
* that of the description text.
*
* @param string $description The file description text.
* @param integer $encoding The text encoding.
*/
public function setFilename($filename, $encoding = false)
{
$this->_filename = $filename;
if ($encoding !== false)
$this->_encoding = $encoding;
}
/**
* Returns the file description.
*
* @return string
*/
public function getDescription() { return $this->_description; }
/**
* Sets the file description text using given encoding. The description
* encoding must be that of the file name.
*
* @param string $description The file description text.
* @param integer $encoding The text encoding.
*/
public function setDescription($description, $encoding = false)
{
$this->_description = $description;
if ($encoding !== false)
$this->_encoding = $encoding;
}
/**
* Returns the embedded object binary data.
*
* @return string
*/
public function getObjectData() { return $this->_objectData; }
/**
* Sets the embedded object binary data.
*
* @param string $objectData The object data.
*/
public function setObjectData($objectData)
{
$this->_objectData = $objectData;
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
$data = Transform::toUInt8($this->_encoding) . $this->_mimeType . "\0";
switch ($this->_encoding) {
case self::UTF16LE:
$data .= Transform::toString16
($this->_filename, Transform::LITTLE_ENDIAN_ORDER, 1) .
Transform::toString16
($this->_description, Transform::LITTLE_ENDIAN_ORDER, 1);
break;
case self::UTF16:
case self::UTF16BE:
$data .= Transform::toString16($this->_filename, false, 1) .
Transform::toString16($this->_description, false, 1);
break;
default:
$data .= $this->_filename . "\0" . $this->_description . "\0";
}
return $data . $this->_objectData;
}
}

View File

@@ -1,152 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* The <i>Group identification registration</i> frame enables grouping of
* otherwise unrelated frames. This can be used when some frames are to be
* signed. To identify which frames belongs to a set of frames a group
* identifier must be registered in the tag with this frame.
*
* The owner identifier is a URL containing an email address, or a link to a
* location where an email address can be found, that belongs to the
* organisation responsible for this grouping. Questions regarding the grouping
* should be sent to the indicated email address.
*
* The group symbol contains a value that associates the frame with this group
* throughout the whole tag, in the range $80-F0. All other values are reserved.
* The group symbol may optionally be followed by some group specific data, e.g.
* a digital signature. There may be several GRID frames in a tag but only one
* containing the same symbol and only one containing the same owner identifier.
* The group symbol must be used somewhere in the tag. See
* {@link ID3_Frame#GROUPING_ownerENTITY} for more information.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_GRID extends ID3_Frame
{
/** @var string */
private $_owner;
/** @var integer */
private $_group;
/** @var string */
private $_groupData;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
list($this->_owner, $this->_data) = $this->_explodeString8($this->_data, 2);
$this->_group = Transform::fromUInt8($this->_data[0]);
$this->_groupData = substr($this->_data, 1);
}
/**
* Returns the owner identifier string.
*
* @return string
*/
public function getOwner() { return $this->_owner; }
/**
* Sets the owner identifier string.
*
* @param string $owner The owner identifier string.
*/
public function setOwner($owner) { $this->_owner = $owner; }
/**
* Returns the group symbol.
*
* @return integer
*/
public function getGroup() { return $this->_group; }
/**
* Sets the group symbol.
*
* @param integer $group The group symbol.
*/
public function setGroup($group) { $this->_group = $group; }
/**
* Returns the group dependent data.
*
* @return string
*/
public function getGroupData() { return $this->_groupData; }
/**
* Sets the group dependent data.
*
* @param string $groupData The data.
*/
public function setGroupData($groupData) { $this->_groupData = $groupData; }
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
return
$this->_owner . "\0" . Transform::toUInt8($this->_group) .
$this->_groupData;
}
}

View File

@@ -1,191 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @deprecated ID3v2.3.0
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
require_once("ID3/Encoding.php");
/**#@-*/
/**
* The <i>Involved people list</i> is a frame containing the names of those
* involved, and how they were involved. There may only be one IPLS frame in
* each tag.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @deprecated ID3v2.3.0
*/
final class ID3_Frame_IPLS extends ID3_Frame
implements ID3_Encoding
{
/** @var integer */
private $_encoding;
/** @var Array */
private $_people = array();
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
$this->_encoding = $this->getOption("encoding", ID3_Encoding::UTF8);
if ($reader === null)
return;
$encoding = Transform::fromUInt8($this->_data[0]);
$data = substr($this->_data, 1);
$order = Transform::MACHINE_ENDIAN_ORDER;
switch ($encoding) {
case self::UTF16:
$data = $this->_explodeString16($data);
foreach ($data as &$str)
$str = $this->_convertString
(Transform::fromString16($str, $order), "utf-16");
break;
case self::UTF16BE:
$data = $this->_explodeString16($data);
foreach ($data as &$str)
$str = $this->_convertString
(Transform::fromString16($str), "utf-16be");
break;
case self::UTF8:
$data = $this->_convertString($this->_explodeString8($data), "utf-8");
break;
default:
$data = $this->_convertString($this->_explodeString8($data), "iso-8859-1");
}
for ($i = 0; $i < count($data) - 1; $i += 2)
$this->_people[] = array($data[$i] => @$data[$i + 1]);
}
/**
* Returns the text encoding.
*
* All the strings read from a file are automatically converted to the
* character encoding specified with the <var>encoding</var> option. See
* {@link ID3v2} for details. This method returns the original text encoding
* used to write the frame.
*
* @return integer
*/
public function getEncoding() { return $this->_encoding; }
/**
* Sets the text encoding.
*
* All the string written to the frame are done so using given character
* encoding. No conversions of existing data take place upon the call to this
* method thus all texts must be given in given character encoding.
*
* The default character encoding used to write the frame is UTF-8.
*
* @see ID3_Encoding
* @param integer $encoding The text encoding.
*/
public function setEncoding($encoding) { $this->_encoding = $encoding; }
/**
* Returns the involved people list as an array. For each person, the array
* contains an entry, which too is an associate array with involvement as its
* key and involvee as its value.
*
* @return Array
*/
public function getPeople() { return $this->_people; }
/**
* Adds a person with his involvement.
*
* @return string
*/
public function addPerson($involvement, $person)
{
$this->_people[] = array($involvement => $person);
}
/**
* Sets the involved people list array. For each person, the array must
* contain an associate array with involvement as its key and involvee as its
* value.
*
* @param Array $people The involved people list.
*/
public function setPeople($people) { $this->_people = $people; }
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
$data = Transform::toUInt8($this->_encoding);
foreach ($this->_people as $entry) {
foreach ($entry as $key => $val) {
switch ($this->_encoding) {
case self::UTF16LE:
$data .= Transform::toString16
($key, Transform::LITTLE_ENDIAN_ORDER, 1) .
Transform::toString16($val, Transform::LITTLE_ENDIAN_ORDER, 1);
case self::UTF16:
case self::UTF16BE:
$data .= Transform::toString16($key, false, 1) .
Transform::toString16($val, false, 1);
break;
default:
$data .= $key . "\0" . $val . "\0";
}
}
}
return $data;
}
}

View File

@@ -1,173 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* The <i>Linked information</i> frame is used to keep information duplication
* as low as possible by linking information from another ID3v2 tag that might
* reside in another audio file or alone in a binary file. It is recommended
* that this method is only used when the files are stored on a CD-ROM or other
* circumstances when the risk of file separation is low.
*
* Data should be retrieved from the first tag found in the file to which this
* link points. There may be more than one LINK frame in a tag, but only one
* with the same contents.
*
* A linked frame is to be considered as part of the tag and has the same
* restrictions as if it was a physical part of the tag (i.e. only one
* {@link ID3_Frame_RVRB} frame allowed, whether it's linked or not).
*
* Frames that may be linked and need no additional data are
* {@link ID3_Frame_ASPI}, {@link ID3_Frame_ETCO}, {@link ID3_Frame_EQU2},
* {@link ID3_Frame_MCDI}, {@link ID3_Frame_MLLT}, {@link ID3_Frame_OWNE},
* {@link ID3_Frame_RVA2}, {@link ID3_Frame_RVRB}, {@link ID3_Frame_SYTC}, the
* text information frames (ie frames descendats of
* {@link ID3_Frame_AbstractText}) and the URL link frames (ie frames descendants
* of {@link ID3_Frame_AbstractLink}).
*
* The {@link ID3_Frame_AENC}, {@link ID3_Frame_APIC}, {@link ID3_Frame_GEOB}
* and {@link ID3_Frame_TXXX} frames may be linked with the content descriptor
* as additional ID data.
*
* The {@link ID3_Frame_USER} frame may be linked with the language field as
* additional ID data.
*
* The {@link ID3_Frame_PRIV} frame may be linked with the owner identifier as
* additional ID data.
*
* The {@link ID3_Frame_COMM}, {@link ID3_Frame_SYLT} and {@link ID3_Frame_USLT}
* frames may be linked with three bytes of language descriptor directly
* followed by a content descriptor as additional ID data.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_LINK extends ID3_Frame
{
/** @var string */
private $_target;
/** @var string */
private $_url;
/** @var string */
private $_qualifier;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
$this->_target = substr($this->_data, 0, 4);
list($this->_url, $this->_qualifier) =
$this->_explodeString8(substr($this->_data, 4), 2);
}
/**
* Returns the target tag identifier.
*
* @return string
*/
public function getTarget() { return $this->_target; }
/**
* Sets the target tag identifier.
*
* @param string $target The target tag identifier.
*/
public function setTarget($target) { $this->_target = $target; }
/**
* Returns the target tag URL.
*
* @return string
*/
public function getUrl() { return $this->_url; }
/**
* Sets the target tag URL.
*
* @param string $url The target URL.
*/
public function setUrl($url) { $this->_url = $url; }
/**
* Returns the additional data to identify further the tag.
*
* @return string
*/
public function getQualifier() { return $this->_qualifier; }
/**
* Sets the additional data to be used in tag identification.
*
* @param string $identifier The qualifier.
*/
public function setQualifier($qualifier)
{
$this->_qualifier = $qualifier;
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
return
Transform::toString8(substr($this->_target, 0, 4), 4) .
$this->_url . "\0" . $this->_qualifier;
}
}

View File

@@ -1,86 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* This frame is intended for music that comes from a CD, so that the CD can be
* identified in databases such as the CDDB. The frame consists of a binary dump
* of the Table Of Contents, TOC, from the CD, which is a header of 4 bytes and
* then 8 bytes/track on the CD plus 8 bytes for the lead out, making a
* maximum of 804 bytes. The offset to the beginning of every track on the CD
* should be described with a four bytes absolute CD-frame address per track,
* and not with absolute time. When this frame is used the presence of a valid
* {@link ID3_Frame_TRCK} frame is required, even if the CD's only got one
* track. It is recommended that this frame is always added to tags originating
* from CDs.
*
* There may only be one MCDI frame in each tag.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_MCDI extends ID3_Frame
{
/**
* Returns the CD TOC binary dump.
*
* @return string
*/
public function getData() { return $this->_data; }
/**
* Sets the CD TOC binary dump.
*
* @param string $data The CD TOC binary dump string.
*/
public function setData($data) { $this->_data = $data; }
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData() { return $this->_data; }
}

View File

@@ -1,172 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* To increase performance and accuracy of jumps within a MPEG audio file,
* frames with time codes in different locations in the file might be useful.
* The <i>MPEG location lookup table</i> frame includes references that the
* software can use to calculate positions in the file.
*
* The MPEG frames between reference describes how much the frame counter should
* be increased for every reference. If this value is two then the first
* reference points out the second frame, the 2nd reference the 4th frame, the
* 3rd reference the 6th frame etc. In a similar way the bytes between reference
* and milliseconds between reference points out bytes and milliseconds
* respectively.
*
* Each reference consists of two parts; a certain number of bits that describes
* the difference between what is said in bytes between reference and the
* reality and a certain number of bits that describes the difference between
* what is said in milliseconds between reference and the reality.
*
* There may only be one MLLT frame in each tag.
*
* @todo Data parsing and write support
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_MLLT extends ID3_Frame
{
/** @var integer */
private $_frames;
/** @var integer */
private $_bytes;
/** @var integer */
private $_milliseconds;
/** @var Array */
private $_deviation = array();
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null) {
require_once("ID3/Exception.php");
throw new ID3_Exception("Write not supported yet");
}
$this->_frames = Transform::fromInt16BE(substr($this->_data, 0, 2));
$this->_bytes = Transform::fromInt32BE(substr($this->_data, 2, 3));
$this->_milliseconds = Transform::fromInt32BE(substr($this->_data, 5, 3));
$byteDevBits = Transform::fromInt8($this->_data[8]);
$millisDevBits = Transform::fromInt8($this->_data[9]);
// $data = substr($this->_data, 10);
}
/**
* Returns the number of MPEG frames between reference.
*
* @return integer
*/
public function getFrames() { return $this->_frames; }
/**
* Sets the number of MPEG frames between reference.
*
* @param integer $frames The number of MPEG frames.
*/
public function setFrames($frames) { $this->_frames = $frames; }
/**
* Returns the number of bytes between reference.
*
* @return integer
*/
public function getBytes() { return $this->_bytes; }
/**
* Sets the number of bytes between reference.
*
* @param integer $bytes The number of bytes.
*/
public function setBytes($bytes) { $this->_bytes = $bytes; }
/**
* Returns the number of milliseconds between references.
*
* @return integer
*/
public function getMilliseconds() { return $this->_milliseconds; }
/**
* Sets the number of milliseconds between references.
*
* @param integer $milliseconds The number of milliseconds.
*/
public function setMilliseconds($milliseconds)
{
return $this->_milliseconds;
}
/**
* Returns the deviations as an array. Each value is an array containing two
* values, ie the deviation in bytes, and the deviation in milliseconds,
* respectively.
*
* @return Array
*/
public function getDeviation() { return $this->_deviation; }
/**
* Sets the deviations array. The array must consist of arrays, each of which
* having two values, the deviation in bytes, and the deviation in
* milliseconds, respectively.
*
* @param Array $deviation The deviations array.
*/
public function setDeviation($deviation) { $this->_deviation = $deviation; }
}

View File

@@ -1,238 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
require_once("ID3/Encoding.php");
/**#@-*/
/**
* The <i>Ownership frame</i> might be used as a reminder of a made transaction
* or, if signed, as proof. Note that the {@link ID3_Frame_USER} and
* {@link ID3_Frame_TOWN} frames are good to use in conjunction with this one.
*
* There may only be one OWNE frame in a tag.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_OWNE extends ID3_Frame
implements ID3_Encoding
{
/** @var integer */
private $_encoding;
/** @var string */
private $_currency = "EUR";
/** @var string */
private $_price;
/** @var string */
private $_date;
/** @var string */
private $_seller;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
$this->_encoding = $this->getOption("encoding", ID3_Encoding::UTF8);
if ($reader === null)
return;
$encoding = Transform::fromUInt8($this->_data[0]);
list($tmp, $this->_data) =
$this->_explodeString8(substr($this->_data, 1), 2);
$this->_currency = substr($tmp, 0, 3);
$this->_price = substr($tmp, 3);
$this->_date = substr($this->_data, 0, 8);
$this->_data = substr($this->_data, 8);
switch ($encoding) {
case self::UTF16:
$this->_seller = $this->_convertString
(Transform::fromString16($this->_data), "utf-16");
break;
case self::UTF16BE:
$this->_seller = $this->_convertString
(Transform::fromString16($this->_data), "utf-16be");
break;
case self::UTF8:
$this->_seller = $this->_convertString
(Transform::fromString8($this->_data), "utf-8");
break;
default:
$this->_seller = $this->_convertString
(Transform::fromString8($this->_data), "iso-8859-1");
}
}
/**
* Returns the text encoding.
*
* All the strings read from a file are automatically converted to the
* character encoding specified with the <var>encoding</var> option. See
* {@link ID3v2} for details. This method returns the original text encoding
* used to write the frame.
*
* @return integer
*/
public function getEncoding() { return $this->_encoding; }
/**
* Sets the text encoding.
*
* All the string written to the frame are done so using given character
* encoding. No conversions of existing data take place upon the call to this
* method thus all texts must be given in given character encoding.
*
* The default character encoding used to write the frame is UTF-8.
*
* @see ID3_Encoding
* @param integer $encoding The text encoding.
*/
public function setEncoding($encoding) { $this->_encoding = $encoding; }
/**
* Returns the currency used in transaction, encoded according to
* {@link http://www.iso.org/iso/support/faqs/faqs_widely_used_standards/widely_used_standards_other/currency_codes/currency_codes_list-1.htm
* ISO 4217} alphabetic currency code.
*
* @return string
*/
public function getCurrency() { return $this->_currency; }
/**
* Sets the currency used in transaction, encoded according to
* {@link http://www.iso.org/iso/support/faqs/faqs_widely_used_standards/widely_used_standards_other/currency_codes/currency_codes_list-1.htm
* ISO 4217} alphabetic currency code.
*
* @param string $currency The currency code.
*/
public function setCurrency($currency) { $this->_currency = $currency; }
/**
* Returns the price as a numerical string using "." as the decimal separator.
*
* @return string
*/
public function getPrice() { return $this->_price; }
/**
* Sets the price.
*
* @param integer $price The price.
*/
public function setPrice($price)
{
$this->_price = number_format($price, 2, ".", "");
}
/**
* Returns the date of purchase as an 8 character date string (YYYYMMDD).
*
* @return string
*/
public function getDate() { return $this->_date; }
/**
* Sets the date of purchase. The date must be an 8 character date string
* (YYYYMMDD).
*
* @param string $date The date string.
*/
public function setDate($date) { $this->_date = $date; }
/**
* Returns the name of the seller.
*
* @return string
*/
public function getSeller() { return $this->_seller; }
/**
* Sets the name of the seller using given encoding.
*
* @param string $seller The name of the seller.
* @param integer $encoding The text encoding.
*/
public function setSeller($seller, $encoding = false)
{
$this->_seller = $seller;
if ($encoding !== false)
$this->_encoding = $encoding;
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
$data = Transform::toUInt8($this->_encoding) . $this->_currency .
$this->_price . "\0" . $this->_date;
switch ($this->_encoding) {
case self::UTF16LE:
$data .= Transform::toString16
($this->_seller, Transform::LITTLE_ENDIAN_ORDER);
break;
case self::UTF16:
case self::UTF16BE:
$data .= Transform::toString16($this->_seller);
break;
default:
$data .= Transform::toString8($this->_seller);
}
return $data;
}
}

View File

@@ -1,111 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* The <i>Play counter</i> is simply a counter of the number of times a file has
* been played. The value is increased by one every time the file begins to
* play. There may only be one PCNT frame in each tag.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_PCNT extends ID3_Frame
{
/** @var integer */
private $_counter = 0;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
if (strlen($this->_data) > 4)
$this->_counter = Transform::fromInt64BE($this->_data); // UInt64
else
$this->_counter = Transform::fromUInt32BE($this->_data);
}
/**
* Returns the counter.
*
* @return integer
*/
public function getCounter() { return $this->_counter; }
/**
* Adds counter by one.
*/
public function addCounter() { $this->_counter++; }
/**
* Sets the counter value.
*
* @param integer $counter The counter value.
*/
public function setCounter($counter) { $this->_counter = $counter; }
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
return
$this->_counter > 4294967295 ?
Transform::toInt64BE($this->_counter) : // UInt64
Transform::toUInt32BE($this->_counter);
}
}

View File

@@ -1,161 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* The purpose of the <i>Popularimeter</i> frame is to specify how good an audio
* file is. Many interesting applications could be found to this frame such as a
* playlist that features better audio files more often than others or it could
* be used to profile a person's taste and find other good files by comparing
* people's profiles. The frame contains the email address to the user, one
* rating byte and a four byte play counter, intended to be increased with one
* for every time the file is played.
*
* The rating is 1-255 where 1 is worst and 255 is best. 0 is unknown. If no
* personal counter is wanted it may be omitted. When the counter reaches all
* one's, one byte is inserted in front of the counter thus making the counter
* eight bits bigger in the same away as the play counter
* {@link ID3_Frame_PCNT}. There may be more than one POPM frame in each tag,
* but only one with the same email address.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_POPM extends ID3_Frame
{
/** @var string */
private $_owner;
/** @var integer */
private $_rating = 0;
/** @var integer */
private $_counter = 0;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
list($this->_owner, $this->_data) = $this->_explodeString8($this->_data, 2);
$this->_rating = Transform::fromUInt8($this->_data[0]);
$this->_data = substr($this->_data, 1);
if (strlen($this->_data) > 4)
$this->_counter = Transform::fromInt64BE($this->_data); // UInt64
else if (strlen($this->_data) > 0)
$this->_counter = Transform::fromUInt32BE($this->_data);
}
/**
* Returns the owner identifier string.
*
* @return string
*/
public function getOwner() { return $this->_owner; }
/**
* Sets the owner identifier string.
*
* @param string $owner The owner identifier string.
*/
public function setOwner($owner) { return $this->_owner = $owner; }
/**
* Returns the user rating.
*
* @return integer
*/
public function getRating() { return $this->_rating; }
/**
* Sets the user rating.
*
* @param integer $rating The user rating.
*/
public function setRating($rating) { $this->_rating = $rating; }
/**
* Returns the counter.
*
* @return integer
*/
public function getCounter() { return $this->_counter; }
/**
* Adds counter by one.
*/
public function addCounter() { $this->_counter++; }
/**
* Sets the counter value.
*
* @param integer $counter The counter value.
*/
public function setCounter($counter) { $this->_counter = $counter; }
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
return
$this->_owner . "\0" . Transform::toInt8($this->_rating) .
($this->_counter > 0xffffffff ?
Transform::toInt64BE($this->_counter) :
($this->_counter > 0 ? Transform::toUInt32BE($this->_counter) : 0));
}
}

View File

@@ -1,132 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
require_once("ID3/Timing.php");
/**#@-*/
/**
* The <i>Position synchronisation frame</i> delivers information to the
* listener of how far into the audio stream he picked up; in effect, it states
* the time offset from the first frame in the stream. There may only be one
* POSS frame in each tag.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_POSS extends ID3_Frame
implements ID3_Timing
{
/** @var integer */
private $_format = ID3_Timing::MPEG_FRAMES;
/** @var integer */
private $_position;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
$this->_format = Transform::fromUInt8($this->_data[0]);
$this->_position = Transform::fromUInt32BE(substr($this->_data, 1, 4));
}
/**
* Returns the timing format.
*
* @return integer
*/
public function getFormat() { return $this->_format; }
/**
* Sets the timing format.
*
* @see ID3_Timing
* @param integer $format The timing format.
*/
public function setFormat($format) { $this->_format = $format; }
/**
* Returns the position where in the audio the listener starts to receive,
* i.e. the beginning of the next frame.
*
* @return integer
*/
public function getPosition() { return $this->_position; }
/**
* Sets the position where in the audio the listener starts to receive,
* i.e. the beginning of the next frame, using given format.
*
* @param integer $position The position.
* @param integer $format The timing format.
*/
public function setPosition($position, $format = false)
{
$this->_position = $position;
if ($format !== false)
$this->_format = $format;
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
return
Transform::toUInt8($this->_format) .
Transform::toUInt32BE($this->_position);
}
}

View File

@@ -1,126 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* The <i>Private frame</i> is used to contain information from a software
* producer that its program uses and does not fit into the other frames. The
* frame consists of an owner identifier string and the binary data. The owner
* identifier is URL containing an email address, or a link to a location where
* an email address can be found, that belongs to the organisation responsible
* for the frame. Questions regarding the frame should be sent to the indicated
* email address. The tag may contain more than one PRIV frame but only with
* different contents.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_PRIV extends ID3_Frame
{
/** @var string */
private $_owner;
/** @var string */
private $_privateData;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
list($this->_owner, $this->_privateData) =
$this->_explodeString8($this->_data, 2);
}
/**
* Returns the owner identifier string.
*
* @return string
*/
public function getOwner() { return $this->_owner; }
/**
* Sets the owner identifier string.
*
* @param string $owner The owner identifier string.
*/
public function setOwner($owner) { $this->_owner = $owner; }
/**
* Returns the private binary data associated with the frame.
*
* @return string
*/
public function getPrivateData() { return $this->_privateData; }
/**
* Sets the private binary data associated with the frame.
*
* @param string $privateData The private binary data string.
*/
public function setPrivateData($privateData)
{
$this->_privateData = $privateData;
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
return $this->_owner . "\0" . $this->_privateData;
}
}

View File

@@ -1,181 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* Sometimes the server from which an audio file is streamed is aware of
* transmission or coding problems resulting in interruptions in the audio
* stream. In these cases, the size of the buffer can be recommended by the
* server using the <i>Recommended buffer size</i> frame. If the embedded info
* flag is set then this indicates that an ID3 tag with the maximum size
* described in buffer size may occur in the audio stream. In such case the tag
* should reside between two MPEG frames, if the audio is MPEG encoded. If the
* position of the next tag is known, offset to next tag may be used. The offset
* is calculated from the end of tag in which this frame resides to the first
* byte of the header in the next. This field may be omitted. Embedded tags are
* generally not recommended since this could render unpredictable behaviour
* from present software/hardware.
*
* For applications like streaming audio it might be an idea to embed tags into
* the audio stream though. If the clients connects to individual connections
* like HTTP and there is a possibility to begin every transmission with a tag,
* then this tag should include a recommended buffer size frame. If the client
* is connected to a arbitrary point in the stream, such as radio or multicast,
* then the recommended buffer size frame should be included in every tag.
*
* The buffer size should be kept to a minimum. There may only be one RBUF
* frame in each tag.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_RBUF extends ID3_Frame
{
/**
* A flag to denote that an ID3 tag with the maximum size described in buffer
* size may occur in the audio stream.
*/
const EMBEDDED = 0x1;
/** @var integer */
private $_bufferSize;
/** @var integer */
private $_infoFlags;
/** @var integer */
private $_offset = 0;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
$this->_bufferSize =
Transform::fromUInt32BE("\0" . substr($this->_data, 0, 3));
$this->_infoFlags = Transform::fromInt8($this->_data[3]);
if ($this->getSize() > 4)
$this->_offset = Transform::fromInt32BE(substr($this->_data, 4, 4));
}
/**
* Returns the buffer size.
*
* @return integer
*/
public function getBufferSize() { return $this->_bufferSize; }
/**
* Sets the buffer size.
*
* @param integer $size The buffer size.
*/
public function setBufferSize($bufferSize)
{
$this->_bufferSize = $bufferSize;
}
/**
* Checks whether or not the flag is set. Returns <var>true</var> if the flag
* is set, <var>false</var> otherwise.
*
* @param integer $flag The flag to query.
* @return boolean
*/
public function hasInfoFlag($flag)
{
return ($this->_infoFlags & $flag) == $flag;
}
/**
* Returns the flags byte.
*
* @return integer
*/
public function getInfoFlags() { return $this->_infoFlags; }
/**
* Sets the flags byte.
*
* @param string $flags The flags byte.
*/
public function setInfoFlags($infoFlags) { $this->_infoFlags = $infoFlags; }
/**
* Returns the offset to next tag.
*
* @return integer
*/
public function getOffset() { return $this->_offset; }
/**
* Sets the offset to next tag.
*
* @param integer $offset The offset.
*/
public function setOffset($offset) { $this->_offset = $offset; }
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
return
substr(Transform::toUInt32BE($this->_bufferSize), 1, 3) .
Transform::toInt8($this->_infoFlags) .
Transform::toInt32BE($this->_offset);
}
}

View File

@@ -1,217 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @since ID3v2.4.0
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* The <i>Relative volume adjustment (2)</i> frame is a more subjective frame than
* the previous ones. It allows the user to say how much he wants to
* increase/decrease the volume on each channel when the file is played. The
* purpose is to be able to align all files to a reference volume, so that you
* don't have to change the volume constantly. This frame may also be used to
* balance adjust the audio. The volume adjustment is encoded as a fixed point
* decibel value, 16 bit signed integer representing (adjustment*512), giving
* +/- 64 dB with a precision of 0.001953125 dB. E.g. +2 dB is stored as $04 00
* and -2 dB is $FC 00.
*
* There may be more than one RVA2 frame in each tag, but only one with the same
* identification string.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @since ID3v2.4.0
*/
final class ID3_Frame_RVA2 extends ID3_Frame
{
/**
* The channel type key.
*
* @see $types
* @var string
*/
const channelType = "channelType";
/**
* The volume adjustment key. Adjustments are +/- 64 dB with a precision of
* 0.001953125 dB.
*
* @var string
*/
const volumeAdjustment = "volumeAdjustment";
/**
* The peak volume key.
*
* @var string
*/
const peakVolume = "peakVolume";
/**
* The list of channel types.
*
* @var Array
*/
public static $types = array
("Other", "Master volume", "Front right", "Front left", "Back right",
"Back left", "Front centre", "Back centre", "Subwoofer");
/** @var string */
private $_device;
/** @var Array */
private $_adjustments;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
list ($this->_device, $this->_data) =
$this->_explodeString8($this->_data, 2);
for ($i = $j = 0; $i < 9; $i++) {
$this->_adjustments[$i] = array
(self::channelType => Transform::fromInt8($this->_data[$j++]),
self::volumeAdjustment =>
Transform::fromInt16BE(substr($this->_data, $j++, 2)) / 512.0);
$j++;
$bitsInPeak = Transform::fromInt8($this->_data[$j++]);
$bytesInPeak = $bitsInPeak > 0 ? ceil($bitsInPeak / 8) : 0;
switch ($bytesInPeak) {
case 8:
case 7:
case 6:
case 5:
$this->_adjustments[$i][self::peakVolume] =
Transform::fromInt64BE(substr($this->_data, $j, $bytesInPeak));
break;
case 4:
case 3:
$this->_adjustments[$i][self::peakVolume] =
Transform::fromUInt32BE(substr($this->_data, $j, $bytesInPeak));
break;
case 2:
$this->_adjustments[$i][self::peakVolume] =
Transform::fromUInt16BE(substr($this->_data, $j, $bytesInPeak));
break;
case 1:
$this->_adjustments[$i][self::peakVolume] =
Transform::fromUInt8(substr($this->_data, $j, $bytesInPeak));
}
$j += $bytesInPeak;
}
}
/**
* Returns the device where the adjustments should apply.
*
* @return string
*/
public function getDevice() { return $this->_device; }
/**
* Sets the device where the adjustments should apply.
*
* @param string $device The device.
*/
public function setDevice($device) { $this->_device = $device; }
/**
* Returns the array containing volume adjustments for each channel. Volume
* adjustments are arrays themselves containing the following keys:
* channelType, volumeAdjustment, peakVolume.
*
* @return Array
*/
public function getAdjustments() { return $this->_adjustments; }
/**
* Sets the array of volume adjustments for each channel. Each volume
* adjustment is an array too containing the following keys: channelType,
* volumeAdjustment, peakVolume.
*
* @param Array $adjustments The volume adjustments array.
*/
public function setAdjustments($adjustments)
{
$this->_adjustments = $adjustments;
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
$data = $this->_device . "\0";
foreach ($this->_adjustments as $channel) {
$data .= Transform::toInt8($channel[self::channelType]) .
Transform::toInt16BE($channel[self::volumeAdjustment] * 512);
if (abs($channel[self::peakVolume]) <= 0xff)
$data .= Transform::toInt8(8) .
Transform::toUInt8($channel[self::peakVolume]);
else if (abs($channel[self::peakVolume]) <= 0xffff)
$data .= Transform::toInt8(16) .
Transform::toUInt16BE($channel[self::peakVolume]);
else if (abs($channel[self::peakVolume]) <= 0xffffffff)
$data .= Transform::toInt8(32) .
Transform::toUInt32BE($channel[self::peakVolume]);
else
$data .= Transform::toInt8(64) .
Transform::toInt64BE($channel[self::peakVolume]); // UInt64
}
return $data;
}
}

View File

@@ -1,254 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @deprecated ID3v2.3.0
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* The <i>Relative volume adjustment</i> frame is a more subjective function
* than the previous ones. It allows the user to say how much he wants to
* increase/decrease the volume on each channel while the file is played. The
* purpose is to be able to align all files to a reference volume, so that you
* don't have to change the volume constantly. This frame may also be used to
* balance adjust the audio.
*
* There may only be one RVAD frame in each tag.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @deprecated ID3v2.3.0
*/
final class ID3_Frame_RVAD extends ID3_Frame
{
/* The required keys. */
/** @var string */
const right = "right";
/** @var string */
const left = "left";
/** @var string */
const peakRight = "peakRight";
/** @var string */
const peakLeft = "peakLeft";
/* The optional keys. */
/** @var string */
const rightBack = "rightBack";
/** @var string */
const leftBack = "leftBack";
/** @var string */
const peakRightBack = "peakRightBack";
/** @var string */
const peakLeftBack = "peakLeftBack";
/** @var string */
const center = "center";
/** @var string */
const peakCenter = "peakCenter";
/** @var string */
const bass = "bass";
/** @var string */
const peakBass = "peakBass";
/** @var Array */
private $_adjustments;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
$flags = Transform::fromInt8($this->_data[0]);
$descriptionBits = Transform::fromInt8($this->_data[1]);
if ($descriptionBits <= 8 || $descriptionBits > 16) {
require_once("ID3/Exception.php");
throw new ID3_Exception
("Unsupported description bit size of: " . $descriptionBits);
}
$this->_adjustments[self::right] =
($flags & 0x1) == 0x1 ?
Transform::fromUInt16BE(substr($this->_data, 2, 2)) :
-Transform::fromUInt16BE(substr($this->_data, 2, 2));
$this->_adjustments[self::left] =
($flags & 0x2) == 0x2 ?
Transform::fromUInt16BE(substr($this->_data, 4, 2)) :
-Transform::fromUInt16BE(substr($this->_data, 4, 2));
$this->_adjustments[self::peakRight] =
Transform::fromUInt16BE(substr($this->_data, 6, 2));
$this->_adjustments[self::peakLeft] =
Transform::fromUInt16BE(substr($this->_data, 8, 2));
if ($this->getSize() <= 10)
return;
$this->_adjustments[self::rightBack] =
($flags & 0x4) == 0x4 ?
Transform::fromUInt16BE(substr($this->_data, 10, 2)) :
-Transform::fromUInt16BE(substr($this->_data, 10, 2));
$this->_adjustments[self::leftBack] =
($flags & 0x8) == 0x8 ?
Transform::fromUInt16BE(substr($this->_data, 12, 2)) :
-Transform::fromUInt16BE(substr($this->_data, 12, 2));
$this->_adjustments[self::peakRightBack] =
Transform::fromUInt16BE(substr($this->_data, 14, 2));
$this->_adjustments[self::peakLeftBack] =
Transform::fromUInt16BE(substr($this->_data, 16, 2));
if ($this->getSize() <= 18)
return;
$this->_adjustments[self::center] =
($flags & 0x10) == 0x10 ?
Transform::fromUInt16BE(substr($this->_data, 18, 2)) :
-Transform::fromUInt16BE(substr($this->_data, 18, 2));
$this->_adjustments[self::peakCenter] =
Transform::fromUInt16BE(substr($this->_data, 20, 2));
if ($this->getSize() <= 22)
return;
$this->_adjustments[self::bass] =
($flags & 0x20) == 0x20 ?
Transform::fromUInt16BE(substr($this->_data, 22, 2)) :
-Transform::fromUInt16BE(substr($this->_data, 22, 2));
$this->_adjustments[self::peakBass] =
Transform::fromUInt16BE(substr($this->_data, 24, 2));
}
/**
* Returns the array containing the volume adjustments. The array must contain
* the following keys: right, left, peakRight, peakLeft. It may optionally
* contain the following keys: rightBack, leftBack, peakRightBack,
* peakLeftBack, center, peakCenter, bass, and peakBass.
*
* @return Array
*/
public function getAdjustments() { return $this->_adjustments; }
/**
* Sets the array of volume adjustments. The array must contain the following
* keys: right, left, peakRight, peakLeft. It may optionally contain the
* following keys: rightBack, leftBack, peakRightBack, peakLeftBack, center,
* peakCenter, bass, and peakBass.
*
* @param Array $adjustments The volume adjustments array.
*/
public function setAdjustments($adjustments)
{
$this->_adjustments = $adjustments;
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
$flags = 0;
if ($this->_adjustments[self::right] > 0)
$flags = $flags | 0x1;
if ($this->_adjustments[self::left] > 0)
$flags = $flags | 0x2;
$data = Transform::toInt8(16) .
Transform::toUInt16BE(abs($this->_adjustments[self::right])) .
Transform::toUInt16BE(abs($this->_adjustments[self::left])) .
Transform::toUInt16BE(abs($this->_adjustments[self::peakRight])) .
Transform::toUInt16BE(abs($this->_adjustments[self::peakLeft]));
if (isset($this->_adjustments[self::rightBack]) &&
isset($this->_adjustments[self::leftBack]) &&
isset($this->_adjustments[self::peakRightBack]) &&
isset($this->_adjustments[self::peakLeftBack])) {
if ($this->_adjustments[self::rightBack] > 0)
$flags = $flags | 0x4;
if ($this->_adjustments[self::leftBack] > 0)
$flags = $flags | 0x8;
$data .=
Transform::toUInt16BE(abs($this->_adjustments[self::rightBack])) .
Transform::toUInt16BE(abs($this->_adjustments[self::leftBack])) .
Transform::toUInt16BE(abs($this->_adjustments[self::peakRightBack])) .
Transform::toUInt16BE(abs($this->_adjustments[self::peakLeftBack]));
}
if (isset($this->_adjustments[self::center]) &&
isset($this->_adjustments[self::peakCenter])) {
if ($this->_adjustments[self::center] > 0)
$flags = $flags | 0x10;
$data .=
Transform::toUInt16BE(abs($this->_adjustments[self::center])) .
Transform::toUInt16BE(abs($this->_adjustments[self::peakCenter]));
}
if (isset($this->_adjustments[self::bass]) &&
isset($this->_adjustments[self::peakBass])) {
if ($this->_adjustments[self::bass] > 0)
$flags = $flags | 0x20;
$data .=
Transform::toUInt16BE(abs($this->_adjustments[self::bass])) .
Transform::toUInt16BE(abs($this->_adjustments[self::peakBass]));
}
return Transform::toInt8($flags) . $data;
}
}

View File

@@ -1,314 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* The <i>Reverb</i> is yet another subjective frame, with which you can adjust
* echoes of different kinds. Reverb left/right is the delay between every
* bounce in milliseconds. Reverb bounces left/right is the number of bounces
* that should be made. $FF equals an infinite number of bounces. Feedback is
* the amount of volume that should be returned to the next echo bounce. $00 is
* 0%, $FF is 100%. If this value were $7F, there would be 50% volume reduction
* on the first bounce, 50% of that on the second and so on. Left to left means
* the sound from the left bounce to be played in the left speaker, while left
* to right means sound from the left bounce to be played in the right speaker.
*
* Premix left to right is the amount of left sound to be mixed in the right
* before any reverb is applied, where $00 id 0% and $FF is 100%. Premix right
* to left does the same thing, but right to left. Setting both premix to $FF
* would result in a mono output (if the reverb is applied symmetric). There may
* only be one RVRB frame in each tag.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_RVRB extends ID3_Frame
{
/** @var integer */
private $_reverbLeft;
/** @var integer */
private $_reverbRight;
/** @var integer */
private $_reverbBouncesLeft;
/** @var integer */
private $_reverbBouncesRight;
/** @var integer */
private $_reverbFeedbackLtoL;
/** @var integer */
private $_reverbFeedbackLtoR;
/** @var integer */
private $_reverbFeedbackRtoR;
/** @var integer */
private $_reverbFeedbackRtoL;
/** @var integer */
private $_premixLtoR;
/** @var integer */
private $_premixRtoL;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
$this->_reverbLeft = Transform::fromUInt16BE(substr($this->_data, 0, 2));
$this->_reverbRight = Transform::fromUInt16BE(substr($this->_data, 2, 2));
$this->_reverbBouncesLeft = Transform::fromUInt8($this->_data[4]);
$this->_reverbBouncesRight = Transform::fromUInt8($this->_data[5]);
$this->_reverbFeedbackLtoL = Transform::fromUInt8($this->_data[6]);
$this->_reverbFeedbackLtoR = Transform::fromUInt8($this->_data[7]);
$this->_reverbFeedbackRtoR = Transform::fromUInt8($this->_data[8]);
$this->_reverbFeedbackRtoL = Transform::fromUInt8($this->_data[9]);
$this->_premixLtoR = Transform::fromUInt8($this->_data[10]);
$this->_premixRtoL = Transform::fromUInt8($this->_data[11]);
}
/**
* Returns the left reverb.
*
* @return integer
*/
public function getReverbLeft() { return $this->_reverbLeft; }
/**
* Sets the left reverb.
*
* @param integer $reverbLeft The left reverb.
*/
public function setReverbLeft($reverbLeft)
{
return $this->_reverbLeft = $reverbLeft;
}
/**
* Returns the right reverb.
*
* @return integer
*/
public function getReverbRight() { return $this->_reverbRight; }
/**
* Sets the right reverb.
*
* @param integer $reverbRight The right reverb.
*/
public function setReverbRight($reverbRight)
{
return $this->_reverbRight = $reverbRight;
}
/**
* Returns the left reverb bounces.
*
* @return integer
*/
public function getReverbBouncesLeft() { return $this->_reverbBouncesLeft; }
/**
* Sets the left reverb bounces.
*
* @param integer $reverbBouncesLeft The left reverb bounces.
*/
public function setReverbBouncesLeft($reverbBouncesLeft)
{
$this->_reverbBouncesLeft = $reverbBouncesLeft;
}
/**
* Returns the right reverb bounces.
*
* @return integer
*/
public function getReverbBouncesRight() { return $this->_reverbBouncesRight; }
/**
* Sets the right reverb bounces.
*
* @param integer $reverbBouncesRight The right reverb bounces.
*/
public function setReverbBouncesRight($reverbBouncesRight)
{
$this->_reverbBouncesRight = $reverbBouncesRight;
}
/**
* Returns the left-to-left reverb feedback.
*
* @return integer
*/
public function getReverbFeedbackLtoL() { return $this->_reverbFeedbackLtoL; }
/**
* Sets the left-to-left reverb feedback.
*
* @param integer $reverbFeedbackLtoL The left-to-left reverb feedback.
*/
public function setReverbFeedbackLtoL($reverbFeedbackLtoL)
{
$this->_reverbFeedbackLtoL = $reverbFeedbackLtoL;
}
/**
* Returns the left-to-right reverb feedback.
*
* @return integer
*/
public function getReverbFeedbackLtoR() { return $this->_reverbFeedbackLtoR; }
/**
* Sets the left-to-right reverb feedback.
*
* @param integer $reverbFeedbackLtoR The left-to-right reverb feedback.
*/
public function setReverbFeedbackLtoR($reverbFeedbackLtoR)
{
$this->_reverbFeedbackLtoR = $reverbFeedbackLtoR;
}
/**
* Returns the right-to-right reverb feedback.
*
* @return integer
*/
public function getReverbFeedbackRtoR() { return $this->_reverbFeedbackRtoR; }
/**
* Sets the right-to-right reverb feedback.
*
* @param integer $reverbFeedbackRtoR The right-to-right reverb feedback.
*/
public function setReverbFeedbackRtoR($reverbFeedbackRtoR)
{
$this->_reverbFeedbackRtoR = $reverbFeedbackRtoR;
}
/**
* Returns the right-to-left reverb feedback.
*
* @return integer
*/
public function getReverbFeedbackRtoL() { return $this->_reverbFeedbackRtoL; }
/**
* Sets the right-to-left reverb feedback.
*
* @param integer $reverbFeedbackRtoL The right-to-left reverb feedback.
*/
public function setReverbFeedbackRtoL($reverbFeedbackRtoL)
{
$this->_reverbFeedbackRtoL = $reverbFeedbackRtoL;
}
/**
* Returns the left-to-right premix.
*
* @return integer
*/
public function getPremixLtoR() { return $this->_premixLtoR; }
/**
* Sets the left-to-right premix.
*
* @param integer $premixLtoR The left-to-right premix.
*/
public function setPremixLtoR($premixLtoR)
{
$this->_premixLtoR = $premixLtoR;
}
/**
* Returns the right-to-left premix.
*
* @return integer
*/
public function getPremixRtoL() { return $this->_premixRtoL; }
/**
* Sets the right-to-left premix.
*
* @param integer $premixRtoL The right-to-left premix.
*/
public function setPremixRtoL($premixRtoL)
{
$this->_premixRtoL = $premixRtoL;
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
return
Transform::toUInt16BE($this->_reverbLeft) .
Transform::toUInt16BE($this->_reverbRight) .
Transform::toUInt8($this->_reverbBouncesLeft) .
Transform::toUInt8($this->_reverbBouncesRight) .
Transform::toUInt8($this->_reverbFeedbackLtoL) .
Transform::toUInt8($this->_reverbFeedbackLtoR) .
Transform::toUInt8($this->_reverbFeedbackRtoR) .
Transform::toUInt8($this->_reverbFeedbackRtoL) .
Transform::toUInt8($this->_premixLtoR) .
Transform::toUInt8($this->_premixRtoL);
}
}

View File

@@ -1,104 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @since ID3v2.4.0
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* The <i>Seek</i> frame indicates where other tags in a file/stream can be
* found. The minimum offset to next tag is calculated from the end of this tag
* to the beginning of the next. There may only be one seek frame in a tag.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @since ID3v2.4.0
*/
final class ID3_Frame_SEEK extends ID3_Frame
{
/** @var integer */
private $_minOffset;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
$this->_minOffset = Transform::fromInt32BE($this->_data);
}
/**
* Returns the minimum offset to next tag in bytes.
*
* @return integer
*/
public function getMinimumOffset() { return $this->_minOffset; }
/**
* Sets the minimum offset to next tag in bytes.
*
* @param integer $minOffset The minimum offset.
*/
public function setMinimumOffset($minOffset)
{
$this->_minOffset = $minOffset;
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
return Transform::toInt32BE($this->_minOffset);
}
}

View File

@@ -1,122 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @since ID3v2.4.0
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* This frame enables a group of frames, grouped with the
* <i>Group identification registration</i>, to be signed. Although signatures
* can reside inside the registration frame, it might be desired to store the
* signature elsewhere, e.g. in watermarks. There may be more than one signature
* frame in a tag, but no two may be identical.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @since ID3v2.4.0
*/
final class ID3_Frame_SIGN extends ID3_Frame
{
/** @var integer */
private $_group;
/** @var string */
private $_signature;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
$this->_group = Transform::fromUInt8(substr($this->_data, 0, 1));
$this->_signature = substr($this->_data, 1);
}
/**
* Returns the group symbol byte.
*
* @return integer
*/
public function getGroup() { return $this->_group; }
/**
* Sets the group symbol byte.
*
* @param integer $group The group symbol byte.
*/
public function setGroup($group) { $this->_group = $group; }
/**
* Returns the signature binary data.
*
* @return string
*/
public function getSignature() { return $this->_signature; }
/**
* Sets the signature binary data.
*
* @param string $signature The signature binary data string.
*/
public function setSignature($signature) { $this->_signature = $signature; }
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
return Transform::toUInt8($this->_group) . $this->_signature;
}
}

View File

@@ -1,340 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
require_once("ID3/Encoding.php");
require_once("ID3/Language.php");
require_once("ID3/Timing.php");
/**#@-*/
/**
* The <i>Synchronised lyrics/text</i> frame is another way of incorporating the
* words, said or sung lyrics, in the audio file as text, this time, however,
* in sync with the audio. It might also be used to describing events e.g.
* occurring on a stage or on the screen in sync with the audio.
*
* There may be more than one SYLT frame in each tag, but only one with the
* same language and content descriptor.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_SYLT extends ID3_Frame
implements ID3_Encoding, ID3_Language, ID3_Timing
{
/**
* The list of content types.
*
* @var Array
*/
public static $types = array
("Other", "Lyrics", "Text transcription", "Movement/Part name", "Events",
"Chord", "Trivia", "URLs to webpages", "URLs to images");
/** @var integer */
private $_encoding;
/** @var string */
private $_language = "und";
/** @var integer */
private $_format = ID3_Timing::MPEG_FRAMES;
/** @var integer */
private $_type = 0;
/** @var string */
private $_description;
/** @var Array */
private $_events = array();
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
$this->_encoding = $this->getOption("encoding", ID3_Encoding::UTF8);
if ($reader === null)
return;
$encoding = Transform::fromUInt8($this->_data[0]);
$this->_language = substr($this->_data, 1, 3);
if ($this->_language == "XXX")
$this->_language = "und";
$this->_format = Transform::fromUInt8($this->_data[4]);
$this->_type = Transform::fromUInt8($this->_data[5]);
$this->_data = substr($this->_data, 6);
switch ($encoding) {
case self::UTF16:
list($this->_description, $this->_data) =
$this->_explodeString16($this->_data, 2);
$this->_description = $this->_convertString
(Transform::fromString16($this->_description), "utf-16");
break;
case self::UTF16BE:
list($this->_description, $this->_data) =
$this->_explodeString16($this->_data, 2);
$this->_description = $this->_convertString
(Transform::fromString16($this->_description), "utf-16be");
break;
case self::UTF8:
list($this->_description, $this->_data) =
$this->_explodeString8($this->_data, 2);
$this->_description = $this->_convertString
(Transform::fromString8($this->_description), "utf-8");
break;
default:
list($this->_description, $this->_data) =
$this->_explodeString8($this->_data, 2);
$this->_description = $this->_convertString
(Transform::fromString8($this->_description), "iso-8859-1");
}
while (strlen($this->_data) > 0) {
switch ($encoding) {
case self::UTF16:
list($syllable, $this->_data) =
$this->_explodeString16($this->_data, 2);
$syllable = $this->_convertString
(Transform::fromString16($syllable), "utf-16");
break;
case self::UTF16BE:
list($syllable, $this->_data) =
$this->_explodeString16($this->_data, 2);
$syllable = $this->_convertString
(Transform::fromString16($syllable), "utf-16be");
break;
case self::UTF8:
list($syllable, $this->_data) =
$this->_explodeString8($this->_data, 2);
$syllable = $this->_convertString
(Transform::fromString8($syllable), "utf-8");
break;
default:
list($syllable, $this->_data) =
$this->_explodeString8($this->_data, 2);
$syllable = $this->_convertString
(Transform::fromString8($syllable), "iso-8859-1");
}
$this->_events[Transform::fromUInt32BE(substr($this->_data, 0, 4))] =
$syllable;
$this->_data = substr($this->_data, 4);
}
ksort($this->_events);
}
/**
* Returns the text encoding.
*
* All the strings read from a file are automatically converted to the
* character encoding specified with the <var>encoding</var> option. See
* {@link ID3v2} for details. This method returns the original text encoding
* used to write the frame.
*
* @return integer
*/
public function getEncoding() { return $this->_encoding; }
/**
* Sets the text encoding.
*
* All the string written to the frame are done so using given character
* encoding. No conversions of existing data take place upon the call to this
* method thus all texts must be given in given character encoding.
*
* The default character encoding used to write the frame is UTF-8.
*
* @see ID3_Encoding
* @param integer $encoding The text encoding.
*/
public function setEncoding($encoding) { $this->_encoding = $encoding; }
/**
* Returns the language code as specified in the
* {@link http://www.loc.gov/standards/iso639-2/ ISO-639-2} standard.
*
* @return string
*/
public function getLanguage() { return $this->_language; }
/**
* Sets the text language code as specified in the
* {@link http://www.loc.gov/standards/iso639-2/ ISO-639-2} standard.
*
* @see ID3_Language
* @param string $language The language code.
*/
public function setLanguage($language)
{
if ($language == "XXX")
$language = "und";
$this->_language = substr($language, 0, 3);
}
/**
* Returns the timing format.
*
* @return integer
*/
public function getFormat() { return $this->_format; }
/**
* Sets the timing format.
*
* @see ID3_Timing
* @param integer $format The timing format.
*/
public function setFormat($format) { $this->_format = $format; }
/**
* Returns the content type code.
*
* @return integer
*/
public function getType() { return $this->_type; }
/**
* Sets the content type code.
*
* @param integer $type The content type code.
*/
public function setType($type) { $this->_type = $type; }
/**
* Returns the content description.
*
* @return string
*/
public function getDescription() { return $this->_description; }
/**
* Sets the content description text using given encoding. The description
* language and encoding must be that of the actual text.
*
* @param string $description The content description text.
* @param string $language The language code.
* @param integer $encoding The text encoding.
*/
public function setDescription($description, $language = false,
$encoding = false)
{
$this->_description = $description;
if ($language !== false)
$this->setLanguage($language);
if ($encoding !== false)
$this->setEncoding($encoding);
}
/**
* Returns the syllable events with their timestamps.
*
* @return Array
*/
public function getEvents() { return $this->_events; }
/**
* Sets the syllable events with their timestamps using given encoding.
* The text language and encoding must be that of the description text.
*
* @param Array $text The test string.
* @param string $language The language code.
* @param integer $encoding The text encoding.
*/
public function setEvents($events, $language = false, $encoding = false)
{
$this->_events = $events;
if ($language !== false)
$this->setLanguage($language);
if ($encoding !== false)
$this->setEncoding($encoding);
ksort($this->_events);
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
$data = Transform::toUInt8($this->_encoding) . $this->_language .
Transform::toUInt8($this->_format) . Transform::toUInt8($this->_type);
switch ($this->_encoding) {
case self::UTF16LE:
$data .= Transform::toString16
($this->_description, Transform::LITTLE_ENDIAN_ORDER, 1);
break;
case self::UTF16:
case self::UTF16BE:
$data .= Transform::toString16($this->_description, false, 1);
break;
default:
$data .= $this->_description . "\0";
}
foreach ($this->_events as $timestamp => $syllable) {
switch ($this->_encoding) {
case self::UTF16LE:
$data .= Transform::toString16
($syllable, Transform::LITTLE_ENDIAN_ORDER, 1);
break;
case self::UTF16:
case self::UTF16BE:
$data .= Transform::toString16($syllable, false, 1);
break;
default:
$data .= $syllable . "\0";
}
$data .= Transform::toUInt32BE($timestamp);
}
return $data;
}
}

View File

@@ -1,161 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
require_once("ID3/Timing.php");
/**#@-*/
/**
* For a more accurate description of the tempo of a musical piece, the
* <i>Synchronised tempo codes</i> frame might be used.
*
* The tempo data consists of one or more tempo codes. Each tempo code consists
* of one tempo part and one time part. The tempo is in BPM described with one
* or two bytes. If the first byte has the value $FF, one more byte follows,
* which is added to the first giving a range from 2 - 510 BPM, since $00 and
* $01 is reserved. $00 is used to describe a beat-free time period, which is
* not the same as a music-free time period. $01 is used to indicate one single
* beat-stroke followed by a beat-free period.
*
* The tempo descriptor is followed by a time stamp. Every time the tempo in the
* music changes, a tempo descriptor may indicate this for the player. All tempo
* descriptors must be sorted in chronological order. The first beat-stroke in
* a time-period is at the same time as the beat description occurs. There may
* only be one SYTC frame in each tag.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_SYTC extends ID3_Frame
implements ID3_Timing
{
/** Describes a beat-free time period. */
const BEAT_FREE = 0x00;
/** Indicate one single beat-stroke followed by a beat-free period. */
const SINGLE_BEAT = 0x01;
/** @var integer */
private $_format = ID3_Timing::MPEG_FRAMES;
/** @var Array */
private $_events = array();
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
$offset = 0;
$this->_format = Transform::fromUInt8($this->_data[$offset++]);
while ($offset < strlen($this->_data)) {
$tempo = Transform::fromUInt8($this->_data[$offset++]);
if ($tempo == 0xff)
$tempo += Transform::fromUInt8($this->_data[$offset++]);
$this->_events
[Transform::fromUInt32BE(substr($this->_data, $offset, 4))] = $tempo;
$offset += 4;
}
ksort($this->_events);
}
/**
* Returns the timing format.
*
* @return integer
*/
public function getFormat() { return $this->_format; }
/**
* Sets the timing format.
*
* @see ID3_Timing
* @param integer $format The timing format.
*/
public function setFormat($format) { $this->_format = $format; }
/**
* Returns the time-bpm tempo events.
*
* @return Array
*/
public function getEvents() { return $this->_events; }
/**
* Sets the time-bpm tempo events.
*
* @param Array $events The time-bpm tempo events.
*/
public function setEvents($events)
{
$this->_events = $events;
ksort($this->_events);
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
$data = Transform::toUInt8($this->_format);
foreach ($this->_events as $timestamp => $tempo) {
if ($tempo >= 0xff)
$data .= Transform::toUInt8(0xff) . Transform::toUInt8($tempo - 0xff);
else
$data .= Transform::toUInt8($tempo);
$data .= Transform::toUInt32BE($timestamp);
}
return $data;
}
}

View File

@@ -1,53 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Album/Movie/Show title</i> frame is intended for the title of the
* recording (or source of sound) from which the audio in the file is taken.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TALB extends ID3_Frame_AbstractText {}

View File

@@ -1,53 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>BPM</i> frame contains the number of beats per minute in the main part
* of the audio. The BPM is an integer and represented as a numerical string.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TBPM extends ID3_Frame_AbstractText {}

View File

@@ -1,52 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Composer</i> frame is intended for the name of the composer.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TCOM extends ID3_Frame_AbstractText {}

View File

@@ -1,62 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Content type</i>, which ID3v1 was stored as a one byte numeric value
* only, is now a string. You may use one or several of the ID3v1 types as
* numerical strings, or, since the category list would be impossible to
* maintain with accurate and up to date categories, define your own.
*
* You may also use any of the following keywords:
*
* <pre>
* RX Remix
* CR Cover
* </pre>
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TCON extends ID3_Frame_AbstractText {}

View File

@@ -1,59 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Copyright message</i> frame, in which the string must begin with a
* year and a space character (making five characters), is intended for the
* copyright holder of the original sound, not the audio file itself. The
* absence of this frame means only that the copyright information is
* unavailable or has been removed, and must not be interpreted to mean that the
* audio is public domain. Every time this field is displayed the field must be
* preceded with "Copyright " (C) " ", where (C) is one character showing a C in
* a circle.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TCOP extends ID3_Frame_AbstractText {}

View File

@@ -1,55 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @deprecated ID3v2.3.0
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Date</i> frame is a numeric string in the DDMM format containing the
* date for the recording. This field is always four characters long.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @deprecated ID3v2.3.0
*/
final class ID3_Frame_TDAT extends ID3_Frame_AbstractText {}

View File

@@ -1,56 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @since ID3v2.4.0
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Encoding time</i> frame contains a timestamp describing when the audio
* was encoded. Timestamp format is described in the
* {@link http://www.id3.org/id3v2.4.0-structure ID3v2 structure document}.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @since ID3v2.4.0
*/
final class ID3_Frame_TDEN extends ID3_Frame_AbstractText {}

View File

@@ -1,54 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Playlist delay</i> defines the numbers of milliseconds of silence that
* should be inserted before this audio. The value zero indicates that this is a
* part of a multifile audio track that should be played continuously.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TDLY extends ID3_Frame_AbstractText {}

View File

@@ -1,57 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @since ID3v2.4.0
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Original release time</i> frame contains a timestamp describing when
* the original recording of the audio was released. Timestamp format is
* described in the {@link http://www.id3.org/id3v2.4.0-structure ID3v2
* structure document}.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @since ID3v2.4.0
*/
final class ID3_Frame_TDOR extends ID3_Frame_AbstractText {}

View File

@@ -1,56 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @since ID3v2.4.0
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Recording time</i> frame contains a timestamp describing when the
* audio was recorded. Timestamp format is described in the
* {@link http://www.id3.org/id3v2.4.0-structure ID3v2 structure document}.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @since ID3v2.4.0
*/
final class ID3_Frame_TDRC extends ID3_Frame_AbstractText {}

View File

@@ -1,56 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @since ID3v2.4.0
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Release time</i> frame contains a timestamp describing when the audio
* was first released. Timestamp format is described in the
* {@link http://www.id3.org/id3v2.4.0-structure ID3v2 structure document}.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @since ID3v2.4.0
*/
final class ID3_Frame_TDRL extends ID3_Frame_AbstractText {}

View File

@@ -1,56 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @since ID3v2.4.0
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Tagging time</i> frame contains a timestamp describing then the audio
* was tagged. Timestamp format is described in the
* {@link http://www.id3.org/id3v2.4.0-structure ID3v2 structure document}.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @since ID3v2.4.0
*/
final class ID3_Frame_TDTG extends ID3_Frame_AbstractText {}

View File

@@ -1,54 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Encoded by</i> frame contains the name of the person or organisation
* that encoded the audio file. This field may contain a copyright message, if
* the audio file also is copyrighted by the encoder.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TENC extends ID3_Frame_AbstractText {}

View File

@@ -1,53 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Lyricist/Text writer</i> frame is intended for the writer of the text
* or lyrics in the recording.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TEXT extends ID3_Frame_AbstractText {}

View File

@@ -1,69 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>File type</i> frame indicates which type of audio this tag defines.
* The following types and refinements are defined:
*
* <pre>
* MIME MIME type follows
* MPG MPEG Audio
* /1 MPEG 1/2 layer I
* /2 MPEG 1/2 layer II
* /3 MPEG 1/2 layer III
* /2.5 MPEG 2.5
* /AAC Advanced audio compression
* VQF Transform-domain Weighted Interleave Vector Quantisation
* PCM Pulse Code Modulated audio
* </pre>
*
* but other types may be used, but not for these types though. This is used in
* a similar way to the predefined types in the {@link ID3_Frame_TMED}
* frame. If this frame is not present audio type is assumed to be MPG.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TFLT extends ID3_Frame_AbstractText {}

View File

@@ -1,55 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @deprecated ID3v2.3.0
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Time</i> frame is a numeric string in the HHMM format containing the
* time for the recording. This field is always four characters long.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @deprecated ID3v2.3.0
*/
final class ID3_Frame_TIME extends ID3_Frame_AbstractText {}

View File

@@ -1,55 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @since ID3v2.4.0
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Involved people list</i> is very similar to the musician credits list,
* but maps between functions, like producer, and names.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @since ID3v2.4.0
*/
final class ID3_Frame_TIPL extends ID3_Frame_AbstractText {}

View File

@@ -1,54 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Content group description</i> frame is used if the sound belongs to a
* larger category of sounds/music. For example, classical music is often sorted
* in different musical sections (e.g. "Piano Concerto", "Weather - Hurricane").
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TIT1 extends ID3_Frame_AbstractText {}

View File

@@ -1,53 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Title/Songname/Content description</i> frame is the actual name of the
* piece (e.g. "Adagio", "Hurricane Donna").
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TIT2 extends ID3_Frame_AbstractText {}

View File

@@ -1,54 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Subtitle/Description refinement</i> frame is used for information
* directly related to the contents title (e.g. "Op. 16" or "Performed live at
* Wembley").
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TIT3 extends ID3_Frame_AbstractText {}

View File

@@ -1,56 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Initial key</i> frame contains the musical key in which the sound
* starts. It is represented as a string with a maximum length of three
* characters. The ground keys are represented with "A", "B", "C", "D", "E", "F"
* and "G" and halfkeys represented with "b" and "#". Minor is represented as
* "m", e.g. "Dbm" $00. Off key is represented with an "o" only.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TKEY extends ID3_Frame_AbstractText {}

View File

@@ -1,57 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Language</i> frame should contain the languages of the text or lyrics
* spoken or sung in the audio. The language is represented with three
* characters according to {@link http://www.loc.gov/standards/iso639-2/
* ISO-639-2}. If more than one language is used in the text their language
* codes should follow according to the amount of their usage, e.g.
* "eng" $00 "sve" $00.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TLAN extends ID3_Frame_AbstractText {}

View File

@@ -1,53 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Length</i> frame contains the length of the audio file in
* milliseconds, represented as a numeric string.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TLEN extends ID3_Frame_AbstractText {}

View File

@@ -1,56 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @since ID3v2.4.0
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Musician credits list</i> is intended as a mapping between instruments
* and the musician that played it. Every odd field is an instrument and every
* even is an artist or a comma delimited list of artists.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @since ID3v2.4.0
*/
final class ID3_Frame_TMCL extends ID3_Frame_AbstractText {}

View File

@@ -1,55 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @since ID3v2.4.0
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Mood</i> frame is intended to reflect the mood of the audio with a few
* keywords, e.g. "Romantic" or "Sad".
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @since ID3v2.4.0
*/
final class ID3_Frame_TMOO extends ID3_Frame_AbstractText {}

View File

@@ -1,54 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Original album/movie/show title</i> frame is intended for the title of
* the original recording (or source of sound), if for example the music in the
* file should be a cover of a previously released song.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TOAL extends ID3_Frame_AbstractText {}

View File

@@ -1,54 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Original filename</i> frame contains the preferred filename for the
* file, since some media doesn't allow the desired length of the filename. The
* filename is case sensitive and includes its suffix.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TOFN extends ID3_Frame_AbstractText {}

View File

@@ -1,54 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Original lyricist/text writer</i> frame is intended for the text
* writer of the original recording, if for example the music in the file should
* be a cover of a previously released song.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TOLY extends ID3_Frame_AbstractText {}

View File

@@ -1,54 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Original artist/performer</i> frame is intended for the performer of
* the original recording, if for example the music in the file should be a
* cover of a previously released song.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TOPE extends ID3_Frame_AbstractText {}

View File

@@ -1,57 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @deprecated ID3v2.3.0
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Original release year</i> frame is intended for the year when the
* original recording, if for example the music in the file should be a cover of
* a previously released song, was released. The field is formatted as in the
* {@link ID3_Frame_TYER} frame.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @deprecated ID3v2.3.0
*/
final class ID3_Frame_TORY extends ID3_Frame_AbstractText {}

View File

@@ -1,53 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>File owner/licensee</i> frame contains the name of the owner or
* licensee of the file and it's contents.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TOWN extends ID3_Frame_AbstractText {}

View File

@@ -1,53 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Lead artist/Lead performer/Soloist/Performing group</i> is used for
* the main artist.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TPE1 extends ID3_Frame_AbstractText {}

View File

@@ -1,53 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Band/Orchestra/Accompaniment</i> frame is used for additional
* information about the performers in the recording.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TPE2 extends ID3_Frame_AbstractText {}

View File

@@ -1,52 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Conductor</i> frame is used for the name of the conductor.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TPE3 extends ID3_Frame_AbstractText {}

View File

@@ -1,54 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Interpreted, remixed, or otherwise modified by</i> frame contains more
* information about the people behind a remix and similar interpretations of
* another existing piece.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TPE4 extends ID3_Frame_AbstractText {}

View File

@@ -1,56 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Part of a set</i> frame is a numeric string that describes which part
* of a set the audio came from. This frame is used if the source described in
* the {@link ID3_Frame_TALB} frame is divided into several mediums, e.g.
* a double CD. The value may be extended with a "/" character and a numeric
* string containing the total number of parts in the set. E.g. "1/2".
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TPOS extends ID3_Frame_AbstractText {}

View File

@@ -1,61 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @since ID3v2.4.0
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Produced notice</i> frame, in which the string must begin with a year
* and a space character (making five characters), is intended for the
* production copyright holder of the original sound, not the audio file itself.
* The absence of this frame means only that the production copyright
* information is unavailable or has been removed, and must not be interpreted
* to mean that the audio is public domain. Every time this field is displayed
* the field must be preceded with "Produced " (P) " ", where (P) is one
* character showing a P in a circle.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @since ID3v2.4.0
*/
final class ID3_Frame_TPRO extends ID3_Frame_AbstractText {}

View File

@@ -1,53 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Publisher</i> frame simply contains the name of the label or
* publisher.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TPUB extends ID3_Frame_AbstractText {}

View File

@@ -1,55 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Track number/Position in set</i> frame is a numeric string containing
* the order number of the audio-file on its original recording. This may be
* extended with a "/" character and a numeric string containing the total
* number of tracks/elements on the original recording. E.g. "4/9".
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TRCK extends ID3_Frame_AbstractText {}

View File

@@ -1,57 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @deprecated ID3v2.3.0
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Recording dates</i> frame is intended to be used as complement to
* the {@link ID3_Frame_TYER}, {@link ID3_Frame_TDAT} and {@link ID3_Frame_TIME}
* frames. E.g. "4th-7th June, 12th June" in combination with the
* {@link ID3_Frame_TYER} frame.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @deprecated ID3v2.3.0
*/
final class ID3_Frame_TRDA extends ID3_Frame_AbstractText {}

View File

@@ -1,53 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Internet radio station name</i> frame contains the name of the
* internet radio station from which the audio is streamed.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TRSN extends ID3_Frame_AbstractText {}

View File

@@ -1,53 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Internet radio station owner</i> frame contains the name of the owner
* of the internet radio station from which the audio is streamed.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TRSO extends ID3_Frame_AbstractText {}

View File

@@ -1,55 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @deprecated ID3v2.3.0
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Size</i> frame contains the size of the audiofile in bytes, excluding
* the ID3v2 tag, represented as a numeric string.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @deprecated ID3v2.3.0
*/
final class ID3_Frame_TSIZ extends ID3_Frame_AbstractText {}

View File

@@ -1,55 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @since ID3v2.4.0
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Album sort order</i> frame defines a string which should be used
* instead of the {@link ID3_Frame_TALB} album name frame for sorting purposes.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @since ID3v2.4.0
*/
final class ID3_Frame_TSOA extends ID3_Frame_AbstractText {}

View File

@@ -1,55 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @since ID3v2.4.0
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Performer sort order</i> frame defines a string which should be used
* instead of the {@link ID3_Frame_TPE2} performer frame for sorting purposes.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @since ID3v2.4.0
*/
final class ID3_Frame_TSOP extends ID3_Frame_AbstractText {}

View File

@@ -1,55 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @since ID3v2.4.0
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Title sort order</i> frame defines a string which should be used
* instead of the {@link ID3_Frame_TIT2} title frame for sorting purposes.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @since ID3v2.4.0
*/
final class ID3_Frame_TSOT extends ID3_Frame_AbstractText {}

View File

@@ -1,53 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>ISRC</i> frame should contain the International Standard Recording
* Code (12 characters).
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_ISRC extends ID3_Frame_AbstractText {}

View File

@@ -1,54 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Software/Hardware and settings used for encoding</i> frame includes
* the used audio encoder and its settings when the file was encoded. Hardware
* refers to hardware encoders, not the computer on which a program was run.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TSSE extends ID3_Frame_AbstractText {}

View File

@@ -1,55 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @since ID3v2.4.0
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Set subtitle</i> frame is intended for the subtitle of the part of a
* set this track belongs to.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @since ID3v2.4.0
*/
final class ID3_Frame_TSST extends ID3_Frame_AbstractText {}

View File

@@ -1,159 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* This frame is intended for one-string text information concerning the audio
* file in a similar way to the other T-frames. The frame body consists of a
* description of the string, represented as a terminated string, followed by
* the actual string. There may be more than one TXXX frame in each tag, but
* only one with the same description.
*
* The description is the first value, and the its value the second in the text
* array.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_TXXX extends ID3_Frame_AbstractText
{
/** @var string */
private $_description;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
ID3_Frame::__construct($reader, $options);
$this->_encoding = $this->getOption("encoding", ID3_Encoding::UTF8);
if ($reader === null)
return;
$encoding = Transform::fromUInt8($this->_data[0]);
$this->_data = substr($this->_data, 1);
switch ($encoding) {
case self::UTF16:
list($this->_description, $this->_text) =
$this->_explodeString16($this->_data, 2);
$this->_description = $this->_convertString
(Transform::fromString16($this->_description), "utf-16");
$this->_text = $this->_convertString
(array(Transform::fromString16($this->_text)), "utf-16");
break;
case self::UTF16BE:
list($this->_description, $this->_text) =
$this->_explodeString16($this->_data, 2);
$this->_description = $this->_convertString
(Transform::fromString16($this->_description), "utf-16be");
$this->_text = $this->_convertString
(array(Transform::fromString16($this->_text)), "utf-16be");
break;
case self::UTF8:
list($this->_description, $this->_text) = $this->_convertString
($this->_explodeString8($this->_data, 2), "utf-8");
$this->_text = array($this->_text);
break;
default:
list($this->_description, $this->_text) = $this->_convertString
($this->_explodeString8($this->_data, 2), "iso-8859-1");
$this->_text = array($this->_text);
}
}
/**
* Returns the description text.
*
* @return string
*/
public function getDescription() { return $this->_description; }
/**
* Sets the description text using given encoding.
*
* @param string $description The content description text.
* @param integer $encoding The text encoding.
*/
public function setDescription($description, $encoding = false)
{
$this->_description = $description;
if ($encoding !== false)
$this->_encoding = $encoding;
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
$data = Transform::toUInt8($this->_encoding);
switch ($this->_encoding) {
case self::UTF16LE:
$data .= Transform::toString16
($this->_description, Transform::LITTLE_ENDIAN_ORDER, 1) .
Transform::toString16
($this->_text[0], Transform::LITTLE_ENDIAN_ORDER, 1);
break;
case self::UTF16:
case self::UTF16BE:
$data .= Transform::toString16($this->_description, false, 1) .
Transform::toString16($this->_text[0], false, 1);
break;
default:
$data .= $this->_description . "\0" . $this->_text[0];
}
return $data;
}
}

View File

@@ -1,55 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
* @deprecated ID3v2.3.0
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractText.php");
/**#@-*/
/**
* The <i>Year</i> frame is a numeric string with a year of the recording. This
* frames is always four characters long (until the year 10000).
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
* @deprecated ID3v2.3.0
*/
final class ID3_Frame_TYER extends ID3_Frame_AbstractText {}

View File

@@ -1,205 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
require_once("ID3/Encoding.php");
require_once("ID3/Language.php");
/**#@-*/
/**
* The <i>Terms of use frame</i> contains a brief description of the terms of
* use and ownership of the file. More detailed information concerning the legal
* terms might be available through the {@link ID3_Frame_WCOP} frame. Newlines
* are allowed in the text. There may be more than one Terms of use frames in a
* tag, but only one with the same language.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_USER extends ID3_Frame
implements ID3_Encoding, ID3_Language
{
/** @var integer */
private $_encoding;
/** @var string */
private $_language = "und";
/** @var string */
private $_text;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
$this->_encoding = $this->getOption("encoding", ID3_Encoding::UTF8);
if ($reader === null)
return;
$encoding = Transform::fromUInt8($this->_data[0]);
$this->_language = substr($this->_data, 1, 3);
if ($this->_language == "XXX")
$this->_language = "und";
$this->_data = substr($this->_data, 4);
switch ($encoding) {
case self::UTF16:
$this->_text = $this->_convertString
(Transform::fromString16($this->_data), "utf-16");
break;
case self::UTF16BE:
$this->_text = $this->_convertString
(Transform::fromString16($this->_data), "utf-16be");
break;
case self::UTF8:
$this->_text = $this->_convertString
(Transform::fromString8($this->_data), "utf-8");
break;
default:
$this->_text = $this->_convertString
(Transform::fromString8($this->_data), "iso-8859-1");
}
}
/**
* Returns the text encoding.
*
* All the strings read from a file are automatically converted to the
* character encoding specified with the <var>encoding</var> option. See
* {@link ID3v2} for details. This method returns the original text encoding
* used to write the frame.
*
* @return integer
*/
public function getEncoding() { return $this->_encoding; }
/**
* Sets the text encoding.
*
* All the string written to the frame are done so using given character
* encoding. No conversions of existing data take place upon the call to this
* method thus all texts must be given in given character encoding.
*
* The default character encoding used to write the frame is UTF-8.
*
* @see ID3_Encoding
* @param integer $encoding The text encoding.
*/
public function setEncoding($encoding) { $this->_encoding = $encoding; }
/**
* Returns the language code as specified in the
* {@link http://www.loc.gov/standards/iso639-2/ ISO-639-2} standard.
*
* @return string
*/
public function getLanguage() { return $this->_language; }
/**
* Sets the text language code as specified in the
* {@link http://www.loc.gov/standards/iso639-2/ ISO-639-2} standard.
*
* @see ID3_Language
* @param string $language The language code.
*/
public function setLanguage($language)
{
if ($language == "XXX")
$language = "und";
$this->_language = substr($language, 0, 3);
}
/**
* Returns the text.
*
* @return string
*/
public function getText() { return $this->_text; }
/**
* Sets the text using given language and encoding.
*
* @param string $text The text.
* @param string $language The language code.
* @param integer $encoding The text encoding.
*/
public function setText($text, $language = false, $encoding = false)
{
$this->_text = $text;
if ($language !== false)
$this->setLanguage($language);
if ($encoding !== false)
$this->setEncoding($encoding);
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
$data = Transform::toUInt8($this->_encoding) . $this->_language;
switch ($this->_encoding) {
case self::UTF16LE:
$data .= Transform::toString16
($this->_text, Transform::MACHINE_ENDIAN_ORDER);
break;
case self::UTF16:
case self::UTF16BE:
$data .= Transform::toString16($this->_text);
break;
default:
$data .= $this->_text;
}
return $data;
}
}

View File

@@ -1,251 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
require_once("ID3/Encoding.php");
require_once("ID3/Language.php");
/**#@-*/
/**
* The <i>Unsynchronised lyrics/text transcription</i> frame contains the lyrics
* of the song or a text transcription of other vocal activities. There may be
* more than one unsynchronised lyrics/text transcription frame in each tag, but
* only one with the same language and content descriptor.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_USLT extends ID3_Frame
implements ID3_Encoding, ID3_Language
{
/** @var integer */
private $_encoding;
/** @var string */
private $_language = "und";
/** @var string */
private $_description;
/** @var string */
private $_text;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
$this->_encoding = $this->getOption("encoding", ID3_Encoding::UTF8);
if ($reader === null)
return;
$encoding = Transform::fromUInt8($this->_data[0]);
$this->_language = substr($this->_data, 1, 3);
if ($this->_language == "XXX")
$this->_language = "und";
$this->_data = substr($this->_data, 4);
switch ($encoding) {
case self::UTF16:
list ($this->_description, $this->_text) =
$this->_explodeString16($this->_data, 2);
$this->_description = $this->_convertString
(Transform::fromString16($this->_description), "utf-16");
$this->_text = $this->_convertString
(Transform::fromString16($this->_text), "utf-16");
break;
case self::UTF16BE:
list ($this->_description, $this->_text) =
$this->_explodeString16($this->_data, 2);
$this->_description = $this->_convertString
(Transform::fromString16($this->_description), "utf-16be");
$this->_text = $this->_convertString
(Transform::fromString16($this->_text), "utf-16be");
break;
case self::UTF8:
list ($this->_description, $this->_text) =
$this->_explodeString8($this->_data, 2);
$this->_description = $this->_convertString
(Transform::fromString8($this->_description), "utf-8");
$this->_text = $this->_convertString
(Transform::fromString8($this->_text), "utf-8");
break;
default:
list ($this->_description, $this->_text) =
$this->_explodeString8($this->_data, 2);
$this->_description = $this->_convertString
(Transform::fromString8($this->_description), "iso-8859-1");
$this->_text = $this->_convertString
(Transform::fromString8($this->_text), "iso-8859-1");
}
}
/**
* Returns the text encoding.
*
* All the strings read from a file are automatically converted to the
* character encoding specified with the <var>encoding</var> option. See
* {@link ID3v2} for details. This method returns the original text encoding
* used to write the frame.
*
* @return integer
*/
public function getEncoding() { return $this->_encoding; }
/**
* Sets the text encoding.
*
* All the string written to the frame are done so using given character
* encoding. No conversions of existing data take place upon the call to this
* method thus all texts must be given in given character encoding.
*
* The default character encoding used to write the frame is UTF-8.
*
* @see ID3_Encoding
* @param integer $encoding The text encoding.
*/
public function setEncoding($encoding) { $this->_encoding = $encoding; }
/**
* Returns the language code as specified in the
* {@link http://www.loc.gov/standards/iso639-2/ ISO-639-2} standard.
*
* @return string
*/
public function getLanguage() { return $this->_language; }
/**
* Sets the text language code as specified in the
* {@link http://www.loc.gov/standards/iso639-2/ ISO-639-2} standard.
*
* @see ID3_Language
* @param string $language The language code.
*/
public function setLanguage($language)
{
if ($language == "XXX")
$language = "und";
$this->_language = substr($language, 0, 3);
}
/**
* Returns the short content description.
*
* @return string
*/
public function getDescription() { return $this->_description; }
/**
* Sets the content description text using given encoding. The description
* language and encoding must be that of the actual text.
*
* @param string $description The content description text.
* @param string $language The language code.
* @param integer $encoding The text encoding.
*/
public function setDescription($description, $language = false,
$encoding = false)
{
$this->_description = $description;
if ($language !== false)
$this->setLanguage($language);
if ($encoding !== false)
$this->setEncoding($encoding);
}
/**
* Returns the lyrics/text.
*
* @return string
*/
public function getText() { return $this->_text; }
/**
* Sets the text using given encoding. The text language and encoding must be
* that of the description text.
*
* @param mixed $text The test string.
* @param string $language The language code.
* @param integer $encoding The text encoding.
*/
public function setText($text, $language = false, $encoding = false)
{
$this->_text = $text;
if ($language !== false)
$this->setLanguage($language);
if ($encoding !== false)
$this->setEncoding($encoding);
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
$data = Transform::toUInt8($this->_encoding) . $this->_language;
switch ($this->_encoding) {
case self::UTF16LE:
$data .= Transform::toString16
($this->_description, Transform::LITTLE_ENDIAN_ORDER) . "\0\0" .
Transform::toString16($this->_text, Transform::LITTLE_ENDIAN_ORDER);
break;
case self::UTF16:
case self::UTF16BE:
$data .= Transform::toString16($this->_description) . "\0\0" .
Transform::toString16($this->_text);
break;
default:
$data .= $this->_description . "\0" . $this->_text;
}
return $data;
}
}

View File

@@ -1,60 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2009 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame.php");
/**#@-*/
/**
* This class represents a frame that is not known to the library.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_Unknown extends ID3_Frame
{
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData() { return $this->_data; }
}

View File

@@ -1,54 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractLink.php");
/**#@-*/
/**
* The <i>Commercial information</i> frame is a URL pointing at a webpage with
* information such as where the album can be bought. There may be more than one
* WCOM frame in a tag, but not with the same content.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_WCOM extends ID3_Frame_AbstractLink {}

View File

@@ -1,53 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractLink.php");
/**#@-*/
/**
* The <i>Copyright/Legal information</i> frame is a URL pointing at a webpage
* where the terms of use and ownership of the file is described.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_WCOP extends ID3_Frame_AbstractLink {}

View File

@@ -1,53 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractLink.php");
/**#@-*/
/**
* The <i>Official audio file webpage</i> frame is a URL pointing at a file
* specific webpage.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_WOAF extends ID3_Frame_AbstractLink {}

View File

@@ -1,54 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractLink.php");
/**#@-*/
/**
* The <i>Official artist/performer webpage</i> frame is a URL pointing at the
* artists official webpage. There may be more than one WOAR frame in a tag if
* the audio contains more than one performer, but not with the same content.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_WOAR extends ID3_Frame_AbstractLink {}

View File

@@ -1,53 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractLink.php");
/**#@-*/
/**
* The <i>Official audio source webpage</i> frame is a URL pointing at the
* official webpage for the source of the audio file, e.g. a movie.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_WOAS extends ID3_Frame_AbstractLink {}

View File

@@ -1,53 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractLink.php");
/**#@-*/
/**
* The <i>Official Internet radio station homepage</i> contains a URL pointing
* at the homepage of the internet radio station.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_WORS extends ID3_Frame_AbstractLink {}

View File

@@ -1,53 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractLink.php");
/**#@-*/
/**
* The <i>Payment</i> frame is a URL pointing at a webpage that will handle the
* process of paying for this file.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_WPAY extends ID3_Frame_AbstractLink {}

View File

@@ -1,53 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractLink.php");
/**#@-*/
/**
* The <i>Publishers official webpage</i> frame is a URL pointing at the
* official webpage for the publisher.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_WPUB extends ID3_Frame_AbstractLink {}

View File

@@ -1,181 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Frame/AbstractLink.php");
require_once("ID3/Encoding.php");
/**#@-*/
/**
* This frame is intended for URL links concerning the audio file in a similar
* way to the other "W"-frames. The frame body consists of a description of the
* string, represented as a terminated string, followed by the actual URL. The
* URL is always encoded with ISO-8859-1. There may be more than one "WXXX"
* frame in each tag, but only one with the same description.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Frame_WXXX extends ID3_Frame_AbstractLink
implements ID3_Encoding
{
/** @var integer */
private $_encoding;
/** @var string */
private $_description;
/**
* Constructs the class with given parameters and parses object related data.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
ID3_Frame::__construct($reader, $options);
$this->_encoding = $this->getOption("encoding", ID3_Encoding::UTF8);
if ($reader === null)
return;
$encoding = Transform::fromUInt8($this->_data[0]);
$this->_data = substr($this->_data, 1);
switch ($encoding) {
case self::UTF16:
list($this->_description, $this->_link) =
$this->_explodeString16($this->_data, 2);
$this->_description = $this->_convertString
(Transform::fromString16($this->_description), "utf-16");
break;
case self::UTF16BE:
list($this->_description, $this->_link) =
$this->_explodeString16($this->_data, 2);
$this->_description = $this->_convertString
(Transform::fromString16($this->_description), "utf-16be");
break;
case self::UTF8:
list($this->_description, $this->_link) =
$this->_explodeString8($this->_data, 2);
$this->_description = $this->_convertString($this->_description, "utf-8");
break;
default:
list($this->_description, $this->_link) =
$this->_explodeString8($this->_data, 2);
$this->_description = $this->_convertString
($this->_description, "iso-8859-1");
}
$this->_link = implode($this->_explodeString8($this->_link, 1), "");
}
/**
* Returns the text encoding.
*
* All the strings read from a file are automatically converted to the
* character encoding specified with the <var>encoding</var> option. See
* {@link ID3v2} for details. This method returns the original text encoding
* used to write the frame.
*
* @return integer The encoding.
*/
public function getEncoding() { return $this->_encoding; }
/**
* Sets the text encoding.
*
* All the string written to the frame are done so using given character
* encoding. No conversions of existing data take place upon the call to this
* method thus all texts must be given in given character encoding.
*
* The default character encoding used to write the frame is UTF-8.
*
* @see ID3_Encoding
* @param integer $encoding The text encoding.
*/
public function setEncoding($encoding) { $this->_encoding = $encoding; }
/**
* Returns the link description.
*
* @return string
*/
public function getDescription() { return $this->_description; }
/**
* Sets the content description text using given encoding.
*
* @param string $description The content description text.
* @param integer $encoding The text encoding.
*/
public function setDescription($description, $encoding = false)
{
$this->_description = $description;
if ($encoding !== false)
$this->_encoding = $encoding;
}
/**
* Returns the frame raw data without the header.
*
* @return string
*/
protected function _getData()
{
$data = Transform::toUInt8($this->_encoding);
switch ($this->_encoding) {
case self::UTF16LE:
$data .= Transform::toString16
($this->_description, Tranform::LITTLE_ENDIAN_ORDER, 1);
break;
case self::UTF16:
case self::UTF16BE:
$data .= Transform::toString16($this->_description, false, 1);
break;
default:
$data .= Transform::toString8($this->_description, 1);
}
return $data . $this->_link;
}
}

View File

@@ -1,174 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**#@+ @ignore */
require_once("ID3/Object.php");
/**#@-*/
/**
* The first part of the ID3v2 tag is the 10 byte tag header. The header
* contains information about the tag version and options.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
final class ID3_Header extends ID3_Object
{
/** A flag to denote whether or not unsynchronisation is applied on all
frames */
const UNSYNCHRONISATION = 128;
/** A flag to denote whether or not the header is followed by an extended
header */
const EXTENDEDHEADER = 64;
/** A flag used as an experimental indicator. This flag shall always be set
when the tag is in an experimental stage. */
const EXPERIMENTAL = 32;
/**
* A flag to denote whether a footer is present at the very end of the tag.
*
* @since ID3v2.4.0
*/
const FOOTER = 16;
/** @var integer */
private $_version = 4.0;
/** @var integer */
private $_flags = 0;
/** @var integer */
private $_size;
/**
* Constructs the class with given parameters and reads object related data
* from the ID3v2 tag.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
parent::__construct($reader, $options);
if ($reader === null)
return;
$this->_version = $options["version"] =
$this->_reader->readInt8() + $this->_reader->readInt8() / 10;
$this->_flags = $this->_reader->readInt8();
$this->_size = $this->_decodeSynchsafe32($this->_reader->readUInt32BE());
}
/**
* Returns the tag version number. The version number is in the form of
* major.revision.
*
* @return integer
*/
public function getVersion() { return $this->_version; }
/**
* Sets the tag version number. Supported version numbers are 3.0 and 4.0
* for ID3v2.3.0 and ID3v2.4.0 standards, respectively.
*
* @param integer $version The tag version number in the form of
* major.revision.
*/
public function setVersion($version)
{
$this->setOption("version", $this->_version = $version);
}
/**
* Checks whether or not the flag is set. Returns <var>true</var> if the flag
* is set, <var>false</var> otherwise.
*
* @param integer $flag The flag to query.
* @return boolean
*/
public function hasFlag($flag) { return ($this->_flags & $flag) == $flag; }
/**
* Returns the flags byte.
*
* @return integer
*/
public function getFlags() { return $this->_flags; }
/**
* Sets the flags byte.
*
* @param string $flags The flags byte.
*/
public function setFlags($flags) { $this->_flags = $flags; }
/**
* Returns the tag size, excluding the header and the footer.
*
* @return integer
*/
public function getSize() { return $this->_size; }
/**
* Sets the tag size, excluding the header and the footer. Called
* automatically upon tag generation to adjust the tag size.
*
* @param integer $size The size of the tag, in bytes.
*/
public function setSize($size) { $this->_size = $size; }
/**
* Returns the header/footer data without the identifier.
*
* @return string
*/
public function __toString()
{
return Transform::toInt8(floor($this->_version)) .
Transform::toInt8(($this->_version - floor($this->_version)) * 10) .
Transform::toInt8($this->_flags) .
Transform::toUInt32BE($this->_encodeSynchsafe32($this->_size));
}
}

View File

@@ -1,69 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008 The PHP Reader Project Workgroup. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**
* The <var>Language</var> interface implies that the ID3v2 frame supports
* its content to be given in multiple languages.
*
* The three byte language code is used to describe the language of the frame's
* content, according to {@link http://www.loc.gov/standards/iso639-2/
* ISO-639-2}. The language should be represented in lower case. If the language
* is not known the string "xxx" should be used.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
interface ID3_Language
{
/**
* Returns the text language code.
*
* @return string
*/
public function getLanguage();
/**
* Sets the text language code.
*
* @param string $language The text language code.
*/
public function setLanguage($language);
}

View File

@@ -1,303 +0,0 @@
<?php
/**
* PHP Reader Library
*
* Copyright (c) 2008-2009 The PHP Reader Project Workgroup. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the project workgroup nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package php-reader
* @subpackage ID3
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Id$
*/
/**
* The base class for all ID3v2 objects.
*
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
*/
abstract class ID3_Object
{
/**
* The reader object.
*
* @var Reader
*/
protected $_reader;
/**
* The options array.
*
* @var Array
*/
private $_options;
/**
* Constructs the class with given parameters.
*
* @param Reader $reader The reader object.
* @param Array $options The options array.
*/
public function __construct($reader = null, &$options = array())
{
$this->_reader = $reader;
$this->_options = &$options;
}
/**
* Returns the options array.
*
* @return Array
*/
public final function getOptions() { return $this->_options; }
/**
* Returns the given option value, or the default value if the option is not
* defined.
*
* @param string $option The name of the option.
* @param mixed $defaultValue The default value to be returned.
*/
public final function getOption($option, $defaultValue = false)
{
if (isset($this->_options[$option]))
return $this->_options[$option];
return $defaultValue;
}
/**
* Sets the options array. See {@link ID3v2} class for available options.
*
* @param Array $options The options array.
*/
public final function setOptions(&$options) { $this->_options = &$options; }
/**
* Sets the given option the given value.
*
* @param string $option The name of the option.
* @param mixed $value The value to set for the option.
*/
public final function setOption($option, $value)
{
$this->_options[$option] = $value;
}
/**
* Magic function so that $obj->value will work.
*
* @param string $name The field name.
* @return mixed
*/
public function __get($name)
{
if (method_exists($this, "get" . ucfirst($name)))
return call_user_func(array($this, "get" . ucfirst($name)));
else {
require_once("ID3/Exception.php");
throw new ID3_Exception("Unknown field: " . $name);
}
}
/**
* Magic function so that assignments with $obj->value will work.
*
* @param string $name The field name.
* @param string $value The field value.
* @return mixed
*/
public function __set($name, $value)
{
if (method_exists($this, "set" . ucfirst($name)))
call_user_func
(array($this, "set" . ucfirst($name)), $value);
else {
require_once("ID3/Exception.php");
throw new ID3_Exception("Unknown field: " . $name);
}
}
/**
* Encodes the given 32-bit integer to 28-bit synchsafe integer, where the
* most significant bit of each byte is zero, making seven bits out of eight
* available.
*
* @param integer $val The integer to encode.
* @return integer
*/
protected final function _encodeSynchsafe32($val)
{
return ($val & 0x7f) | ($val & 0x3f80) << 1 |
($val & 0x1fc000) << 2 | ($val & 0xfe00000) << 3;
}
/**
* Decodes the given 28-bit synchsafe integer to regular 32-bit integer.
*
* @param integer $val The integer to decode
* @return integer
*/
protected final function _decodeSynchsafe32($val)
{
return ($val & 0x7f) | ($val & 0x7f00) >> 1 |
($val & 0x7f0000) >> 2 | ($val & 0x7f000000) >> 3;
}
/**
* Applies the unsynchronisation scheme to the given data string.
*
* Whenever a false synchronisation is found within the data, one zeroed byte
* is inserted after the first false synchronisation byte. This has the side
* effect that all 0xff00 combinations have to be altered, so they will not
* be affected by the decoding process. Therefore all the 0xff00 combinations
* have to be replaced with the 0xff0000 combination during the
* unsynchronisation.
*
* @param string $data The input data.
* @return string
*/
protected final function _encodeUnsynchronisation(&$data)
{
$result = "";
for ($i = 0, $j = 0; $i < strlen($data) - 1; $i++)
if (ord($data[$i]) == 0xff &&
((($tmp = ord($data[$i + 1])) & 0xe0) == 0xe0 || $tmp == 0x0)) {
$result .= substr($data, $j, $i + 1 - $j) . "\0";
$j = $i + 1;
}
return $result . substr($data, $j);
}
/**
* Reverses the unsynchronisation scheme from the given data string.
*
* @see _encodeUnsynchronisation
* @param string $data The input data.
* @return string
*/
protected final function _decodeUnsynchronisation(&$data)
{
$result = "";
for ($i = 0, $j = 0; $i < strlen($data) - 1; $i++)
if (ord($data[$i]) == 0xff && ord($data[$i + 1]) == 0x0) {
$result .= substr($data, $j, $i + 1 - $j);
$j = $i + 2;
}
return $result . substr($data, $j);
}
/**
* Splits UTF-16 formatted binary data up according to null terminators
* residing in the string, up to a given limit.
*
* @param string $value The input string.
* @return Array
*/
protected final function _explodeString16($value, $limit = null)
{
$i = 0;
$array = array();
while (count($array) < $limit - 1 || $limit === null) {
$start = $i;
do {
$i = strpos($value, "\x00\x00", $i);
if ($i === false) {
$array[] = substr($value, $start);
return $array;
}
} while ($i & 0x1 != 0 && $i++); // make sure its aligned
$array[] = substr($value, $start, $i - $start);
$i += 2;
}
$array[] = substr($value, $i);
return $array;
}
/**
* Splits UTF-8 or ISO-8859-1 formatted binary data according to null
* terminators residing in the string, up to a given limit.
*
* @param string $value The input string.
* @return Array
*/
protected final function _explodeString8($value, $limit = null)
{
return preg_split("/\\x00/", $value, $limit);
}
/**
* Converts string to requested character encoding and returns it. See the
* documentation of iconv for accepted values for encoding.
*
* @param string|Array $string
* @param string $encoding
*/
protected final function _convertString($string, $encoding)
{
$target = $this->getOption("encoding", ID3_Encoding::UTF8);
switch ($target) {
case ID3_Encoding::UTF16:
$target = "utf-16";
break;
case ID3_Encoding::UTF16LE:
$target = "utf-16le";
break;
case ID3_Encoding::UTF16BE:
$target = "utf-16be";
break;
case ID3_Encoding::UTF8:
$target = "utf-8";
break;
default:
$target = "iso-8859-1";
}
if (strtolower($target) == strtolower($encoding))
return $string;
if (is_array($string))
foreach ($string as $key => $value)
$string[$key] = iconv($encoding, $target, $value);
else
$string = iconv($encoding, $target, $string);
return $string;
}
/**
* Returns the object data.
*
* @return string
*/
abstract public function __toString();
}

Some files were not shown because too many files have changed in this diff Show More