public function removeTrack(Track $track) { foreach ($this->tracks as $k => $v) { if ($v->getNumber() == $track->getNumber()) { array_splice($this->tracks, $k, 1); } } $track->clear(); }
public function copyFrom(Song $song, Track $track) { $this->clear(); $this->setNumber($track->getNumber()); $this->setName($track->getName()); $this->setOffset($track->getOffset()); $this->setSolo($track->isSolo()); $this->setMute($track->isMute()); $this->setChannelId($track->getChannelId()); $this->getColor()->copyFrom($track->getColor()); $this->getLyrics()->copyFrom($track->getLyrics()); for ($i = 0; $i < $track->countStrings(); $i++) { $this->strings[$i] = clone $track->getString($i); } for ($i = 0; $i < $track->countMeasures(); $i++) { $measure = $track->getMeasure($i); $this->addMeasure(clone $measure($song->getMeasureHeader($i))); } }