private IEnumerator<ITask> Initialize() { // create WPF adapter _wpfServicePort = ccrwpf.WpfAdapter.Create(TaskQueue); var runWindow = _wpfServicePort.RunWindow(() => new MainWindow {ViewModel = new MainViewModel(this)}); yield return (Choice) runWindow; var exception = (Exception) runWindow; if (exception != null) { LogError(exception); StartFailed(); yield break; } _mainWindow = (Window) runWindow as MainWindow; // subscribe to Articulated Arm notifications var subscribe = _armPort.Subscribe(_armNotify); yield return (Choice)subscribe; var fault = (Fault)subscribe; if (fault != null) { LogError(fault); StartFailed(); yield break; } // register base.Start(); //TODO: MainPortInterleave.CombineWith( new Interleave()); SpawnIterator(StartCompleted); }
private IEnumerator<ITask> Initialize() { // create WPF adapter _wpfServicePort = ccrwpf.WpfAdapter.Create(TaskQueue); var runWindow = _wpfServicePort.RunWindow(() => new PololuMaestroUI{ ViewModel = new MainViewModel(this)}); yield return (Choice) runWindow; var exception = (Exception) runWindow; if (exception != null) { LogError(exception); StartFailed(); yield break; } _userInterface = (Window) runWindow as PololuMaestroUI; // subscribe to Pololu Maestro var subscribe = _pololuMaestroServicePort.Subscribe(_pololuMaestroServiceNotify); yield return (Choice)subscribe; var fault = (Fault)subscribe; if (fault != null) { LogError(fault); StartFailed(); yield break; } // register base.Start(); // activate a handler for viseme notifications MainPortInterleave.CombineWith( Arbiter.Interleave( new TeardownReceiverGroup(), new ExclusiveReceiverGroup( Arbiter.Receive<pololumaestro.Replace>(true, _pololuMaestroServiceNotify, ReplaceNotifyHandler), Arbiter.Receive<pololumaestro.ChannelChange>(true, _pololuMaestroServiceNotify, ServoChangeNotifyHandler) ), new ConcurrentReceiverGroup() ) ); SpawnIterator(StartCompleted); }
private IEnumerator<ITask> Initialize() { // create WPF adapter _wpfServicePort = ccrwpf.WpfAdapter.Create(TaskQueue); var runWindow = _wpfServicePort.RunWindow(() => new ControlWindow(new MainWindowViewModel(this))); yield return (Choice)runWindow; var exception = (Exception)runWindow; if (exception != null) { LogError(exception); StartFailed(); yield break; } // need double cast because WPF adapter doesn't know about derived window types _userInterface = (Window)runWindow as ControlWindow; }
IEnumerator <ITask> Initialize() { #region Subscribe to TTS // subscribe to TTS service to receive viseme notifications var subscribe = _ttsPort.Subscribe(_ttsNotifications, typeof(texttospeech.VisemeNotify)); yield return((Choice)subscribe); var fault = (Fault)subscribe; if (fault != null) { LogError(fault); StartFailed(); yield break; } #endregion #region Create UI // create WPF adapter _wpfServicePort = ccrwpf.WpfAdapter.Create(TaskQueue); var runWindow = _wpfServicePort.RunWindow(() => new TextToSpeechUI(this)); yield return((Choice)runWindow); var exception = (Exception)runWindow; if (exception != null) { LogError(exception); StartFailed(); yield break; } // need double cast because WPF adapter doesn't know about derived window types _userInterface = (Window)runWindow as TextToSpeechUI; #endregion StartComplete(); }