当前位置: 首页>>代码示例>>C++>>正文


C++ OwnedArray::swapWith方法代码示例

本文整理汇总了C++中OwnedArray::swapWith方法的典型用法代码示例。如果您正苦于以下问题:C++ OwnedArray::swapWith方法的具体用法?C++ OwnedArray::swapWith怎么用?C++ OwnedArray::swapWith使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在OwnedArray的用法示例。


在下文中一共展示了OwnedArray::swapWith方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: updateSettings

void ChannelMappingNode::updateSettings()
{
    if (getNumInputs() > 0)
        channelBuffer.setSize(getNumInputs(), 10000);

	if (editorIsConfigured)
	{
	    OwnedArray<Channel> oldChannels;
		oldChannels.swapWith(channels);
	    channels.clear();
		Array<bool> recordStates;

	    settings.numOutputs = 0;

	    for (int i = 0; i < getNumInputs(); i++)
	    {
			if ((enabledChannelArray[channelArray[i]]) && (channelArray[i] < oldChannels.size()))
	        {
				oldChannels[channelArray[i]]->mappedIndex = settings.numOutputs;
	            channels.add(oldChannels[channelArray[i]]);
				recordStates.add(oldChannels[i]->getRecordState());
	            settings.numOutputs++;
	        }

	    }
		oldChannels.clearQuick(false);
		for (int i = 0; i < settings.numOutputs; i++)
		{
			channels[i]->setRecordState(recordStates[i]);
		}
	}
}
开发者ID:410pfeliciano,项目名称:plugin-GUI,代码行数:32,代码来源:ChannelMappingNode.cpp

示例2: readNextBufferChunk

bool BufferingAudioReader::readNextBufferChunk()
{
    const int64 pos = nextReadPosition;
    const int64 startPos = ((pos - 1024) / samplesPerBlock) * samplesPerBlock;
    const int64 endPos = startPos + numBlocks * samplesPerBlock;

    OwnedArray<BufferedBlock> newBlocks;

    for (int i = blocks.size(); --i >= 0;)
        if (blocks.getUnchecked(i)->range.intersects (Range<int64> (startPos, endPos)))
            newBlocks.add (blocks.getUnchecked(i));

    if (newBlocks.size() == numBlocks)
    {
        newBlocks.clear (false);
        return false;
    }

    for (int64 p = startPos; p < endPos; p += samplesPerBlock)
    {
        if (getBlockContaining (p) == nullptr)
        {
            newBlocks.add (new BufferedBlock (*source, p, samplesPerBlock));
            break; // just do one block
        }
    }

    {
        const ScopedLock sl (lock);
        newBlocks.swapWith (blocks);
    }

    for (int i = blocks.size(); --i >= 0;)
        newBlocks.removeObject (blocks.getUnchecked(i), false);

    return true;
}
开发者ID:Neknail,项目名称:JUCE,代码行数:37,代码来源:juce_BufferingAudioFormatReader.cpp


注:本文中的OwnedArray::swapWith方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。