Exemple #1
0
        /// <summary>
        /// Processes EmoEngine events until there is no more events or maximum processing time has elapsed
        /// </summary>
        /// <param name="maxTimeMilliseconds">maximum processing time in milliseconds</param>
        public void ProcessEvents(Int32 maxTimeMilliseconds)
        {
            Stopwatch st = new Stopwatch();

            st.Start();
            while (EdkDll.EE_EngineGetNextEvent(hEvent) == EdkDll.EDK_OK)
            {
                if (maxTimeMilliseconds != 0)
                {
                    if (st.ElapsedMilliseconds >= maxTimeMilliseconds)
                        break;
                }
                UInt32 userId = 0;
                EdkDll.EE_EmoEngineEventGetUserId(hEvent, out userId);
                EmoEngineEventArgs args = new EmoEngineEventArgs(userId);
                EdkDll.EE_Event_t eventType = EdkDll.EE_EmoEngineEventGetType(hEvent);
                switch (eventType)
                {
                    case EdkDll.EE_Event_t.EE_UserAdded:
                        OnUserAdded(args);
                        break;
                    case EdkDll.EE_Event_t.EE_UserRemoved:
                        OnUserRemoved(args);
                        break;
                    case EdkDll.EE_Event_t.EE_EmoStateUpdated:
                        EmoState curEmoState = new EmoState();
                        errorHandler(EdkDll.EE_EmoEngineEventGetEmoState(hEvent, curEmoState.GetHandle()));
                        EmoStateUpdatedEventArgs emoStateUpdatedEventArgs = new EmoStateUpdatedEventArgs(userId, curEmoState);
                        OnEmoStateUpdated(emoStateUpdatedEventArgs);
                        if (!curEmoState.EmoEngineEqual(lastEmoState[userId]))
                        {
                            emoStateUpdatedEventArgs = new EmoStateUpdatedEventArgs(userId, new EmoState(curEmoState));
                            OnEmoEngineEmoStateUpdated(emoStateUpdatedEventArgs);
                        }
                        if (!curEmoState.AffectivEqual(lastEmoState[userId]))
                        {
                            emoStateUpdatedEventArgs = new EmoStateUpdatedEventArgs(userId, new EmoState(curEmoState));
                            OnAffectivEmoStateUpdated(emoStateUpdatedEventArgs);
                        }
                        if (!curEmoState.CognitivEqual(lastEmoState[userId]))
                        {
                            emoStateUpdatedEventArgs = new EmoStateUpdatedEventArgs(userId, new EmoState(curEmoState));
                            OnCognitivEmoStateUpdated(emoStateUpdatedEventArgs);
                        }
                        if (!curEmoState.ExpressivEqual(lastEmoState[userId]))
                        {
                            emoStateUpdatedEventArgs = new EmoStateUpdatedEventArgs(userId, new EmoState(curEmoState));
                            OnExpressivEmoStateUpdated(emoStateUpdatedEventArgs);
                        }
                        lastEmoState[userId] = (EmoState)curEmoState.Clone();
                        break;
                    case EdkDll.EE_Event_t.EE_CognitivEvent:
                        EdkDll.EE_CognitivEvent_t cogType = EdkDll.EE_CognitivEventGetType(hEvent);
                        switch(cogType){
                            case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingStarted:
                                OnCognitivTrainingStarted(args);
                                break;
                            case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingSucceeded:
                                OnCognitivTrainingSucceeded(args);
                                break;
                            case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingFailed:
                                OnCognitivTrainingFailed(args);
                                break;
                            case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingCompleted:
                                OnCognitivTrainingCompleted(args);
                                break;
                            case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingDataErased:
                                OnCognitivTrainingDataErased(args);
                                break;
                            case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingRejected:
                                OnCognitivTrainingRejected(args);
                                break;
                            case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingReset:
                                OnCognitivTrainingReset(args);
                                break;
                            case EdkDll.EE_CognitivEvent_t.EE_CognitivAutoSamplingNeutralCompleted:
                                OnCognitivAutoSamplingNeutralCompleted(args);
                                break;
                            case EdkDll.EE_CognitivEvent_t.EE_CognitivSignatureUpdated:
                                OnCognitivSignatureUpdated(args);
                                break;
                            default:
                                break;
                        }
                        break;
                    case EdkDll.EE_Event_t.EE_ExpressivEvent:
                        EdkDll.EE_ExpressivEvent_t expEvent = EdkDll.EE_ExpressivEventGetType(hEvent);
                        switch (expEvent)
                        {
                            case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingStarted:
                                OnExpressivTrainingStarted(args);
                                break;
                            case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingSucceeded:
                                OnExpressivTrainingSucceeded(args);
                                break;
                            case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingFailed:
                                OnExpressivTrainingFailed(args);
                                break;
                            case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingCompleted:
                                OnExpressivTrainingCompleted(args);
                                break;
                            case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingDataErased:
                                OnExpressivTrainingDataErased(args);
                                break;
                            case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingRejected:
                                OnExpressivTrainingRejected(args);
                                break;
                            case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingReset:
                                OnExpressivTrainingReset(args);
                                break;
                            default:
                                break;
                        }
                        break;
                    case EdkDll.EE_Event_t.EE_InternalStateChanged:
                        OnInternalStateChanged(args);
                        break;
                    default:
                        break;
                }
            }
        }
