本文整理汇总了C++中BasePlugin::setChannels方法的典型用法代码示例。如果您正苦于以下问题:C++ BasePlugin::setChannels方法的具体用法?C++ BasePlugin::setChannels怎么用?C++ BasePlugin::setChannels使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BasePlugin
的用法示例。
在下文中一共展示了BasePlugin::setChannels方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: choosePlugin
void EffectRack::choosePlugin(QListWidgetItem* it, bool replace)/*{{{*/
{
PluginI* plugi = PluginDialog::getPlugin(track->type(), this);
if (plugi)
{
BasePlugin* nplug = 0;
if (plugi->type() == PLUGIN_LADSPA)
nplug = new LadspaPlugin();
else if (plugi->type() == PLUGIN_LV2)
nplug = new Lv2Plugin();
else if (plugi->type() == PLUGIN_VST)
nplug = new VstPlugin();
if (nplug)
{
if (nplug->init(plugi->filename(), plugi->label()))
{
// just in case is needed later
//if (!audioDevice || audioDevice->deviceType() != AudioDevice::JACK_AUDIO)
// nplug->aboutToRemove();
int idx = row(it);
if (replace)
{
audio->msgAddPlugin(track, idx, 0);
//Do this part from the GUI context so user interfaces can be properly deleted
// track->efxPipe()->insert(0, idx); was set on lv2 only
}
audio->msgAddPlugin(track, idx, nplug);
nplug->setChannels(track->channels());
nplug->setActive(true);
song->dirty = true;
}
else
{
QMessageBox::warning(this, tr("Failed to load plugin"), tr("Plugin '%1'' failed to initialize properly, error was:\n%2").arg(plugi->name()).arg(get_last_error()));
nplug->deleteMe();
return;
}
}
updateContents();
}
}/*}}}*/
示例2: apply
void Pipeline::apply(int ports, uint32_t nframes, float** buffer1)
{
//fprintf(stderr, "Pipeline::apply data: nframes:%ld %e %e %e %e\n", nframes, buffer1[0][0], buffer1[0][1], buffer1[0][2], buffer1[0][3]);
bool swap = false;
for (iPluginI ip = begin(); ip != end(); ++ip)
{
BasePlugin* p = *ip;
if (p && p->enabled())
{
p->setChannels(ports);
if (p->hints() & PLUGIN_HAS_IN_PLACE_BROKEN)
{
if (swap)
p->process(nframes, buffer, buffer1, 0);
else
p->process(nframes, buffer1, buffer, 0);
swap = !swap;
}
else
{
if (swap)
p->process(nframes, buffer, buffer, 0);
else
p->process(nframes, buffer1, buffer1, 0);
}
}
}
if (swap)
{
for (int i = 0; i < ports; ++i)
AL::dsp->cpy(buffer1[i], buffer[i], nframes);
}
// p3.3.41
//fprintf(stderr, "Pipeline::apply after data: nframes:%ld %e %e %e %e\n", nframes, buffer1[0][0], buffer1[0][1], buffer1[0][2], buffer1[0][3]);
}