示例#1
0
 /**
  * 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 ++;
         }
       }*/
 }
示例#2
0
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
     $data = Transform::toInt8($this->_encoding);
     foreach ($this->_people as $entry) {
         foreach ($entry as $key => $val) {
             switch ($this->_encoding) {
                 case self::UTF16:
                     $data .= Transform::toString16($key . "" . $val . "");
                     break;
                 case self::UTF16BE:
                     $data .= Transform::toString16BE($key . "" . $val . "");
                     break;
                 case self::UTF16LE:
                     $data .= Transform::toString16LE($key . "" . $val . "");
                     break;
                 default:
                     $data .= $key . "" . $val . "";
             }
         }
     }
     $this->setData($data);
     return parent::__toString();
 }
示例#3
0
文件: EQU2.php 项目: rtdean93/therock
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
   $data = Transform::toInt8($this->_interpolation) . $this->_device . "\0";
   foreach ($this->_adjustments as $frequency => $adjustment)
     $data .= Transform::toUInt16BE($frequency * 2) .
       Transform::toInt16BE($adjustment * 512);
   $this->setData($data);
   return parent::__toString();
 }
示例#4
0
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
     parent::setData($this->_owner . "" . Transform::toInt8($this->_method) . $this->_encryptionData);
     return parent::__toString();
 }
示例#5
0
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
     $data = $this->_device . "";
     foreach ($this->_adjustments as $channel) {
         $data .= Transform::toInt8($channel["channelType"]) . Transform::toInt16BE($channel["volumeAdjustment"]);
         if ($channel["peakVolume"] < 255) {
             $data .= Transform::toInt8(8) . Transform::toInt8($channel["peakVolume"]);
         } else {
             if ($channel["peakVolume"] < 65535) {
                 $data .= Transform::toInt8(16) . Transform::toUInt16BE($channel["peakVolume"]);
             } else {
                 if ($channel["peakVolume"] < 4294967295) {
                     $data .= Transform::toInt8(32) . Transform::toUInt32BE($channel["peakVolume"]);
                 } else {
                     $data .= Transform::toInt8(64) . Transform::toUInt64BE($channel["peakVolume"]);
                 }
             }
         }
     }
     $this->setData($data);
     return parent::__toString();
 }
示例#6
0
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
     $this->setData(Transform::toInt32BE($this->_minOffset));
     return parent::__toString();
 }
示例#7
0
文件: COMR.php 项目: rtdean93/therock
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
   $data = Transform::toUInt8($this->_encoding) . $this->_currency .
     $this->_price . "\0" . $this->_date . $this->_contact . "\0" .
     Transform::toUInt8($this->_delivery);
   switch ($this->_encoding) {
   case self::UTF16:
   case self::UTF16LE:
     $order = $this->_encoding == self::UTF16 ?
       Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER;
     $data .= Transform::toString16($this->_seller, $order) . "\0\0" .
       Transform::toString16($this->_description, $order) . "\0\0";
     break;
   case self::UTF16BE:
     $data .= Transform::toString16BE
       ($this->_seller . "\0\0" . $this->_description . "\0\0");
     break;
   default:
     $data .= $this->_seller . "\0" . $this->_description . "\0";
   }
   parent::setData
     ($data . ($this->_mimeType ?
               $this->_mimeType . "\0" . $this->_imageData : ""));
   return parent::__toString();
 }
示例#8
0
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
     $flags = 0;
     if ($this->_adjustments["right"] > 0) {
         $flags = $flags | 0x20;
     }
     if ($this->_adjustments["left"] > 0) {
         $flags = $flags | 0x10;
     }
     $data = Transform::toInt8(16) . Transform::toUInt16BE(abs($this->_adjustments["right"])) . Transform::toUInt16BE(abs($this->_adjustments["left"])) . Transform::toUInt16BE(abs($this->_adjustments["peakRight"])) . Transform::toUInt16BE(abs($this->_adjustments["peakLeft"]));
     if (isset($this->_adjustments["rightBack"]) && isset($this->_adjustments["leftBack"]) && isset($this->_adjustments["peakRightBack"]) && isset($this->_adjustments["peakLeftBack"])) {
         if ($this->_adjustments["rightBack"] > 0) {
             $flags = $flags | 0x8;
         }
         if ($this->_adjustments["leftBack"] > 0) {
             $flags = $flags | 0x4;
         }
         $data .= Transform::toUInt16BE(abs($this->_adjustments["rightBack"])) . Transform::toUInt16BE(abs($this->_adjustments["leftBack"])) . Transform::toUInt16BE(abs($this->_adjustments["peakRightBack"])) . Transform::toUInt16BE(abs($this->_adjustments["peakLeftBack"]));
     }
     if (isset($this->_adjustments["center"]) && isset($this->_adjustments["peakCenter"])) {
         if ($this->_adjustments["center"] > 0) {
             $flags = $flags | 0x2;
         }
         $data .= Transform::toUInt16BE(abs($this->_adjustments["center"])) . Transform::toUInt16BE(abs($this->_adjustments["peakCenter"]));
     }
     if (isset($this->_adjustments["bass"]) && isset($this->_adjustments["peakBass"])) {
         if ($this->_adjustments["bass"] > 0) {
             $flags = $flags | 0x1;
         }
         $data .= Transform::toUInt16BE(abs($this->_adjustments["bass"])) . Transform::toUInt16BE(abs($this->_adjustments["peakBass"]));
     }
     $this->setData(Transform::toInt8($flags) . $data);
     return parent::__toString();
 }
