Esempio n. 1
0
 /**
  * Writes the data size to the header and a CRC checksum at the end.
  * @return \Fit\Writer
  */
 protected function writeFileClosure()
 {
     //mark current writing position
     $offset = $this->writer->getOffset();
     //move to header and write the size of the data
     $this->writer->setOffset(4);
     $data_size = $this->writer->getSize() - 14;
     $this->writer->writeUInt32LE($data_size);
     // Does not include file header or crc.  Little endian format.
     //write 2 byte crc check at end of file
     $this->writer->setOffset($offset);
     $this->writer->writeUInt16LE(0);
     return $this;
 }
Esempio n. 2
0
 /**
  * Writes the frame raw data without the header.
  *
  * @param Zend_Io_Writer $writer The writer object.
  * @return void
  */
 protected function _writeData($writer)
 {
     $writer->writeInt8($flags = 0);
     if ($this->_adjustments[self::right] > 0) {
         $flags = $flags | 0x1;
     }
     if ($this->_adjustments[self::left] > 0) {
         $flags = $flags | 0x2;
     }
     $writer->writeInt8(16)->writeUInt16BE(abs($this->_adjustments[self::right]))->writeUInt16BE(abs($this->_adjustments[self::left]))->writeUInt16BE(abs($this->_adjustments[self::peakRight]))->writeUInt16BE(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;
         }
         $writer->writeUInt16BE(abs($this->_adjustments[self::rightBack]))->writeUInt16BE(abs($this->_adjustments[self::leftBack]))->writeUInt16BE(abs($this->_adjustments[self::peakRightBack]))->writeUInt16BE(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;
         }
         $writer->writeUInt16BE(abs($this->_adjustments[self::center]))->writeUInt16BE(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;
         }
         $writer->writeUInt16BE(abs($this->_adjustments[self::bass]))->writeUInt16BE(abs($this->_adjustments[self::peakBass]));
     }
     $writer->setOffset(0);
     $writer->writeInt8($flags);
 }