/// <summary> /// Returns true if mainController speech should be suspended /// </summary> /// <param name="c"></param> /// <returns></returns> public bool ProcessInput(char c) { bool retValue = false; if (controllerState == DemandState.Presented) { if (demandedChars != null && demandedChars.Count >= demandedCharIndex) { var dchar = demandedChars[demandedCharIndex]; if (dchar.DemandedChar == c) { dchar.DemandSuccessful = true; demandedCharIndex++; if (demandedCharIndex >= demandedChars.Count) { processDemandFinalSuccess(c); retValue = true; } } else { dchar.DemandFailures++; totalDemandFailures++; if (dchar.DemandFailures % 5 == 4) { mainController.SpeakString("Press " + dchar.DemandedChar); retValue = true; } } } } return(retValue); }