void AudioStereoOutput::connect(AudioSource &source) { if(source.getAudioOutputCount() == 1) { portLeft->connect(source.getAudioConnection(0)); portRight->connect(source.getAudioConnection(0)); } else { portLeft->connect(source.getAudioConnection(0)); portRight->connect(source.getAudioConnection(1)); } }
void Lv2Plugin::connect(AudioSource &source) { if(audioInputCount == 0) { throw std::logic_error("cannot connect: this plugin has no audio inputs"); } if(audioInputCount == 2 && source.getAudioOutputCount() == 1) { // mono to stereo audioInput[0].setConnection(source.getAudioConnection(0), this); audioInput[1].setConnection(source.getAudioConnection(0), this); } else if(audioInputCount == source.getAudioOutputCount()) { for(uint32_t i = 0; i < audioInputCount; i++) { audioInput[i].setConnection(source.getAudioConnection(i), this); } } else { throw std::logic_error("cannot connect: different number of input/output connections"); } }