// arguments need to remain int (instead of int32) since numbers are derived from TPL that uses int
void FLiveEditorWizardBase::ProcessMIDI( int Status, int Data1, int Data2, PmDeviceID DeviceID, struct FLiveEditorDeviceData &Data )
{
	//if we're restriced to a certain device, then discard information if the signal is not sent from that device
	if ( RestrictedToDeviceID != pmNoDevice && RestrictedToDeviceID != DeviceID )
	{
		return;
	}

	//sanity check. Should never == true
	if ( CurState < 0 )
	{
		if(FPlatformMisc::IsDebuggerPresent())
		{
			FPlatformMisc::DebugBreak();
		}
		return;
	}
	if ( !States.Contains(CurState) )
	{
		return;
	}

	if ( States[CurState]->ProcessMIDI( Status, Data1, Data2, Data ) )
	{
		if ( !bReadyToAdvance )
		{
			bReadyToAdvance = true;
			if ( IsOnLastStep() )
			{
				OnWizardFinished(Data);
			}
		}
	}
}
FText FLiveEditorWizardBase::GetAdvanceButtonText() const
{
	return (IsOnLastStep())? LOCTEXT("Finish", "Finish") : LOCTEXT("Next", "Next");
}
FString FLiveEditorWizardBase::GetAdvanceButtonText() const
{
	return (IsOnLastStep())? FString( TEXT("Finish") ) : FString( TEXT("Next") );
}