示例#1
0
void CPatternContainer::ResizeArray(const modplug::tracker::patternindex_t newSize)
//-------------------------------------------------------------
{
    if(Size() <= newSize)
            m_Patterns.resize(newSize, CPattern(*this));
    else
    {
            for(modplug::tracker::patternindex_t i = Size(); i > newSize; i--) Remove(i-1);
            m_Patterns.resize(newSize, CPattern(*this));
    }
}
示例#2
0
bool CPatternContainer::Insert(const modplug::tracker::patternindex_t index, const modplug::tracker::rowindex_t rows)
//---------------------------------------------------------------------------
{
    const CModSpecifications& specs = m_rSndFile.GetModSpecifications();
    if(index >= specs.patternsMax || index > m_Patterns.size() || rows > specs.patternRowsMax)
            return true;
    if(index < m_Patterns.size() && m_Patterns[index])
            return true;

    if(index == m_Patterns.size())
    {
            if(index < specs.patternsMax)
                    m_Patterns.push_back(CPattern(*this));
            else
            {
                    ErrorBox(IDS_ERR_TOOMANYPAT, CMainFrame::GetMainFrame());
                    return true;
            }
    }

    if(m_Patterns[index].m_ModCommands != nullptr)
    {
            CPattern::FreePattern(m_Patterns[index].m_ModCommands);
    }
    m_Patterns[index].m_ModCommands = CPattern::AllocatePattern(rows, m_rSndFile.GetNumChannels());
    m_Patterns[index].m_Rows = rows;
    m_Patterns[index].RemoveSignature();
    m_Patterns[index].SetName("");

    if(!m_Patterns[index]) return true;

    return false;
}
示例#3
0
文件: ChladniDB.cpp 项目: whg/chaldni
void ChladniDB::setup() {
    
    patterns[0] = CPattern(SINE, 100.1);
    patterns[1] = CPattern(SINE, 168.8);
    patterns[2] = CPattern(SINE, 208.1);
    patterns[3] = CPattern(SINE, 360);
    patterns[4] = CPattern(SINE, 385);
    patterns[5] = CPattern(SINE, 525);
    patterns[6] = CPattern(SINE, 545);
    patterns[7] = CPattern(SINE, 573);
    patterns[8] = CPattern(SINE, 1227);
    patterns[9] = CPattern(SINE, 2084);
    
    patterns[10] = CPattern(SINE, 476);
    patterns[11] = CPattern(SINE, 606);
    patterns[12] = CPattern(SINE, 957);
    patterns[13] = CPattern(SINE, 2754);
    
//    patterns[0] = CPattern(SINE, 107.25);
//    patterns[1] = CPattern(SINE, 165.55);
//    patterns[2] = CPattern(SINE, 208.1);
//    patterns[3] = CPattern(SINE, 340);
//    patterns[4] = CPattern(SINE, 400);
//    patterns[5] = CPattern(SINE, 505);
//    patterns[6] = CPattern(SINE, 525);
//    patterns[7] = CPattern(SINE, 590);
//    patterns[8] = CPattern(SINE, 1277);
//    patterns[9] = CPattern(SINE, 1682);
//    patterns[10] = CPattern(SINE, 2073);
//    
//    
//    patterns[11] = CPattern(SINE, 463);
//    patterns[12] = CPattern(SINE, 604);
//    patterns[13] = CPattern(SINE, 606);
//    patterns[14] = CPattern(SINE, 953);
//    patterns[15] = CPattern(SINE, 2743);



//    patterns[0] = CPattern(SINE, 35);
//    patterns[1] = CPattern(SINE, 41);
//    patterns[2] = CPattern(SINE, 71);
//    patterns[3] = CPattern(SINE, 79);
//    patterns[4] = CPattern(SINE, 88);
//    patterns[5] = CPattern(SINE, 149);
//    patterns[6] = CPattern(SINE, 212);
//    patterns[7] = CPattern(SINE, 330);
//    patterns[8] = CPattern(SINE, 420);
//    patterns[9] = CPattern(SINE, 467);
//    patterns[10] = CPattern(SINE, 624);

}
示例#4
0
void CPatternContainer::ClearPatterns()
//-------------------------------------
{
    DestroyPatterns();
    m_Patterns.assign(m_Patterns.size(), CPattern(*this));
}