Пример #1
0
void CPatternContainer::ResizeArray(const PATTERNINDEX newSize)
//-------------------------------------------------------------
{
	if(Size() <= newSize)
		m_Patterns.resize(newSize, MODPATTERN(*this));
	else
	{
		for(PATTERNINDEX i = Size(); i > newSize; i--) Remove(i-1);
		m_Patterns.resize(newSize, MODPATTERN(*this));
	}
}
Пример #2
0
OPENMPT_NAMESPACE_BEGIN


void CPatternContainer::ClearPatterns()
//-------------------------------------
{
	DestroyPatterns();
	m_Patterns.assign(m_Patterns.size(), MODPATTERN(*this));
}
Пример #3
0
bool CPatternContainer::Insert(const PATTERNINDEX index, const ROWINDEX rows)
//---------------------------------------------------------------------------
{
	const CModSpecifications& specs = m_rSndFile.GetModSpecifications();
	if(index >= specs.patternsMax || rows > MAX_PATTERN_ROWS || rows == 0)
		return false;
	if(index < m_Patterns.size() && m_Patterns[index])
		return false;

	if(index >= m_Patterns.size())
	{
		m_Patterns.resize(index + 1, MODPATTERN(*this));
	}

	m_Patterns[index].AllocatePattern(rows);
	m_Patterns[index].RemoveSignature();
	m_Patterns[index].SetName("");

	return m_Patterns[index] != nullptr;
}
Пример #4
0
void CPatternContainer::ClearPatterns()
//-------------------------------------
{
	DestroyPatterns();
	m_Patterns.assign(m_Patterns.size(), MODPATTERN(*this));
}