Exemple #2
0
        public void ProcessEvents(int maxTimeMilliseconds)
        {
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();
            while (EdkDll.EE_EngineGetNextEvent(this.hEvent) == 0)
            {
                if ((maxTimeMilliseconds != 0) && (stopwatch.ElapsedMilliseconds >= maxTimeMilliseconds))
                {
                    return;
                }
                uint pUserIdOut = 0;
                EdkDll.EE_EmoEngineEventGetUserId(this.hEvent, out pUserIdOut);
                EmoEngineEventArgs e = new EmoEngineEventArgs(pUserIdOut);
                switch (EdkDll.EE_EmoEngineEventGetType(this.hEvent))
                {
                case EdkDll.EE_Event_t.EE_CognitivEvent:
                {
                    switch (EdkDll.EE_CognitivEventGetType(this.hEvent))
                    {
                    case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingStarted:
                    {
                        this.OnCognitivTrainingStarted(e);
                        continue;
                    }

                    case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingSucceeded:
                    {
                        this.OnCognitivTrainingSucceeded(e);
                        continue;
                    }

                    case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingFailed:
                    {
                        this.OnCognitivTrainingFailed(e);
                        continue;
                    }

                    case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingCompleted:
                    {
                        this.OnCognitivTrainingCompleted(e);
                        continue;
                    }

                    case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingDataErased:
                    {
                        this.OnCognitivTrainingDataErased(e);
                        continue;
                    }

                    case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingRejected:
                    {
                        this.OnCognitivTrainingRejected(e);
                        continue;
                    }

                    case EdkDll.EE_CognitivEvent_t.EE_CognitivTrainingReset:
                    {
                        this.OnCognitivTrainingReset(e);
                        continue;
                    }

                    case EdkDll.EE_CognitivEvent_t.EE_CognitivAutoSamplingNeutralCompleted:
                    {
                        this.OnCognitivAutoSamplingNeutralCompleted(e);
                        continue;
                    }

                    case EdkDll.EE_CognitivEvent_t.EE_CognitivSignatureUpdated:
                    {
                        this.OnCognitivSignatureUpdated(e);
                        continue;
                    }
                    }
                    continue;
                }

                case EdkDll.EE_Event_t.EE_ExpressivEvent:
                {
                    switch (EdkDll.EE_ExpressivEventGetType(this.hEvent))
                    {
                    case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingStarted:
                    {
                        this.OnExpressivTrainingStarted(e);
                        continue;
                    }

                    case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingSucceeded:
                    {
                        this.OnExpressivTrainingSucceeded(e);
                        continue;
                    }

                    case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingFailed:
                    {
                        this.OnExpressivTrainingFailed(e);
                        continue;
                    }

                    case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingCompleted:
                    {
                        this.OnExpressivTrainingCompleted(e);
                        continue;
                    }

                    case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingDataErased:
                    {
                        this.OnExpressivTrainingDataErased(e);
                        continue;
                    }

                    case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingRejected:
                    {
                        this.OnExpressivTrainingRejected(e);
                        continue;
                    }

                    case EdkDll.EE_ExpressivEvent_t.EE_ExpressivTrainingReset:
                    {
                        this.OnExpressivTrainingReset(e);
                        continue;
                    }
                    }
                    continue;
                }

                case EdkDll.EE_Event_t.EE_InternalStateChanged:
                    break;

                case EdkDll.EE_Event_t.EE_UserAdded:
                {
                    this.OnUserAdded(e);
                    continue;
                }

                case EdkDll.EE_Event_t.EE_UserRemoved:
                {
                    this.OnUserRemoved(e);
                    continue;
                }

                case EdkDll.EE_Event_t.EE_EmoStateUpdated:
                {
                    EmoState emoState = new EmoState();
                    errorHandler(EdkDll.EE_EmoEngineEventGetEmoState(this.hEvent, emoState.GetHandle()));
                    EmoStateUpdatedEventArgs args2 = new EmoStateUpdatedEventArgs(pUserIdOut, emoState);
                    this.OnEmoStateUpdated(args2);
                    if (!emoState.EmoEngineEqual(this.lastEmoState[pUserIdOut]))
                    {
                        args2 = new EmoStateUpdatedEventArgs(pUserIdOut, new EmoState(emoState));
                        this.OnEmoEngineEmoStateUpdated(args2);
                    }
                    if (!emoState.AffectivEqual(this.lastEmoState[pUserIdOut]))
                    {
                        args2 = new EmoStateUpdatedEventArgs(pUserIdOut, new EmoState(emoState));
                        this.OnAffectivEmoStateUpdated(args2);
                    }
                    if (!emoState.CognitivEqual(this.lastEmoState[pUserIdOut]))
                    {
                        args2 = new EmoStateUpdatedEventArgs(pUserIdOut, new EmoState(emoState));
                        this.OnCognitivEmoStateUpdated(args2);
                    }
                    if (!emoState.ExpressivEqual(this.lastEmoState[pUserIdOut]))
                    {
                        args2 = new EmoStateUpdatedEventArgs(pUserIdOut, new EmoState(emoState));
                        this.OnExpressivEmoStateUpdated(args2);
                    }
                    this.lastEmoState[pUserIdOut] = (EmoState)emoState.Clone();
                    continue;
                }

                default:
                {
                    continue;
                }
                }
                this.OnInternalStateChanged(e);
            }
        }