コード例 #1
0
ファイル: GuitarPro4Track.php プロジェクト: stdtabs/phptabs
 /**
  * Reads Track informations
  * @param Song $song
  * @param integer $number
  * @param array $channels an array of Channel objects
  * @param Lyric $lyrics
  *
  * @return Track
  */
 public function readTrack(Song $song, $number, $channels, Lyric $lyrics)
 {
     $track = new Track();
     $track->setSong($song);
     $track->setNumber($number);
     $track->setLyrics($lyrics);
     $this->reader->readUnsignedByte();
     $track->setName($this->reader->readStringByte(40));
     $stringCount = $this->reader->readInt();
     for ($i = 0; $i < 7; $i++) {
         $tuning = $this->reader->readInt();
         if ($stringCount > $i) {
             $string = new TabString();
             $string->setNumber($i + 1);
             $string->setValue($tuning);
             $track->addString($string);
         }
     }
     $this->reader->readInt();
     $this->reader->factory('GuitarProChannel')->readChannel($song, $track, $channels);
     $this->reader->readInt();
     $track->setOffset($this->reader->readInt());
     $this->reader->factory('GuitarProColor')->readColor($track->getColor());
     return $track;
 }
コード例 #2
0
ファイル: MidiReader.php プロジェクト: stdtabs/phptabs
 private function getTrack($number)
 {
     foreach ($this->tracks as $track) {
         if ($track->getNumber() == $number) {
             return $track;
         }
     }
     $track = new Track();
     $track->setNumber($number);
     $track->setChannelId(-1);
     $track->getColor()->setR(Color::$red[0]);
     $track->getColor()->setG(Color::$red[1]);
     $track->getColor()->setB(Color::$red[2]);
     $this->tracks[] = $track;
     return $track;
 }