示例#1
0
    public void FireEvent()
    {
        if (hasFired)
        {
            throw new Exception("This event has already fired, to prevent infinite loops, you can't refire an event.");
        }
        hasFired = true;

        Listeners?.Invoke(this as T);
    }
示例#2
0
        private void OnUpdate(UpdateMessage message)
        {
            if (gamePaused)
            {
                return;
            }

            Elapsed += TimeSpan.FromSeconds(message.DeltaTime);

            Listeners?.Invoke(Elapsed);
        }
示例#3
0
            static void ContinuousRecognitionSession_ResultGenerated(SpeechContinuousRecognitionSession sender, SpeechContinuousRecognitionResultGeneratedEventArgs args)
            {
                var confidence = args.Result.Confidence;

                if (confidence != SpeechRecognitionConfidence.Medium && confidence != SpeechRecognitionConfidence.High)
                {
                    return;
                }

                var text    = args.Result.Text;
                var isFinal = args.Result.Status == SpeechRecognitionResultStatus.Success;

                Thread.Pool.RunAction(() => Listeners?.Invoke(text, isFinal));
            }
示例#4
0
                public void OnResults(Bundle results)
                {
                    var result = results.GetStringArrayList(SpeechRecognizer.ResultsRecognition);

                    if (result.Count > 0)
                    {
                        var text = result[0].Trim();
                        Listeners?.Invoke(text, IsEnded);
                    }

                    if (IsEnded && !IsStopped && IsContinuous)
                    {
                        RestartRecognizer();
                        IsEnded = false;
                    }
                }
示例#5
0
 public void Deserialize(NetworkConnection connection, NetworkReader reader)
 {
     Listeners?.Invoke(connection, Serializer.Deserialize <T>(reader));
 }
示例#6
0
            static void StartRecording()
            {
                lock (Lock)
                {
                    if (SpeechRecognizer == null)
                    {
                        SpeechRecognizer  = new SFSpeechRecognizer();
                        LiveSpeechRequest = new SFSpeechAudioBufferRecognitionRequest();
                    }

                    var audioSession = AVAudioSession.SharedInstance();

                    audioSession.SetCategory(AVAudioSessionCategory.PlayAndRecord);
                    audioSession.SetMode(AVAudioSession.ModeDefault, out NSError error);
                    audioSession.OverrideOutputAudioPort(AVAudioSessionPortOverride.Speaker, out NSError speakerError);
                    audioSession.SetActive(true);

                    if (LogErrorAndStop(error) || LogErrorAndStop(speakerError))
                    {
                        return;
                    }

                    AudioEngine = new AVAudioEngine();
                    var node = AudioEngine.InputNode;

                    LiveSpeechRequest.ShouldReportPartialResults = true;

                    RecognitionTask = SpeechRecognizer.GetRecognitionTask(LiveSpeechRequest, (SFSpeechRecognitionResult result, NSError err) =>
                    {
                        if (LogErrorAndStop(err))
                        {
                            return;
                        }

                        var currentText = result.BestTranscription.FormattedString;

                        if (currentText.HasValue())
                        {
                            Listeners?.Invoke(currentText, result.Final);
                        }

                        if (IsContinuous)
                        {
                            Timer = new System.Timers.Timer(20000)
                            {
                                Enabled = true
                            };
                            Timer.Elapsed += (s, ev) =>
                            {
                                StopInstances();
                                StartRecording();
                            };

                            Timer.Start();
                        }
                    });

                    var recordingFormat = node.GetBusOutputFormat(0);
                    node.InstallTapOnBus(0, 1024, recordingFormat, (AVAudioPcmBuffer buffer, AVAudioTime when) =>
                    {
                        LiveSpeechRequest.Append(buffer);
                    });

                    if (AudioEngine == null)
                    {
                        Stop();
                        return;
                    }

                    AudioEngine?.Prepare();
                    AudioEngine?.StartAndReturnError(out error);

                    if (LogErrorAndStop(error))
                    {
                        return;
                    }
                }
            }
示例#7
0
 public static void OnEvent(Event e)
 {
     Listeners?.Invoke(e);
 }
示例#8
0
 private void notify(object state)
 {
     Listeners.Invoke("Your Friends list has changed " + DateTime.Now + " updating list..");
 }
示例#9
0
 internal void TraceMessage(TraceMessage message, string at, int id)
 {
     Tracer.TraceEvent(message.TraceLevel, id, "At {0}: {1}", at, message.Message);
     Listeners?.Invoke(null, $"At {at}: {id} {message.BuildError.ToString()}; {message.Message}");
 }
示例#10
0
 public void Charge(int capacity)
 {
     Listeners?.Invoke(capacity);
 }
示例#11
0
 private void notify(object state)
 {
     Listeners.Invoke("check");
 }
 private void Update()
 {
     Listeners?.Invoke();
 }