Exemplo n.º 1
0
    public void ProcessEvents(int maxTimeMilliseconds)
    {
        Stopwatch stopwatch = new Stopwatch();

        stopwatch.Start();
        while (EdkDll.EE_EngineGetNextEvent(this.hEvent) == 0)
        {
            if (maxTimeMilliseconds != 0 && stopwatch.ElapsedMilliseconds >= (long)maxTimeMilliseconds)
            {
                break;
            }
            uint num = 0u;
            EdkDll.EE_EmoEngineEventGetUserId(this.hEvent, out num);
            EmoEngineEventArgs e           = new EmoEngineEventArgs(num);
            EdkDll.EE_Event_t  eE_Event_t  = EdkDll.EE_EmoEngineEventGetType(this.hEvent);
            EdkDll.EE_Event_t  eE_Event_t2 = eE_Event_t;
            if (eE_Event_t2 != EdkDll.EE_Event_t.EE_UserAdded)
            {
                if (eE_Event_t2 != EdkDll.EE_Event_t.EE_UserRemoved)
                {
                    if (eE_Event_t2 != EdkDll.EE_Event_t.EE_EmoStateUpdated)
                    {
                        if (eE_Event_t2 != EdkDll.EE_Event_t.EE_CognitivEvent)
                        {
                            if (eE_Event_t2 != EdkDll.EE_Event_t.EE_ExpressivEvent)
                            {
                                if (eE_Event_t2 == EdkDll.EE_Event_t.EE_InternalStateChanged)
                                {
                                    this.OnInternalStateChanged(e);
                                }
                            }
                            else
                            {
                                switch (EdkDll.EE_ExpressivEventGetType(this.hEvent))
                                {
                                case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingStarted:
                                    this.OnExpressivTrainingStarted(e);
                                    break;

                                case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingSucceeded:
                                    this.OnExpressivTrainingSucceeded(e);
                                    break;

                                case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingFailed:
                                    this.OnExpressivTrainingFailed(e);
                                    break;

                                case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingCompleted:
                                    this.OnExpressivTrainingCompleted(e);
                                    break;

                                case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingDataErased:
                                    this.OnExpressivTrainingDataErased(e);
                                    break;

                                case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingRejected:
                                    this.OnExpressivTrainingRejected(e);
                                    break;

                                case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingReset:
                                    this.OnExpressivTrainingReset(e);
                                    break;
                                }
                            }
                        }
                        else
                        {
                            switch (EdkDll.EE_CognitivEventGetType(this.hEvent))
                            {
                            case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingStarted:
                                this.OnCognitivTrainingStarted(e);
                                break;

                            case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingSucceeded:
                                this.OnCognitivTrainingSucceeded(e);
                                break;

                            case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingFailed:
                                this.OnCognitivTrainingFailed(e);
                                break;

                            case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingCompleted:
                                this.OnCognitivTrainingCompleted(e);
                                break;

                            case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingDataErased:
                                this.OnCognitivTrainingDataErased(e);
                                break;

                            case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingRejected:
                                this.OnCognitivTrainingRejected(e);
                                break;

                            case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingReset:
                                this.OnCognitivTrainingReset(e);
                                break;

                            case EdkDll.EE_CognitivEvent_t.EE_CognitivAutoSamplingNeutralCompleted:
                                this.OnCognitivAutoSamplingNeutralCompleted(e);
                                break;

                            case EdkDll.EE_CognitivEvent_t.EE_CognitivSignatureUpdated:
                                this.OnCognitivSignatureUpdated(e);
                                break;
                            }
                        }
                    }
                    else
                    {
                        EmoState emoState = new EmoState();
                        EmoEngine.errorHandler(EdkDll.EE_EmoEngineEventGetEmoState(this.hEvent, emoState.GetHandle()));
                        EmoStateUpdatedEventArgs e2 = new EmoStateUpdatedEventArgs(num, emoState);
                        this.OnEmoStateUpdated(e2);
                        if (!emoState.EmoEngineEqual(this.lastEmoState[num]))
                        {
                            e2 = new EmoStateUpdatedEventArgs(num, new EmoState(emoState));
                            this.OnEmoEngineEmoStateUpdated(e2);
                        }
                        if (!emoState.AffectivEqual(this.lastEmoState[num]))
                        {
                            e2 = new EmoStateUpdatedEventArgs(num, new EmoState(emoState));
                            this.OnAffectivEmoStateUpdated(e2);
                        }
                        if (!emoState.CognitivEqual(this.lastEmoState[num]))
                        {
                            e2 = new EmoStateUpdatedEventArgs(num, new EmoState(emoState));
                            this.OnCognitivEmoStateUpdated(e2);
                        }
                        if (!emoState.ExpressivEqual(this.lastEmoState[num]))
                        {
                            e2 = new EmoStateUpdatedEventArgs(num, new EmoState(emoState));
                            this.OnExpressivEmoStateUpdated(e2);
                        }
                        this.lastEmoState[num] = (EmoState)emoState.Clone();
                    }
                }
                else
                {
                    this.OnUserRemoved(e);
                }
            }
            else
            {
                this.OnUserAdded(e);
            }
        }
    }