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:
@@ -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);
|
|
||||||
}
|
|
||||||
@@ -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
|
|
||||||
{
|
|
||||||
}
|
|
||||||
@@ -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) : "");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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 : "");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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; }
|
|
||||||
}
|
|
||||||
@@ -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; }
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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; }
|
|
||||||
}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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 {}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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);
|
|
||||||
}
|
|
||||||
@@ -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
Reference in New Issue
Block a user