You are here

private function PHPExcel_Reader_Excel5_Escher::_readBSE in Loft Data Grids 6.2

Same name and namespace in other branches
  1. 7.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/Escher.php \PHPExcel_Reader_Excel5_Escher::_readBSE()

* Read BSE record

1 call to PHPExcel_Reader_Excel5_Escher::_readBSE()
PHPExcel_Reader_Excel5_Escher::load in vendor/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/Escher.php
* Load Escher stream data. May be a partial Escher stream. * *

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/Escher.php, line 212

Class

PHPExcel_Reader_Excel5_Escher
PHPExcel_Reader_Excel5_Escher

Code

private function _readBSE() {

  // offset: 0; size: 2; recVer and recInstance
  // bit: 4-15; mask: 0xFFF0; recInstance
  $recInstance = (0xfff0 & PHPExcel_Reader_Excel5::_GetInt2d($this->_data, $this->_pos)) >> 4;
  $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4);
  $recordData = substr($this->_data, $this->_pos + 8, $length);

  // move stream pointer to next record
  $this->_pos += 8 + $length;

  // add BSE to BstoreContainer
  $BSE = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE();
  $this->_object
    ->addBSE($BSE);
  $BSE
    ->setBLIPType($recInstance);

  // offset: 0; size: 1; btWin32 (MSOBLIPTYPE)
  $btWin32 = ord($recordData[0]);

  // offset: 1; size: 1; btWin32 (MSOBLIPTYPE)
  $btMacOS = ord($recordData[1]);

  // offset: 2; size: 16; MD4 digest
  $rgbUid = substr($recordData, 2, 16);

  // offset: 18; size: 2; tag
  $tag = PHPExcel_Reader_Excel5::_GetInt2d($recordData, 18);

  // offset: 20; size: 4; size of BLIP in bytes
  $size = PHPExcel_Reader_Excel5::_GetInt4d($recordData, 20);

  // offset: 24; size: 4; number of references to this BLIP
  $cRef = PHPExcel_Reader_Excel5::_GetInt4d($recordData, 24);

  // offset: 28; size: 4; MSOFO file offset
  $foDelay = PHPExcel_Reader_Excel5::_GetInt4d($recordData, 28);

  // offset: 32; size: 1; unused1
  $unused1 = ord($recordData[32]);

  // offset: 33; size: 1; size of nameData in bytes (including null terminator)
  $cbName = ord($recordData[33]);

  // offset: 34; size: 1; unused2
  $unused2 = ord($recordData[34]);

  // offset: 35; size: 1; unused3
  $unused3 = ord($recordData[35]);

  // offset: 36; size: $cbName; nameData
  $nameData = substr($recordData, 36, $cbName);

  // offset: 36 + $cbName, size: var; the BLIP data
  $blipData = substr($recordData, 36 + $cbName);

  // record is a container, read contents
  $reader = new PHPExcel_Reader_Excel5_Escher($BSE);
  $reader
    ->load($blipData);
}