Example #1
0
// Called when the game starts
void UMMLComponent::LoadString(const FString &data)
{
	isLoaded = false;

	TArray<TCHAR> CharData = data.GetCharArray();
	delete[] MMLDataChar;
	MMLDataChar = new char[CharData.Num()];
	for (int i = 0; i < CharData.Num(); i++)
		MMLDataChar[i] = CharData[i];
	mml_setup(&mml, &mml_opt, (char*)MMLDataChar);
	isLoaded = true;
}
Example #2
0
Pattern *MMLReader::read(const char *text)
{
    pattern = new Pattern();
    currentPosition = Position(1, 0, 1);
    TimeSignature &time = AudioEngine::instance().getTimeSignature();
    if(time.isValid()) {
        ticksPerBar = mmlopt.bticks * time.getNumerator() * 4 / time.getDenominator();
    } else {
        ticksPerBar = mmlopt.bticks * 4;
    }
    mml_setup(&mml, &mmlopt, (char *)text);
    while (mml_fetch(&mml) == MML_RESULT_OK) {}
    return pattern;
}