/** * Writes the object data. * * @param Zend_Io_Writer $writer The writer object. * @return void */ public function write($writer) { if ($this->getSize() == 0) { $this->setSize(24); } $writer->writeGuid($this->getIdentifier())->writeInt64LE($this->getSize())->write(str_pad('', $this->getSize() - 24, "")); }
/** * Writes the object data. * * @param Zend_Io_Writer $writer The writer object. * @return void */ public function write($writer) { $objectsWriter = new Zend_Io_StringWriter(); foreach ($this->getObjects() as $objects) { foreach ($objects as $object) { $object->write($objectsWriter); } } $this->setSize(24 + 22 + $objectsWriter->getSize()); $writer->writeGuid($this->getIdentifier())->writeInt64LE($this->getSize())->writeGuid($this->_reserved1)->writeUInt16LE($this->_reserved2)->writeUInt32LE($objectsWriter->getSize())->write($objectsWriter->toString()); }
/** * * @param int $local_message_type * @param bool $is_definition * @param bool $is_normal_header * @return \Fit\Writer */ protected function writeRecordHeaderByte($local_msg_type, $is_definition = false, $is_normal_header = true) { //write definition record //write definition record header byte $header_bits = array_merge(array_slice(self::inttobar($local_msg_type), 0, 4), array(false, false, (bool) $is_definition, false === (bool) $is_normal_header)); $this->writer->writeUInt8(self::bartoint($header_bits)); return $this; }
/** * Constructs the Zend_Io_FileWriter class with given path to the file. By * default the file is opened in write mode without altering its content * (ie r+b mode if the file exists, and wb mode if not). * * @param string $filename The path to the file. * @throws Zend_Io_Exception if the file cannot be written */ public function __construct($filename, $mode = null) { if ($mode === null) { $mode = file_exists($filename) ? 'r+b' : 'wb'; } if (($fd = fopen($filename, $mode)) === false) { throw new Zend_Io_Exception('Unable to open file for writing: ' . $filename); } parent::__construct($fd); }
/** * Writes the object data. * * @param Zend_Io_Writer $writer The writer object. * @return void */ public function write($writer) { $languageIdRecordsCount = count($this->_languages); $languageIdRecordsWriter = new Zend_Io_StringWriter(); for ($i = 0; $i < $languageIdRecordsCount; $i++) { $languageIdRecordsWriter->writeInt8(strlen($languageId = iconv($this->getOption('encoding'), 'utf-16le', $this->_languages[$i]) . ""))->writeString16($languageId); } $this->setSize(24 + 2 + $languageIdRecordsWriter->getSize()); $writer->writeGuid($this->getIdentifier())->writeInt64LE($this->getSize())->writeUInt16LE($languageIdRecordsCount)->write($languageIdRecordsWriter->toString()); }
/** * Writes the frame raw data without the header. * * @param Zend_Io_Writer $writer The writer object. * @return void */ protected function _writeData($writer) { $writer->writeString8($this->_owner, 1)->writeInt8($this->_rating); if ($this->_counter > 0xffffffff) { $writer->writeInt64BE($this->_counter); } else { if ($this->_counter > 0) { $writer->writeUInt32BE($this->_counter); } } }
/** * Writes the object data. * * @param Zend_Io_Writer $writer The writer object. * @return void */ public function write($writer) { $writer->writeGuid($this->getIdentifier())->writeInt64LE($this->getSize())->write($this->_data); }
/** * Writes the object data. * * @param Zend_Io_Writer $writer The writer object. * @return void */ public function write($writer) { require_once 'Zend/Io/StringWriter.php'; $objectsWriter = new Zend_Io_StringWriter(); foreach ($this->getObjects() as $objects) { foreach ($objects as $object) { $object->write($objectsWriter); } } $this->setSize(24 + 6 + $objectsWriter->getSize()); $writer->writeGuid($this->getIdentifier())->writeInt64LE($this->getSize())->writeUInt32LE($this->getObjectCount())->writeInt8($this->_reserved1)->writeInt8($this->_reserved2)->write($objectsWriter->toString()); }
/** * Writes the frame raw data without the header. * * @param Zend_Io_Writer $writer The writer object. * @return void */ protected function _writeData($writer) { $writer->writeUInt8($this->_encoding); switch ($this->_encoding) { case self::UTF16LE: $count = count($this->_text); for ($i = 0; $i < $count; $i++) { $writer->writeString16($this->_text, Zend_Io_Writer::LITTLE_ENDIAN_ORDER, $i == $count ? null : 1); } break; case self::UTF16: // break intentionally omitted // break intentionally omitted case self::UTF16BE: $writer->write(implode("", $this->_text)); break; default: $writer->write(implode("", $this->_text)); break; } }
/** * Writes the frame raw data without the header. * * @param Zend_Io_Writer $writer The writer object. * @return void */ protected function _writeData($writer) { $writer->writeUInt8($this->_format); foreach ($this->_events as $timestamp => $type) { $writer->writeUInt8($type)->writeUInt32BE($timestamp); } }
/** * Writes the object data. * * @param Zend_Io_Writer $writer The writer object. * @return void */ public function write($writer) { require_once 'Zend/Io/StringWriter.php'; $typeSpecificData = new Zend_Io_StringWriter(); switch ($this->_streamType) { case self::AUDIO_MEDIA: $typeSpecificData->writeUInt16LE($this->_typeSpecificData['codecId'])->writeUInt16LE($this->_typeSpecificData['numberOfChannels'])->writeUInt32LE($this->_typeSpecificData['samplesPerSecond'])->writeUInt32LE($this->_typeSpecificData['avgNumBytesPerSecond'])->writeUInt16LE($this->_typeSpecificData['blockAlignment'])->writeUInt16LE($this->_typeSpecificData['bitsPerSample'])->writeUInt16LE(strlen($this->_typeSpecificData['codecSpecificData']))->write($this->_typeSpecificData['codecSpecificData']); break; case self::VIDEO_MEDIA: $typeSpecificData->writeUInt32LE($this->_typeSpecificData['encodedImageWidth'])->writeUInt32LE($this->_typeSpecificData['encodedImageHeight'])->writeInt8($this->_typeSpecificData['reservedFlags'])->writeUInt16LE(0)->writeUInt32LE(38 + strlen($this->_typeSpecificData['codecSpecificData']))->writeUInt32LE($this->_typeSpecificData['imageWidth'])->writeUInt32LE($this->_typeSpecificData['imageHeight'])->writeUInt16LE($this->_typeSpecificData['reserved'])->writeUInt16LE($this->_typeSpecificData['bitsPerPixelCount'])->writeUInt32LE($this->_typeSpecificData['compressionId'])->writeUInt32LE($this->_typeSpecificData['imageSize'])->writeUInt32LE($this->_typeSpecificData['horizontalPixelsPerMeter'])->writeUInt32LE($this->_typeSpecificData['verticalPixelsPerMeter'])->writeUInt32LE($this->_typeSpecificData['colorsUsedCount'])->writeUInt32LE($this->_typeSpecificData['importantColorsCount'])->write($this->_typeSpecificData['codecSpecificData']); break; case self::JFIF_MEDIA: $typeSpecificData->writeUInt32LE($this->_typeSpecificData['imageWidth'])->writeUInt32LE($this->_typeSpecificData['imageHeight'])->writeUInt32LE(0); break; case self::DEGRADABLE_JPEG_MEDIA: $typeSpecificData->writeUInt32LE($this->_typeSpecificData['imageWidth'])->writeUInt32LE($this->_typeSpecificData['imageHeight'])->writeUInt16LE(0)->writeUInt16LE(0)->writeUInt16LE(0); $interchangeDataSize = strlen($this->_typeSpecificData['interchangeData']); if ($interchangeDataSize == 1) { $interchangeDataSize = 0; } $typeSpecificData->writeUInt16LE($interchangeDataSize)->write($this->_typeSpecificData['interchangeData']); break; case self::FILE_TRANSFER_MEDIA: // break intentionally omitted // break intentionally omitted case self::BINARY_MEDIA: $typeSpecificData->writeGuid($this->_typeSpecificData['majorMediaType'])->writeGuid($this->_typeSpecificData['mediaSubtype'])->writeUInt32LE($this->_typeSpecificData['fixedSizeSamples'])->writeUInt32LE($this->_typeSpecificData['temporalCompression'])->writeUInt32LE($this->_typeSpecificData['sampleSize'])->writeGuid($this->_typeSpecificData['formatType'])->writeUInt32LE(strlen($this->_typeSpecificData['formatData']))->write($this->_typeSpecificData['formatData']); break; case self::COMMAND_MEDIA: // break intentionally omitted // break intentionally omitted default: break; } $errorCorrectionData = new Zend_Io_StringWriter(); switch ($this->_errorCorrectionType) { case self::AUDIO_SPREAD: $errorCorrectionData->writeInt8($this->_errorCorrectionData['span'])->writeUInt16LE($this->_errorCorrectionData['virtualPacketLength'])->writeUInt16LE($this->_errorCorrectionData['virtualChunkLength'])->writeUInt16LE(strlen($this->_errorCorrectionData['silenceData']))->write($this->_errorCorrectionData['silenceData']); break; case self::NO_ERROR_CORRECTION: // break intentionally omitted // break intentionally omitted default: break; } $this->setSize(24 + 54 + $typeSpecificData->getSize() + $errorCorrectionData->getSize()); $writer->writeGuid($this->getIdentifier())->writeInt64LE($this->getSize())->writeGuid($this->_streamType)->writeGuid($this->_errorCorrectionType)->writeInt64LE($this->_timeOffset)->writeUInt32LE($typeSpecificData->getSize())->writeUInt32LE($errorCorrectionData->getSize())->writeUInt16LE($this->_flags)->writeUInt32LE($this->_reserved)->write($typeSpecificData->toString())->write($errorCorrectionData->toString()); }
/** * Writes the object data. * * @param Zend_Io_Writer $writer The writer object. * @return void */ public function write($writer) { $this->setSize(24 + 8 + strlen($this->_data)); $writer->writeGuid($this->getIdentifier())->writeInt64LE($this->getSize())->writeUInt32LE($this->_type)->writeUInt32LE(strlen($this->_data))->write($this->_data); }
/** * Writes the frame raw data without the header. * * @param Zend_Io_Writer $writer The writer object. * @return void */ protected function _writeData($writer) { if ($this->_counter > 4294967295) { $writer->writeInt64BE($this->_counter); // UInt64 } else { $writer->writeUInt32BE($this->_counter); } }
/** * Writes the frame raw data without the header. * * @param Zend_Io_Writer $writer The writer object. * @return void */ protected function _writeData($writer) { $writer->writeInt8($this->_interpolation)->writeString8($this->_device, 1); foreach ($this->_adjustments as $frequency => $adjustment) { $writer->writeUInt16BE($frequency * 2)->writeInt16BE($adjustment * 512); } }
/** * Writes the object data. * * @param Zend_Io_Writer $writer The writer object. * @return void */ public function write($writer) { require_once 'Zend/Io/StringWriter.php'; $commandTypes = array(); foreach ($this->_commands as $command) { if (!in_array($command['type'], $commandTypes)) { $commandTypes[] = $command['type']; } } $commandTypesCount = count($commandTypes); $commandTypesWriter = new Zend_Io_StringWriter(); for ($i = 0; $i < $commandTypesCount; $i++) { $commandTypesWriter->writeUInt16LE(strlen($commandType = iconv($this->getOption('encoding'), 'utf-16le', $commandTypes[$i])) / 2)->write($commandType); } $commandsCount = count($this->_commands); $commandsWriter = new Zend_Io_StringWriter(); for ($i = 0; $i < $commandsCount; $i++) { $commandsWriter->writeUInt32LE($this->_commands[$i]['presentationTime'])->writeUInt16LE(array_search($this->_commands[$i]['type'], $commandTypes))->writeUInt16LE(strlen($command = iconv($this->getOption('encoding'), 'utf-16le', $this->_commands[$i]['name'])) / 2)->write($command); } $this->setSize(24 + 20 + $commandTypesWriter->getSize() + $commandsWriter->getSize()); $writer->writeGuid($this->getIdentifier())->writeInt64LE($this->getSize())->writeGuid($this->_reserved)->writeUInt16LE($commandsCount)->writeUInt16LE($commandTypesCount)->write($commandTypesWriter->toString())->write($commandsWriter->toString()); }
/** * Writes the frame raw data without the header. * * @param Zend_Io_Writer $writer The writer object. * @return void */ protected function _writeData($writer) { $writer->writeUInt8($this->_group)->write($this->_signature); }
/** * Writes the header data. * * @param Zend_Io_Writer $writer The writer object. * @return void */ public function write($writer) { /* ID3v2.3.0 ExtendedHeader */ if ($this->getOption('version', 4) < 4) { $writer->writeUInt32BE($this->_size)->writeUInt16BE($this->hasFlag(self::CRC32) ? 0x8000 : 0)->writeUInt32BE($this->_padding); if ($this->hasFlag(self::CRC32)) { $writer->writeUInt32BE($this->_crc); } } else { $writer->writeUInt32BE($this->_encodeSynchsafe32($this->_size))->writeInt8(1)->writeInt8($this->_flags); if ($this->hasFlag(self::UPDATE)) { $writer->write(""); } if ($this->hasFlag(self::CRC32)) { $writer->writeInt8(5)->writeInt8($this->_crc & 4026531840.0 >> 28 & 0xf)->writeUInt32BE($this->_encodeSynchsafe32($this->_crc)); } if ($this->hasFlag(self::RESTRICTED)) { $writer->writeInt8(1)->writeInt8($this->_restrictions); } } }
/** * Writes the object data. * * @param Zend_Io_Writer $writer The writer object. * @return void */ public function write($writer) { $contentEncryptionRecordsCount = count($this->_contentEncryptionRecords); $contentEncryptionRecordsWriter = new Zend_Io_StringWriter(); for ($i = 0; $i < $contentEncryptionRecordsCount; $i++) { $contentEncryptionRecordsWriter->writeGuid($this->_contentEncryptionRecords['systemId'])->writeUInt32LE($this->_contentEncryptionRecords['systemVersion'])->writeUInt16LE($encryptedObjectRecordCount = $this->_contentEncryptionRecords['streamNumbers']); for ($j = 0; $j < $encryptedObjectRecordCount; $j++) { $contentEncryptionRecordsWriter->writeUInt16LE(1)->writeUInt16LE(2)->writeUInt16LE($this->_contentEncryptionRecords['streamNumbers'][$j]); } $contentEncryptionRecordsWriter->writeUInt32LE(strlen($this->_contentEncryptionRecords['data']))->write($this->_contentEncryptionRecords['data']); } $this->setSize(24 + 2 + $contentEncryptionRecordsWriter->getSize()); $writer->writeGuid($this->getIdentifier())->writeInt64LE($this->getSize())->writeUInt16LE($contentEncryptionRecordsCount)->write($contentEncryptionRecordsWriter->toString()); }
/** * Writes the object data. * * @param Zend_Io_Writer $writer The writer object. * @return void */ public function write($writer) { require_once 'Zend/Io/StringWriter.php'; $descriptionRecordsCount = count($this->_descriptionRecords); $descriptionRecordsWriter = new Zend_Io_StringWriter(); for ($i = 0; $i < $descriptionRecordsCount; $i++) { $descriptionRecordsWriter->writeUInt16LE($this->_descriptionRecords[$i]['languageIndex'])->writeUInt16LE($this->_descriptionRecords[$i]['streamNumber'])->writeUInt16LE(strlen($name = iconv($this->getOption('encoding'), 'utf-16le', $this->_descriptionRecords[$i]['name']) . "")); if (is_string($this->_descriptionRecords[$i]['data'])) { $chunks = array(); if (preg_match("/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{1" . "2}\$/i", $this->_descriptionRecords[$i]['data'])) { $descriptionRecordsWriter->writeUInt16LE(6)->writeUInt32LE(16)->write($name)->writeGuid($this->_descriptionRecords[$i]['data']); } else { /* There is no way to distinguish byte arrays from unicode * strings and hence the need for a list of fields of type * byte array */ static $byteArray = array("WM/Lyrics_Synchronised", "WM/Picture"); // TODO: Add to the list if you encounter one if (in_array($name, $byteArray)) { $descriptionRecordsWriter->writeUInt16LE(1)->writeUInt32LE(strlen($this->_descriptionRecords[$i]['data']))->write($name)->write($this->_descriptionRecords[$i]['data']); } else { $value = iconv($this->getOption('encoding'), 'utf-16le', $this->_descriptionRecords[$i]['data']); $value = $value ? $value . "" : ''; $descriptionRecordsWriter->writeUInt16LE(0)->writeUInt32LE(strlen($value))->write($name)->writeString16($value); } } } else { if (is_bool($this->_descriptionRecords[$i]['data'])) { $descriptionRecordsWriter->writeUInt16LE(2)->writeUInt32LE(2)->write($name)->writeUInt16LE($this->_descriptionRecords[$i]['data'] ? 1 : 0); } else { if (is_int($this->_descriptionRecords[$i]['data'])) { $descriptionRecordsWriter->writeUInt16LE(3)->writeUInt32LE(4)->write($name)->writeUInt32LE($this->_descriptionRecords[$i]['data']); } else { if (is_float($this->_descriptionRecords[$i]['data'])) { $descriptionRecordsWriter->writeUInt16LE(4)->writeUInt32LE(8)->write($name)->writeInt64LE($this->_descriptionRecords[$i]['data']); } else { // Invalid value and there is nothing to be done require_once 'Zend/Media/Asf/Exception.php'; throw new Zend_Media_Asf_Exception('Invalid data type'); } } } } } $this->setSize(24 + 2 + $descriptionRecordsWriter->getSize()); $writer->writeGuid($this->getIdentifier())->writeInt64LE($this->getSize())->writeUInt16LE($descriptionRecordsCount)->write($descriptionRecordsWriter->toString()); }
/** * Writes the frame raw data without the header. * * @param Zend_Io_Writer $writer The writer object. * @return void */ protected function _writeData($writer) { $writer->writeUInt8($this->_encoding)->write($this->_currency)->writeString8($this->_price, 1)->write($this->_date); switch ($this->_encoding) { case self::UTF16LE: $writer->writeString16($this->_seller, Zend_Io_Writer::LITTLE_ENDIAN_ORDER); break; case self::UTF16: // break intentionally omitted // break intentionally omitted case self::UTF16BE: $writer->writeString16($this->_seller); break; default: $writer->writeString8($this->_seller); break; } }
/** * Writes the frame raw data without the header. * * @param Zend_Io_Writer $writer The writer object. * @return void */ protected function _writeData($writer) { $writer->writeString8($this->_owner, 1)->write($this->_fileIdentifier); }
/** * Writes the object data. * * @param Zend_Io_Writer $writer The writer object. * @return void */ public function write($writer) { $this->setSize(24 + 2); $writer->writeGuid($this->getIdentifier())->writeInt64LE($this->getSize())->writeUInt8($this->_profile)->writeUInt8($this->_mode); }
/** * Writes the frame raw data without the header. * * @param Zend_Io_Writer $writer The writer object. * @return void */ protected function _writeData($writer) { $writer->writeString8(substr($this->_target, 0, 4), 4)->writeString8($this->_url, 1)->writeString8($this->_qualifier); }
/** * Writes the object data. * * @param Zend_Io_Writer $writer The writer object. * @return void */ public function write($writer) { $this->setSize(24 + 80); $writer->writeGuid($this->getIdentifier())->writeInt64LE($this->getSize())->writeGuid($this->_fileId)->writeInt64LE($this->_fileSize)->writeInt64LE($this->_creationDate)->writeInt64LE($this->_dataPacketsCount)->writeInt64LE($this->_playDuration)->writeInt64LE($this->_sendDuration)->writeInt64LE($this->_preroll)->writeUInt32LE($this->_flags)->writeUInt32LE($this->_minimumDataPacketSize)->writeUInt32LE($this->_maximumDataPacketSize)->writeUInt32LE($this->_maximumBitrate); }
/** * Writes the frame raw data without the header. * * @param Zend_Io_Writer $writer The writer object. * @return void */ protected function _writeData($writer) { $writer->writeUInt8($this->_encoding)->write($this->_currency)->writeString8($this->_price, 1)->write($this->_date)->writeString8($this->_contact, 1)->writeUInt8($this->_delivery); switch ($this->_encoding) { case self::UTF16LE: $writer->writeString16($this->_seller, Zend_Io_Writer::LITTLE_ENDIAN_ORDER, 1)->writeString16($this->_description, Zend_Io_Writer::LITTLE_ENDIAN_ORDER, 1); break; case self::UTF16: // break intentionally omitted // break intentionally omitted case self::UTF16BE: $writer->writeString16($this->_seller, null, 1)->writeString16($this->_description, null, 1); break; default: $writer->writeString8($this->_seller, 1)->writeString8($this->_description, 1); break; } if ($this->_mimeType) { $writer->writeString8($this->_mimeType, 1)->write($this->_imageData); } }
/** * Writes the object data. * * @param Zend_Io_Writer $writer The writer object. * @return void */ public function write($writer) { $priorityRecordCount = count($this->_priorityRecords); $this->setSize(24 + 2 + $priorityRecordCount * 4); $writer->writeGuid($this->getIdentifier())->writeInt64LE($this->getSize())->writeUInt16LE($priorityRecordCount); for ($i = 0; $i < $priorityRecordCount; $i++) { $writer->writeUInt16LE($this->_priorityRecords[$i]['streamNumber'])->writeUInt16LE($this->_priorityRecords[$i]['flags']); } }
/** * Writes the frame raw data without the header. * * @param Zend_Io_Writer $writer The writer object. * @return void */ protected function _writeData($writer) { $writer->write($this->_data); }
/** * Writes the header/footer data without the identifier. * * @param Zend_Io_Writer $writer The writer object. * @return void */ public function write($writer) { $writer->writeInt8(floor($this->_version))->writeInt8(($this->_version - floor($this->_version)) * 10)->writeInt8($this->_flags)->writeUInt32BE($this->_encodeSynchsafe32($this->_size)); }
/** * Writes the frame raw data without the header. * * @param Zend_Io_Writer $writer The writer object. * @return void */ protected function _writeData($writer) { $writer->writeUInt8($this->_encoding); switch ($this->_encoding) { case self::UTF16LE: $writer->writeString16($this->_description, Zend_Io_Writer::LITTLE_ENDIAN_ORDER, 1); break; case self::UTF16: // break intentionally omitted // break intentionally omitted case self::UTF16BE: $writer->writeString16($this->_description, null, 1); break; default: $writer->writeString8($this->_description, 1); break; } $writer->write($this->_link); }
/** * Writes the object data. * * @param Zend_Io_Writer $writer The writer object. * @return void */ public function write($writer) { $streamNumbersCount = count($this->_streamNumber); $this->setSize(24 + 28 + $streamNumbersCount * 2); $writer->writeGuid($this->getIdentifier())->writeInt64LE($this->getSize())->writeGuid($this->_sharingType)->writeUInt32LE($this->_dataBitrate)->writeUInt32LE($this->_bufferSize)->writeUInt16LE($streamNumbersCount); for ($i = 0; $i < $streamNumbersCount; $i++) { $writer->writeUInt16LE($this->_streamNumbers[$i]); } }