ASF_Extended_Content_Description_Object object implementation. * This object contains unlimited number of attribute fields giving more * information about the file. * * @package php-reader * @subpackage ASF * @author Sven Vollbehr * @copyright Copyright (c) 2006-2008 The PHP Reader Project Workgroup * @license http://code.google.com/p/php-reader/wiki/License New BSD License * @version $Rev: 108 $ */ final class ASF_Object_ExtendedContentDescription extends ASF_Object { /** @var Array */ private $_contentDescriptors = array(); /** * Constructs the class with given parameters and reads object related data * from the ASF file. * * @param Reader $reader The reader object. * @param Array $options The options array. */ public function __construct($reader, &$options = array()) { parent::__construct($reader, $options); $contentDescriptorsCount = $this->_reader->readUInt16LE(); for ($i = 0; $i < $contentDescriptorsCount; $i++) { $nameLen = $this->_reader->readUInt16LE(); $name = iconv ("utf-16le", $this->getOption("encoding"), $this->_reader->readString16LE($nameLen)); $valueDataType = $this->_reader->readUInt16LE(); $valueLen = $this->_reader->readUInt16LE(); switch ($valueDataType) { case 0: case 1: // string $this->_contentDescriptors[$name] = iconv ("utf-16le", $this->getOption("encoding"), $this->_reader->readString16LE($valueLen)); break; case 2: // bool case 3: // 32-bit integer $this->_contentDescriptors[$name] = $this->_reader->readUInt32LE(); break; case 4: // 64-bit integer $this->_contentDescriptors[$name] = $this->_reader->readInt64LE(); break; case 5: // 16-bit integer $this->_contentDescriptors[$name] = $this->_reader->readUInt16LE(); break; default: } } } /** * Returns the value of the specified descriptor or false if there * is no such descriptor defined. * * @param string $name The name of the descriptor (ie the name of the field). * @return string|false */ public function getDescriptor($name) { if (isset($this->_contentDescriptors[$name])) return $this->_contentDescriptors[$name]; return false; } /** * Returns an associate array of all the descriptors defined having the names * of the descriptors as the keys. * * @return Array */ public function getDescriptors() { return $this->_contentDescriptors; } }