/** * 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->_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 ($this->_encoding) { case self::UTF16: list ($this->_filename, $this->_description, $this->_objectData) = $this->explodeString16($this->_data, 3); $this->_filename = Transform::fromString16($this->_filename); $this->_description = Transform::fromString16($this->_description); break; case self::UTF16BE: list ($this->_filename, $this->_description, $this->_objectData) = $this->explodeString16($this->_data, 3); $this->_filename = Transform::fromString16BE($this->_filename); $this->_description = Transform::fromString16BE($this->_description); break; default: list ($this->_filename, $this->_description, $this->_objectData) = $this->explodeString8($this->_data, 3); $this->_filename = Transform::fromString8($this->_filename); $this->_description = Transform::fromString8($this->_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()) { parent::__construct($reader, $options); if ($reader === null) return; $this->_encoding = Transform::fromUInt8($this->_data[0]); $data = substr($this->_data, 1); $order = Transform::MACHINE_ENDIAN_ORDER; switch ($this->_encoding) { case self::UTF16: $data = $this->explodeString16($data); foreach ($data as &$str) $str = Transform::fromString16($str, $order); break; case self::UTF16BE: $data = $this->explodeString16($data); foreach ($data as &$str) $str = Transform::fromString16BE($str); break; default: $data = $this->explodeString8($data); } for ($i = 0; $i < count($data) - 1; $i += 2) $this->_people[] = array($data[$i] => @$data[$i + 1]); }
/** * 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->_encoding = Transform::fromInt8($this->_data[0]); $this->_language = substr($this->_data, 1, 3); $this->_data = substr($this->_data, 4); switch ($this->_encoding) { case self::UTF16: list($this->_description, $this->_text) = preg_split("/\\x00\\x00/", $this->_data, 2); $this->_description = Transform::fromString16($this->_description); $this->_text = Transform::fromString16($this->_text); break; case self::UTF16BE: list($this->_description, $this->_text) = preg_split("/\\x00\\x00/", $this->_data, 2); $this->_description = Transform::fromString16BE($this->_description); $this->_text = Transform::fromString16BE($this->_text); break; default: list($this->_description, $this->_text) = preg_split("/\\x00/", $this->_data, 2); $this->_description = Transform::fromString8($this->_description); $this->_text = Transform::fromString8($this->_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); if ($reader === null) return; $this->_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 ($this->_encoding) { case self::UTF16: $this->_seller = Transform::fromString16($this->_data); break; case self::UTF16BE: $this->_seller = Transform::fromString16BE($this->_data); break; default: $this->_seller = Transform::fromString8($this->_data); } }
/** * 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->_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 ($this->_encoding) { case self::UTF16: list ($this->_description, $this->_text) = $this->explodeString16($this->_data, 2); $this->_description = Transform::fromString16($this->_description); $this->_text = Transform::fromString16($this->_text); break; case self::UTF16BE: list ($this->_description, $this->_text) = $this->explodeString16($this->_data, 2); $this->_description = Transform::fromString16BE($this->_description); $this->_text = Transform::fromString16BE($this->_text); break; default: list ($this->_description, $this->_text) = $this->explodeString8($this->_data, 2); $this->_description = Transform::fromString8($this->_description); $this->_text = Transform::fromString8($this->_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); if ($reader === null) { return; } $flags = Transform::fromInt8($this->_data[0]); $descriptionBits = Transform::fromInt8($this->_data[0]); //16 $this->_adjustments["right"] = ($flags & 0x20) == 0x20 ? Transform::fromUInt16BE(substr($this->_data, 0, 2)) : -Transform::fromUInt16BE(substr($this->_data, 0, 2)); $this->_adjustments["left"] = ($flags & 0x10) == 0x10 ? Transform::fromUInt16BE(substr($this->_data, 2, 2)) : -Transform::fromUInt16BE(substr($this->_data, 2, 2)); $this->_adjustments["peakRight"] = Transform::fromUInt16BE(substr($this->_data, 4, 2)); $this->_adjustments["peakLeft"] = Transform::fromUInt16BE(substr($this->_data, 6, 2)); if ($this->getSize() <= 8) { return; } $this->_adjustments["rightBack"] = ($flags & 0x8) == 0x8 ? Transform::fromUInt16BE(substr($this->_data, 8, 2)) : -Transform::fromUInt16BE(substr($this->_data, 8, 2)); $this->_adjustments["leftBack"] = ($flags & 0x4) == 0x4 ? Transform::fromUInt16BE(substr($this->_data, 10, 2)) : -Transform::fromUInt16BE(substr($this->_data, 10, 2)); $this->_adjustments["peakRightBack"] = Transform::fromUInt16BE(substr($this->_data, 12, 2)); $this->_adjustments["peakLeftBack"] = Transform::fromUInt16BE(substr($this->_data, 14, 2)); if ($this->getSize() <= 16) { return; } $this->_adjustments["center"] = ($flags & 0x2) == 0x2 ? Transform::fromUInt16BE(substr($this->_data, 16, 2)) : -Transform::fromUInt16BE(substr($this->_data, 16, 2)); $this->_adjustments["peakCenter"] = Transform::fromUInt16BE(substr($this->_data, 18, 2)); if ($this->getSize() <= 20) { return; } $this->_adjustments["bass"] = ($flags & 0x1) == 0x1 ? Transform::fromUInt16BE(substr($this->_data, 20, 2)) : -Transform::fromUInt16BE(substr($this->_data, 20, 2)); $this->_adjustments["peakBass"] = Transform::fromUInt16BE(substr($this->_data, 22, 2)); }
/** * 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(preg_split("/\\x00/", $this->_data, 1), ""); } }
/** * 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) = preg_split("/\\x00/", $this->_data, 2); for ($i = $j = 0; $i < 9; $i++) { $this->_adjustments[$i] = array("channelType" => Transform::fromInt8($this->_data[$j++]), "volumeAdjustment" => Transform::fromInt16BE(substr($this->_data, $j++, 2))); $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]["peakVolume"] = Transform::fromInt64BE(substr($this->_data, $j, $bytesInPeak)); $j += $bytesInPeak; break; case 4: case 3: $this->_adjustments[$i]["peakVolume"] = Transform::fromUInt32BE(substr($this->_data, $j, $bytesInPeak)); $j += $bytesInPeak; break; case 2: $this->_adjustments[$i]["peakVolume"] = Transform::fromUInt16BE(substr($this->_data, $j, $bytesInPeak)); $j += $bytesInPeak; break; case 1: $this->_adjustments[$i]["peakVolume"] = Transform::fromInt8(substr($this->_data, $j, $bytesInPeak)); $j += $bytesInPeak; } } }
/** * 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->_encoding = Transform::fromInt8($this->_data[0]); $this->_mimeType = substr($this->_data, 1, ($pos = strpos($this->_data, "", 1)) - 1); $this->_data = substr($this->_data, $pos); switch ($this->_encoding) { case self::UTF16: list($this->_filename, $this->_description, $this->_data) = preg_split("/\\x00\\x00/", $this->_data, 3); $this->_filename = Transform::fromString16($this->_filename); $this->_description = Transform::fromString16($this->_description); break; case self::UTF16BE: list($this->_filename, $this->_description, $this->_data) = preg_split("/\\x00\\x00/", $this->_data, 3); $this->_filename = Transform::fromString16BE($this->_filename); $this->_description = Transform::fromString16BE($this->_description); break; default: list($this->_filename, $this->_description, $this->_data) = preg_split("/\\x00/", $this->_data, 3); $this->_filename = Transform::fromString8($this->_filename); $this->_description = Transform::fromString8($this->_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); if ($reader === null) return; $this->_encoding = Transform::fromUInt8($this->_data[0]); $this->_data = substr($this->_data, 1); switch ($this->_encoding) { case self::UTF16: list($this->_description, $this->_link) = $this->explodeString16($this->_data, 2); $this->_description = Transform::fromString16($this->_description); break; case self::UTF16BE: list($this->_description, $this->_link) = $this->explodeString16($this->_data, 2); $this->_description = Transform::fromString16BE($this->_description); break; default: list($this->_description, $this->_link) = $this->explodeString8($this->_data, 2); break; } $this->_link = implode($this->explodeString8($this->_link, 1), ""); }
/** * 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), ""); }
/** * 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) = preg_split("/\\x00/", $this->_data, 2); }
/** * 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); }
/** * 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::fromInt8($this->_data[0]); $this->_position = Transform::fromUInt32BE(substr($this->_data, 1, 4)); }
/** * 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 = substr($this->_data, 0, 1); $this->_signature = substr($this->_data, 1); }
/** * 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::fromInt8($this->_data[0]); $this->_tempoData = substr($this->_data, 1); // FIXME: Better parsing of data }
/** * 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) = preg_split("/\\x00/", $this->_data, 2); $this->_method = Transform::fromInt8($this->_data[0]); $this->_encryptionData = substr($this->_data, 1); }
/** * 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) = preg_split("/\\x00/", $this->_data, 2); $this->_previewStart = substr($this->_data, 0, 2); $this->_previewLength = substr($this->_data, 2, 2); $this->_encryptionInfo = substr($this->_data, 4); }
/** * 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); }
/** * 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); }
/** * 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]); //16 for ($i = 1; $i < strlen($this->_data); $i += 4) { $frequency = Transform::fromInt16BE(substr($this->_data, $i, 2)); $this->_adjustments[$frequency & 0x7fff] = ($frequency & 0x2000) == 0x2000 ? Transform::fromInt16BE(substr($this->_data, $j + 2, 2)) : -Transform::fromInt16BE(substr($this->_data, $j + 2, 2)); } }
/** * 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) = preg_split("/\\x00/", substr($this->_data, 1), 2); for ($i = 0; $i < strlen($this->_data); $i += 8) { $this->_adjustments[Transform::fromInt16BE(substr($this->_data, $i, 2)) / 2] = Transform::fromInt16BE(substr($this->_data, $i + 2, 2)) / 512; } sort($this->_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->_format = Transform::fromInt8($this->_data[0]); for ($i = 1; $i < $this->getSize(); $i += 5) { $this->_events[Transform::fromInt32BE(substr($this->_data, $i + 1, 4))] = $data = Transform::fromInt8($this->_data[$i]); if ($data == 0xff) { break; } } sort($this->_events); }
/** * 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); }
/** * 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) = preg_split("/\\x00/", $this->_data, 2); $this->_rating = Transform::fromInt8($this->_data[0]); $this->_data = substr($this->_data, 1); if (strlen($this->_data) > 4) { $this->_counter = Transform::fromInt64BE($this->_data); } else { if (strlen($this->_data) > 0) { $this->_counter = Transform::fromUInt32BE($this->_data); } } }
/** * 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->_encoding = Transform::fromInt8($this->_data[0]); $this->_data = substr($this->_data, 1); switch ($this->_encoding) { case self::UTF16: $this->_text = preg_split("/\\x00\\x00/", Transform::fromString16($this->_data)); break; case self::UTF16BE: $this->_text = preg_split("/\\x00\\x00/", Transform::fromString16BE($this->_data)); break; default: $this->_text = preg_split("/\\x00/", Transform::fromString8($this->_data)); } }
/** * 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) { 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 ++; } }*/ }
/** * Constructs the class with given parameters and parses object related data. * * @param Reader $reader The reader object. */ public function __construct($reader = null) { parent::__construct($reader); if ($reader === null) { return; } $this->_encoding = Transform::fromInt8($this->_data[0]); $this->_language = substr($this->_data, 1, 3); $this->_data = substr($this->_data, 4); switch ($this->_encoding) { case self::UTF16: $this->_text = Transform::fromString16($this->_data); break; case self::UTF16BE: $this->_text = Transform::fromString16BE($this->_data); break; default: $this->_text = Transform::fromString8($this->_data); } }
/** * 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) 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); }
/** * 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->_encoding = Transform::fromInt8($this->_data[0]); $data = array(); switch ($this->_encoding) { case self::UTF16: $data = preg_split("/\\x00\\x00/", Transform::fromString16($this->_data)); break; case self::UTF16BE: $data = preg_split("/\\x00\\x00/", Transform::fromString16BE($this->_data)); break; default: $data = preg_split("/\\x00/", $this->_data); } for ($i = 0; $i < count($data); $i += 2) { $this->_people[] = array($data[$i] => @$data[$i + 1]); } }