Advanced Mutual Exclusion Object identifies streams that have a * mutual exclusion relationship to each other (in other words, only one of the * streams within such a relationship can be streamed—the rest are ignored). * There should be one instance of this object for each set of objects that * contain a mutual exclusion relationship. The exclusion type is used so that * implementations can allow user selection of common choices, such as language. * This object must be used if any of the streams in the mutual exclusion * relationship are hidden. * * @package php-reader * @subpackage ASF * @author Sven Vollbehr * @copyright Copyright (c) 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_AdvancedMutualExclusion extends ASF_Object { const MUTEX_LANGUAGE = "d6e22a00-35da-11d1-9034-00a0c90349be"; const MUTEX_BITRATE = "d6e22a01-35da-11d1-9034-00a0c90349be"; const MUTEX_UNKNOWN = "d6e22a02-35da-11d1-9034-00a0c90349be"; /** @var string */ private $_exclusionType; /** @var Array */ private $_streamNumbers = 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); $this->_exclusionType = $this->_reader->readGUID(); $streamNumbersCount = $this->_reader->readUInt16LE(); for ($i = 0; $i < $streamNumbersCount; $i++) $this->_streamNumbers[] = $this->_reader->readUInt16LE(); } /** * Returns the nature of the mutual exclusion relationship. * * @return string */ public function getExclusionType() { return $this->_exclusionType; } /** * Returns an array of stream numbers. * * @return Array */ public function getStreamNumbers() { return $this->_streamNumbers; } }