Beispiel #1
0
 /**
  * Reads channels informations
  * 
  * @return array $channels
  */
 public function readChannels()
 {
     $channels = array();
     for ($i = 0; $i < 64; $i++) {
         $channel = new Channel();
         $channel->setProgram($this->reader->readInt());
         $channel->setVolume($this->toChannelShort($this->reader->readByte()));
         $channel->setBalance($this->toChannelShort($this->reader->readByte()));
         $channel->setChorus($this->toChannelShort($this->reader->readByte()));
         $channel->setReverb($this->toChannelShort($this->reader->readByte()));
         $channel->setPhaser($this->toChannelShort($this->reader->readByte()));
         $channel->setTremolo($this->toChannelShort($this->reader->readByte()));
         $channel->setBank($i == 9 ? Channel::DEFAULT_PERCUSSION_BANK : Channel::DEFAULT_BANK);
         if ($channel->getProgram() < 0) {
             $channel->setProgram(0);
         }
         $channels[] = $channel;
         $this->reader->skip(2);
     }
     return $channels;
 }