本文整理汇总了C++中BasePlugin::getParameterCount方法的典型用法代码示例。如果您正苦于以下问题:C++ BasePlugin::getParameterCount方法的具体用法?C++ BasePlugin::getParameterCount怎么用?C++ BasePlugin::getParameterCount使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BasePlugin
的用法示例。
在下文中一共展示了BasePlugin::getParameterCount方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: addPlugin
void AudioTrack::addPlugin(BasePlugin* plugin, int idx)/*{{{*/
{
if(debugMsg)
qDebug("AudioTrack::addPlugin(%p, %d) \n", plugin, idx);
if (!plugin)
{
BasePlugin* oldPlugin = (*_efxPipe)[idx];
if (oldPlugin)
{
oldPlugin->setId(-1);
oldPlugin->setTrack(0);
uint32_t paramCount = oldPlugin->getParameterCount();
for (uint32_t i = 0; i < paramCount; i++)
{
ParameterPort* paramPort = oldPlugin->getParameterPort(i);
if (! paramPort || paramPort->type != PARAMETER_INPUT || (paramPort->hints & PARAMETER_IS_AUTOMABLE) == 0)
continue;
int id = genACnum(idx, i);
removeController(id);
}
_efxPipe->remove(idx);
}
}
if (plugin)
{
idx = efxPipe()->addPlugin(plugin, idx);
plugin->setId(idx);
plugin->setTrack(this);
uint32_t paramCount = plugin->getParameterCount();
for (uint32_t i = 0; i < paramCount; i++)
{
ParameterPort* paramPort = plugin->getParameterPort(i);
if (! paramPort || paramPort->type != PARAMETER_INPUT || (paramPort->hints & PARAMETER_IS_AUTOMABLE) == 0)
continue;
int id = genACnum(idx, i);
CtrlValueType t = plugin->valueType();
CtrlList* cl = new CtrlList(id);
cl->setRange(paramPort->ranges.min, paramPort->ranges.max);
cl->setName(plugin->getParameterName(i));
cl->setPluginName(plugin->name());
cl->setUnit(plugin->getParameterUnit(i));
cl->setValueType(t);
if (paramPort->hints & PARAMETER_IS_TOGGLED)
cl->setMode(CtrlList::DISCRETE);
else
cl->setMode(CtrlList::INTERPOLATE);
cl->setCurVal(plugin->getParameterValue(i));
addController(cl);
}
}
}/*}}}*/