List <MusicSymbol> AddClefChanges(List <MusicSymbol> symbols,
ClefMeasures clefs,
TimeSignature time)
{
List <MusicSymbol> result = new List <MusicSymbol>(symbols.Count);
Clef prevclef = clefs.GetClef(0);
foreach (MusicSymbol symbol in symbols)
{
/* A BarSymbol indicates a new measure */
if (symbol is BarSymbol)
{
Clef clef = clefs.GetClef(symbol.StartTime);
if (clef != prevclef)
{
result.Add(new ClefSymbol(clef, symbol.StartTime - 1, true));
}
prevclef = clef;
}
result.Add(symbol);
}
return(result);
}