示例#9
0
文件: EQUA.php 项目: rtdean93/therock
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
   $data = Transform::toInt8(16);
   foreach ($this->_adjustments as $frequency => $adjustment)
     $data .= Transform::toUInt16BE
       ($adjustment > 0 ? $frequency | 0x8000 : $frequency & ~0x8000) .
       Transform::toUInt16BE(abs($adjustment));
   $this->setData($data);
   return parent::__toString();
 }
示例#10
0
文件: RBUF.php 项目: rtdean93/therock
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
   $this->setData
     (substr(Transform::toUInt32BE($this->_bufferSize), 1, 3) .
      Transform::toInt8($this->_infoFlags) .
      Transform::toInt32BE($this->_offset));
   return parent::__toString();
 }
示例#11
0
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
   $data = Transform::toUInt8($this->_encoding);
   switch ($this->_encoding) {
   case self::UTF16:
   case self::UTF16LE:
     $array = $this->_text;
     foreach ($array as &$text)
       $text = Transform::toString16($text);
     $data .= Transform::toString16
       (implode("\0\0", $array), $this->_encoding == self::UTF16 ?
        Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER);
     break;
   case self::UTF16BE:
     $data .= Transform::toString16BE(implode("\0\0", $this->_text));
     break;
   default:
     $data .= implode("\0", $this->_text);
   }
   $this->setData($data);
   return parent::__toString();
 }
示例#12
0
文件: USER.php 项目: rtdean93/therock
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
   $data = Transform::toUInt8($this->_encoding) . $this->_language;
   switch ($this->_encoding) {
   case self::UTF16:
   case self::UTF16LE:
     $data .= Transform::toString16
       ($this->_text, $this->_encoding == self::UTF16 ?
        Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER);
     break;
   case self::UTF16BE:
     $data .= Transform::toString16BE($this->_text);
     break;
   default:
     $data .= $this->_text;
   }
   $this->setData($data);
   return parent::__toString();
 }
示例#13
0
文件: PCNT.php 项目: rtdean93/therock
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
   $this->setData
     ($this->_counter > 4294967295 ?
      Transform::toInt64BE($this->_counter) : // UInt64
      Transform::toUInt32BE($this->_counter));
   return parent::__toString();
 }
示例#14
0
文件: ETCO.php 项目: rtdean93/therock
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
   $data = Transform::toUInt8($this->_format);
   foreach ($this->_events as $timestamp => $type)
     $data .= Transform::toUInt8($type) . Transform::toUInt32BE($timestamp);
   $this->setData($data);
   return parent::__toString();
 }
示例#15
0
文件: POPM.php 项目: rtdean93/therock
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
   $this->setData
     ($this->_owner . "\0" . Transform::toInt8($this->_rating) .
      ($this->_counter > 0xffffffff ?
       Transform::toInt64BE($this->_counter) :
       ($this->_counter > 0 ? Transform::toUInt32BE($this->_counter) : 0)));
   return parent::__toString();
 }
示例#16
0
文件: OWNE.php 项目: rtdean93/therock
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
   $data = Transform::toUInt8($this->_encoding) . $this->_currency .
     $this->_price . "\0" . $this->_date;
   switch ($this->_encoding) {
   case self::UTF16:
   case self::UTF16LE:
     $data .= Transform::toString16
       ($this->_seller, $this->_encoding == self::UTF16 ?
        Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER);
     break;
   case self::UTF16BE:
     $data .= Transform::toString16BE($this->_seller);
     break;
   default:
     $data .= $this->_seller;
   }
   $this->setData($data);
   return parent::__toString();
 }
示例#17
0
文件: AENC.php 项目: rtdean93/therock
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
   $this->setData
     ($this->_owner . "\0" . Transform::toUInt16BE($this->_previewStart) .
      Transform::toUInt16BE($this->_previewLength) . $this->_encryptionInfo);
   return parent::__toString();
 }
示例#18
0
文件: MCDI.php 项目: rtdean93/therock
 /**
  * Sets the CD TOC binary dump.
  * 
  * @param string $data The CD TOC binary dump string.
  */
 public function setData($data) { parent::setData($data); }
示例#19
0
 /**
  * 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->_frames = Transform::fromInt16BE(substr($this->_data, 0, 2));
     $this->_bytes = Transform::fromInt32BE(substr($this->_data, 2, 3));
     $this->_milliseconds = Transform::fromInt32BE(substr($this->_data, 5, 3));
     $byteDevBits = Transform::fromInt8($this->_data[8]);
     $millisDevBits = Transform::fromInt8($this->_data[9]);
     // $data = substr($this->_data, 10);
 }
示例#20
0
文件: RVAD.php 项目: rtdean93/therock
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
   $flags = 0;
   if ($this->_adjustments[self::right] > 0)
     $flags = $flags | 0x1;
   if ($this->_adjustments[self::left] > 0)
     $flags = $flags | 0x2;
   $data = Transform::toInt8(16) . 
     Transform::toUInt16BE(abs($this->_adjustments[self::right])) .
     Transform::toUInt16BE(abs($this->_adjustments[self::left])) .
     Transform::toUInt16BE(abs($this->_adjustments[self::peakRight])) .
     Transform::toUInt16BE(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;
     $data .= 
       Transform::toUInt16BE(abs($this->_adjustments[self::rightBack])) .
       Transform::toUInt16BE(abs($this->_adjustments[self::leftBack])) .
       Transform::toUInt16BE(abs($this->_adjustments[self::peakRightBack])) .
       Transform::toUInt16BE(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;
     $data .= 
       Transform::toUInt16BE(abs($this->_adjustments[self::center])) .
       Transform::toUInt16BE(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;
     $data .= 
       Transform::toUInt16BE(abs($this->_adjustments[self::bass])) .
       Transform::toUInt16BE(abs($this->_adjustments[self::peakBass]));
   }
   $this->setData(Transform::toInt8($flags) . $data);
   return parent::__toString();
 }
示例#21
0
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
     $data = Transform::toInt8($this->_encoding) . $this->_price . "" . $this->_date . $this->_contact . "" . Transform::toInt8($this->_delivery);
     switch ($this->_encoding) {
         case self::UTF16:
             $data .= Transform::toString16($this->_seller) . "" . Transform::toString16($this->_description) . "";
             break;
         case self::UTF16BE:
             $data .= Transform::toString16BE($this->_seller) . "";
             Transform::toString16($this->_description) . "";
             break;
         case self::UTF16LE:
             $data .= Transform::toString16LE($this->_seller) . "";
             Transform::toString16($this->_description) . "";
             break;
         default:
             $data .= $this->_seller . "" . $this->_description . "";
     }
     parent::setData($data . ($this->_mimeType ? $this->_mimeType . "" . $this->_imageData : 0));
     return parent::__toString();
 }
示例#22
0
文件: SYLT.php 项目: rtdean93/therock
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
   $data = Transform::toUInt8($this->_encoding) . $this->_language .
     Transform::toUInt8($this->_format) . Transform::toUInt8($this->_type);
   switch ($this->_encoding) {
   case self::UTF16:
   case self::UTF16LE:
     $data .= Transform::toString16
       ($this->_description, $this->_encoding == self::UTF16 ?
        Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER) .
       "\0\0";
     break;
   case self::UTF16BE:
     $data .= Transform::toString16BE($this->_description) . "\0\0";
     break;
   default:
     $data .= $this->_description . "\0";
   }
   foreach ($this->_events as $timestamp => $syllable) {
     switch ($this->_encoding) {
     case self::UTF16:
     case self::UTF16LE:
       $data .= Transform::toString16
         ($syllable, $this->_encoding == self::UTF16 ?
          Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER) .
         "\0\0";
       break;
     case self::UTF16BE:
       $data .= Transform::toString16BE($syllable) . "\0\0";
       break;
     default:
       $data .= $syllable . "\0";
     }
     $data .= Transform::toUInt32BE($timestamp);
   }
   $this->setData($data);
   return parent::__toString();
 }
示例#23
0
文件: GRID.php 项目: rtdean93/therock
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
   parent::setData
     ($this->_owner . "\0" . Transform::toUInt8($this->_group) .
      $this->_groupData);
   return parent::__toString();
 }
示例#24
0
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
     $this->setData(Transform::toInt8($this->_group) . $this->_signature);
     return parent::__toString();
 }
示例#25
0
文件: WXXX.php 项目: rtdean93/therock
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
   $data = Transform::toUInt8($this->_encoding);
   switch ($this->_encoding) {
   case self::UTF16:
   case self::UTF16LE:
     $data .= Transform::toString16
       ($this->_description, $this->_encoding == self::UTF16 ?
        Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER) .
       "\0\0";
     break;
   case self::UTF16BE:
     $data .= Transform::toString16BE($this->_description) . "\0\0";
     break;
   default:
     $data .= $this->_description . "\0";
   }
   $this->setData($data . $this->_link);
   return ID3_Frame::__toString();
 }
示例#26
0
文件: GEOB.php 项目: rtdean93/therock
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
   $data = Transform::toUInt8($this->_encoding) . $this->_mimeType . "\0";
   switch ($this->_encoding) {
   case self::UTF16:
   case self::UTF16LE:
     $order = $this->_encoding == self::UTF16 ?
       Transform::MACHINE_ENDIAN_ORDER : Transform::LITTLE_ENDIAN_ORDER;
     $data .= Transform::toString16($this->_filename, $order) . "\0\0" .
       Transform::toString16($this->_description, $order) . "\0\0";
     break;
   case self::UTF16BE:
     $data .= Transform::toString16BE
       ($this->_filename . "\0\0" . $this->_description . "\0\0");
     break;
   default:
     $data .= $this->_filename . "\0" . $this->_description . "\0";
   }
   $this->setData($data . $this->_objectData);
   return parent::__toString();
 }
示例#27
0
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
     $data = Transform::toInt8($this->_encoding) . $this->_currency . $this->_price . "" . $this->_date;
     switch ($this->_encoding) {
         case self::UTF16:
             $data .= Transform::toString16($this->_seller);
             break;
         case self::UTF16BE:
             $data .= Transform::toString16BE($this->_seller);
             break;
         case self::UTF16LE:
             $data .= Transform::toString16LE($this->_seller);
             break;
         default:
             $data .= $this->_seller;
     }
     $this->setData($data);
     return parent::__toString();
 }
示例#28
0
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
     $this->setData(Transform::toString8(substr($this->_target, 0, 4), 4) . $this->_url . "" . $this->_qualifier);
     return parent::__toString();
 }
示例#29
0
文件: RVA2.php 项目: rtdean93/therock
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
   $data = $this->_device . "\0";
   foreach ($this->_adjustments as $channel) {
     $data .= Transform::toInt8($channel[self::channelType]) .
       Transform::toInt16BE($channel[self::volumeAdjustment] * 512);
     if (abs($channel[self::peakVolume]) <= 0xff)
       $data .= Transform::toInt8(8) .
         Transform::toUInt8($channel[self::peakVolume]);
     else if (abs($channel[self::peakVolume]) <= 0xffff)
       $data .= Transform::toInt8(16) .
         Transform::toUInt16BE($channel[self::peakVolume]);
     else if (abs($channel[self::peakVolume]) <= 0xffffffff)
       $data .= Transform::toInt8(32) .
         Transform::toUInt32BE($channel[self::peakVolume]);
     else
       $data .= Transform::toInt8(64) .
         Transform::toInt64BE($channel[self::peakVolume]); // UInt64
   }
   $this->setData($data);
   return parent::__toString();
 }
示例#30
0
文件: SYTC.php 项目: rtdean93/therock
 /**
  * Returns the frame raw data.
  *
  * @return string
  */
 public function __toString()
 {
   $data = Transform::toUInt8($this->_format);
   foreach ($this->_events as $timestamp => $tempo) {
     if ($tempo >= 0xff)
       $data .= Transform::toUInt8(0xff) . Transform::toUInt8($tempo - 0xff);
     else
       $data .= Transform::toUInt8($tempo);
     $data .= Transform::toUInt32BE($timestamp);
   }
   parent::setData($data);
   return parent::__toString();
 }