Beispiel #1
0
 static void engine_ExpressivEmoStateUpdated(object sender, EmoStateUpdatedEventArgs e)
 {
     EmoState es = e.emoState;
     isBlink = es.ExpressivIsBlink();
     isLeftWink = es.ExpressivIsLeftWink();
     isRightWink = es.ExpressivIsRightWink();
     isEyesOpen = es.ExpressivIsEyesOpen();
     isLookingUp = es.ExpressivIsLookingUp();
     isLookingDown = es.ExpressivIsLookingDown();
     isLookingLeft = es.ExpressivIsLookingLeft();
     isLookingRight = es.ExpressivIsLookingRight();
     es.ExpressivGetEyelidState(out eyelidStateLeft, out eyelidStateRight);
     es.ExpressivGetEyeLocation(out eyeLocationX, out eyeLocationY);
     eyebrowExtent = es.ExpressivGetEyebrowExtent();
     smileExtent = es.ExpressivGetSmileExtent();
     clenchExtent = es.ExpressivGetClenchExtent();
     upperFaceAction = es.ExpressivGetUpperFaceAction();
     upperFacePower = es.ExpressivGetUpperFaceActionPower();
     lowerFaceAction = es.ExpressivGetLowerFaceAction();
     lowerFacePower = es.ExpressivGetLowerFaceActionPower();
     for (int i = 0; i < expAlgoList.Length; ++i)
     {
         isExpActiveList[i] = es.ExpressivIsActive(expAlgoList[i]);
     }
 }
Beispiel #2
0
    static void engine_ExpressivEmoStateUpdated(object sender, EmoStateUpdatedEventArgs e)
    {
        EmoState es = e.emoState;

        isBlink        = es.ExpressivIsBlink();
        isLeftWink     = es.ExpressivIsLeftWink();
        isRightWink    = es.ExpressivIsRightWink();
        isEyesOpen     = es.ExpressivIsEyesOpen();
        isLookingUp    = es.ExpressivIsLookingUp();
        isLookingDown  = es.ExpressivIsLookingDown();
        isLookingLeft  = es.ExpressivIsLookingLeft();
        isLookingRight = es.ExpressivIsLookingRight();
        es.ExpressivGetEyelidState(out eyelidStateLeft, out eyelidStateRight);
        es.ExpressivGetEyeLocation(out eyeLocationX, out eyeLocationY);
        eyebrowExtent   = es.ExpressivGetEyebrowExtent();
        smileExtent     = es.ExpressivGetSmileExtent();
        clenchExtent    = es.ExpressivGetClenchExtent();
        upperFaceAction = es.ExpressivGetUpperFaceAction();
        upperFacePower  = es.ExpressivGetUpperFaceActionPower();
        lowerFaceAction = es.ExpressivGetLowerFaceAction();
        lowerFacePower  = es.ExpressivGetLowerFaceActionPower();
        for (int i = 0; i < expAlgoList.Length; ++i)
        {
            isExpActiveList[i] = es.ExpressivIsActive(expAlgoList[i]);
        }
    }
Beispiel #3
0
    public int ExpressivGetThreshold(uint userId, EdkDll.EE_ExpressivAlgo_t algoName, EdkDll.EE_ExpressivThreshold_t thresholdName)
    {
        int result = 0;

        EmoEngine.errorHandler(EdkDll.EE_ExpressivGetThreshold(userId, algoName, thresholdName, out result));
        return(result);
    }
Beispiel #4
0
        //Event handler for Expressiv event
        void ExpressivEmoStateUpdated()
        {
            if (FEmoState[0] != null)
            {
                EmoState es = FEmoState[0];

                mIsBlink        = es.ExpressivIsBlink();
                mIsLeftWink     = es.ExpressivIsLeftWink();
                mIsRightWink    = es.ExpressivIsRightWink();
                mIsEyesOpen     = es.ExpressivIsEyesOpen();
                mIsLookingUp    = es.ExpressivIsLookingUp();
                mIsLookingDown  = es.ExpressivIsLookingDown();
                mIsLookingLeft  = es.ExpressivIsLookingLeft();
                mIsLookingRight = es.ExpressivIsLookingRight();
                mLeftEyelid     = 0.0F;
                mRightEyelid    = 0.0F;
                mX = 0.0F;
                mY = 0.0F;
                es.ExpressivGetEyelidState(out mLeftEyelid, out mRightEyelid);
                es.ExpressivGetEyeLocation(out mX, out mY);
                mEyebrowExtent   = es.ExpressivGetEyebrowExtent();
                mSmileExtent     = es.ExpressivGetSmileExtent();
                mClenchExtent    = es.ExpressivGetClenchExtent();
                mUpperFaceAction = es.ExpressivGetUpperFaceAction();
                mUpperFacePower  = es.ExpressivGetUpperFaceActionPower();
                mLowerFaceAction = es.ExpressivGetLowerFaceAction();
                mLowerFacePower  = es.ExpressivGetLowerFaceActionPower();
                for (int i = 0; i < mExpAlgoList.Length; ++i)
                {
                    mIsExpActiveList[i] = es.ExpressivIsActive(mExpAlgoList[i]);
                }
            }
        }
Beispiel #5
0
    private static void engine_ExpressivEmoStateUpdated(object sender, EmoStateUpdatedEventArgs e)
    {
        EmoState emoState = e.emoState;

        EmoExpressiv.isBlink        = emoState.ExpressivIsBlink();
        EmoExpressiv.isLeftWink     = emoState.ExpressivIsLeftWink();
        EmoExpressiv.isRightWink    = emoState.ExpressivIsRightWink();
        EmoExpressiv.isEyesOpen     = emoState.ExpressivIsEyesOpen();
        EmoExpressiv.isLookingUp    = emoState.ExpressivIsLookingUp();
        EmoExpressiv.isLookingDown  = emoState.ExpressivIsLookingDown();
        EmoExpressiv.isLookingLeft  = emoState.ExpressivIsLookingLeft();
        EmoExpressiv.isLookingRight = emoState.ExpressivIsLookingRight();
        emoState.ExpressivGetEyelidState(out EmoExpressiv.eyelidStateLeft, out EmoExpressiv.eyelidStateRight);
        emoState.ExpressivGetEyeLocation(out EmoExpressiv.eyeLocationX, out EmoExpressiv.eyeLocationY);
        EmoExpressiv.eyebrowExtent   = emoState.ExpressivGetEyebrowExtent();
        EmoExpressiv.smileExtent     = emoState.ExpressivGetSmileExtent();
        EmoExpressiv.clenchExtent    = emoState.ExpressivGetClenchExtent();
        EmoExpressiv.upperFaceAction = emoState.ExpressivGetUpperFaceAction();
        EmoExpressiv.upperFacePower  = emoState.ExpressivGetUpperFaceActionPower();
        EmoExpressiv.lowerFaceAction = emoState.ExpressivGetLowerFaceAction();
        EmoExpressiv.lowerFacePower  = emoState.ExpressivGetLowerFaceActionPower();
        for (int i = 0; i < EmoExpressiv.expAlgoList.Length; i++)
        {
            EmoExpressiv.isExpActiveList[i] = emoState.ExpressivIsActive(EmoExpressiv.expAlgoList[i]);
        }
    }
Beispiel #6
0
 private static void engine_ExpressivEmoStateUpdated(object sender, EmoStateUpdatedEventArgs e)
 {
     EmoState emoState = e.emoState;
     EmoExpressiv.isBlink = emoState.ExpressivIsBlink();
     EmoExpressiv.isLeftWink = emoState.ExpressivIsLeftWink();
     EmoExpressiv.isRightWink = emoState.ExpressivIsRightWink();
     EmoExpressiv.isEyesOpen = emoState.ExpressivIsEyesOpen();
     EmoExpressiv.isLookingUp = emoState.ExpressivIsLookingUp();
     EmoExpressiv.isLookingDown = emoState.ExpressivIsLookingDown();
     EmoExpressiv.isLookingLeft = emoState.ExpressivIsLookingLeft();
     EmoExpressiv.isLookingRight = emoState.ExpressivIsLookingRight();
     emoState.ExpressivGetEyelidState(out EmoExpressiv.eyelidStateLeft, out EmoExpressiv.eyelidStateRight);
     emoState.ExpressivGetEyeLocation(out EmoExpressiv.eyeLocationX, out EmoExpressiv.eyeLocationY);
     EmoExpressiv.eyebrowExtent = emoState.ExpressivGetEyebrowExtent();
     EmoExpressiv.smileExtent = emoState.ExpressivGetSmileExtent();
     EmoExpressiv.clenchExtent = emoState.ExpressivGetClenchExtent();
     EmoExpressiv.upperFaceAction = emoState.ExpressivGetUpperFaceAction();
     EmoExpressiv.upperFacePower = emoState.ExpressivGetUpperFaceActionPower();
     EmoExpressiv.lowerFaceAction = emoState.ExpressivGetLowerFaceAction();
     EmoExpressiv.lowerFacePower = emoState.ExpressivGetLowerFaceActionPower();
     for (int i = 0; i < EmoExpressiv.expAlgoList.Length; i++)
     {
         EmoExpressiv.isExpActiveList[i] = emoState.ExpressivIsActive(EmoExpressiv.expAlgoList[i]);
     }
 }
Beispiel #7
0
        public int ExpressivGetThreshold(uint userId, EdkDll.EE_ExpressivAlgo_t algoName, EdkDll.EE_ExpressivThreshold_t thresholdName)
        {
            int pValueOut = 0;

            errorHandler(EdkDll.EE_ExpressivGetThreshold(userId, algoName, thresholdName, out pValueOut));
            return(pValueOut);
        }
Beispiel #8
0
 public static int EE_ExpressivSetTrainingAction(uint userId, EdkDll.EE_ExpressivAlgo_t action)
 {
     return(EdkDll.Unmanged_EE_ExpressivSetTrainingAction(userId, action));
 }
Beispiel #9
0
 public static int EE_ExpressivGetThreshold(uint userId, EdkDll.EE_ExpressivAlgo_t algoName, EdkDll.EE_ExpressivThreshold_t thresholdName, out int pValueOut)
 {
     return(EdkDll.Unmanged_EE_ExpressivGetThreshold(userId, algoName, thresholdName, out pValueOut));
 }
Beispiel #10
0
 public bool ExpressivIsActive(EdkDll.EE_ExpressivAlgo_t type)
 {
     return(EdkDll.ES_ExpressivIsActive(this.hEmoState, type));
 }
Beispiel #11
0
        private static void epressiveStateUdpate(object sender, EmoStateUpdatedEventArgs e)
        {
            EmoState es = e.emoState;

            if (e.userId == userID)
            {
                string header = "EmoState_Timestamp;" +
                                "LowerFaceAction;LowerFaceActionPower;UpperFaceAction;UpperFaceActionPower;" +
                                " ExpressivEyelidStateX;ExpressivEyelidStateY;ExpressivEyeLocationX;ExpressivEyeLocationY;" +
                                "IsBlink;AreEyesOpen;IsLeftWink;IsRightWink;IsLookingLeft;IsLookingRight;IsLookingDown;IsLookingUp";
                // Wr;ite the data to a file
                TextWriter file = new StreamWriter(filename, true);

                file.Write(es.GetTimeFromStart());
                file.Write(";");

                EdkDll.EE_ExpressivAlgo_t lowerFaceAction = es.ExpressivGetLowerFaceAction();
                float lowerFaceActionPower = es.ExpressivGetLowerFaceActionPower();

                EdkDll.EE_ExpressivAlgo_t upperFaceAction = es.ExpressivGetUpperFaceAction();
                float upperFaceActionPower = es.ExpressivGetUpperFaceActionPower();

                file.Write(lowerFaceAction);
                file.Write(";");
                file.Write(lowerFaceActionPower);
                file.Write(";");

                file.Write(upperFaceAction);
                file.Write(";");
                file.Write(upperFaceActionPower);
                file.Write(";");

                // EYES
                float x, y;
                es.ExpressivGetEyelidState(out x, out y);

                file.Write(x);
                file.Write(";");
                file.Write(y);
                file.Write(";");



                float posX, posY;
                es.ExpressivGetEyeLocation(out posX, out posY);

                file.Write(posX);
                file.Write(";");
                file.Write(posY);
                file.Write(";");

                bool isBlink = es.ExpressivIsBlink();
                file.Write(isBlink);
                file.Write(";");

                bool areEyesOpen = es.ExpressivIsEyesOpen();
                file.Write(areEyesOpen);
                file.Write(";");

                bool isLeftWink  = es.ExpressivIsLeftWink();
                bool isRightWink = es.ExpressivIsRightWink();
                file.Write(isLeftWink);
                file.Write(";");
                file.Write(isRightWink);
                file.Write(";");



                bool isLookingLeft  = es.ExpressivIsLookingLeft();
                bool isLookingRight = es.ExpressivIsLookingRight();
                bool isLookingDown  = es.ExpressivIsLookingDown();
                bool isLookingUp    = es.ExpressivIsLookingUp();
                file.Write(isLookingLeft);
                file.Write(";");
                file.Write(isLookingRight);
                file.Write(";");
                file.Write(isLookingDown);
                file.Write(";");
                file.Write(isLookingUp);
                file.Write(";");

                file.WriteLine("");
                file.Close();
            }
        }
Beispiel #12
0
 private static extern int Unmanged_EE_ExpressivSetThreshold(uint userId, EdkDll.EE_ExpressivAlgo_t algoName, EdkDll.EE_ExpressivThreshold_t thresholdName, int value);
Beispiel #13
0
 public static bool ES_ExpressivIsActive(IntPtr state, EdkDll.EE_ExpressivAlgo_t type)
 {
     return(EdkDll.Unmanaged_ES_ExpressivIsActive(state, type));
 }
        //Event handler for Expressiv event
        void ExpressivEmoStateUpdated()
        {
            if (FEmoState[0] != null)
            {
                EmoState es = FEmoState[0];

                mIsBlink = es.ExpressivIsBlink();
                mIsLeftWink = es.ExpressivIsLeftWink();
                mIsRightWink = es.ExpressivIsRightWink();
                mIsEyesOpen = es.ExpressivIsEyesOpen();
                mIsLookingUp = es.ExpressivIsLookingUp();
                mIsLookingDown = es.ExpressivIsLookingDown();
                mIsLookingLeft = es.ExpressivIsLookingLeft();
                mIsLookingRight = es.ExpressivIsLookingRight();
                mLeftEyelid = 0.0F;
                mRightEyelid = 0.0F;
                mX = 0.0F;
                mY = 0.0F;
                es.ExpressivGetEyelidState(out mLeftEyelid, out mRightEyelid);
                es.ExpressivGetEyeLocation(out mX, out mY);
                mEyebrowExtent = es.ExpressivGetEyebrowExtent();
                mSmileExtent = es.ExpressivGetSmileExtent();
                mClenchExtent = es.ExpressivGetClenchExtent();
                mUpperFaceAction = es.ExpressivGetUpperFaceAction();
                mUpperFacePower = es.ExpressivGetUpperFaceActionPower();
                mLowerFaceAction = es.ExpressivGetLowerFaceAction();
                mLowerFacePower = es.ExpressivGetLowerFaceActionPower();
                for (int i = 0; i < mExpAlgoList.Length; ++i)
                {
                    mIsExpActiveList[i] = es.ExpressivIsActive(mExpAlgoList[i]);
                }
            }
        }
Beispiel #15
0
        static void engine_ExpressivEmoStateUpdated(object sender, EmoStateUpdatedEventArgs e)
        {
            EmoState es = e.emoState;

            Single timeFromStart = es.GetTimeFromStart();

            EdkDll.EE_ExpressivAlgo_t[] expAlgoList =
            {
                EdkDll.EE_ExpressivAlgo_t.EXP_BLINK,
                EdkDll.EE_ExpressivAlgo_t.EXP_CLENCH,
                EdkDll.EE_ExpressivAlgo_t.EXP_EYEBROW,
                EdkDll.EE_ExpressivAlgo_t.EXP_FURROW,
                EdkDll.EE_ExpressivAlgo_t.EXP_HORIEYE,
                EdkDll.EE_ExpressivAlgo_t.EXP_LAUGH,
                EdkDll.EE_ExpressivAlgo_t.EXP_NEUTRAL,
                EdkDll.EE_ExpressivAlgo_t.EXP_SMILE,
                EdkDll.EE_ExpressivAlgo_t.EXP_SMIRK_LEFT,
                EdkDll.EE_ExpressivAlgo_t.EXP_SMIRK_RIGHT,
                EdkDll.EE_ExpressivAlgo_t.EXP_WINK_LEFT,
                EdkDll.EE_ExpressivAlgo_t.EXP_WINK_RIGHT
            };
            Boolean[] isExpActiveList = new Boolean[expAlgoList.Length];

            Boolean isBlink        = es.ExpressivIsBlink();
            Boolean isLeftWink     = es.ExpressivIsLeftWink();
            Boolean isRightWink    = es.ExpressivIsRightWink();
            Boolean isEyesOpen     = es.ExpressivIsEyesOpen();
            Boolean isLookingUp    = es.ExpressivIsLookingUp();
            Boolean isLookingDown  = es.ExpressivIsLookingDown();
            Boolean isLookingLeft  = es.ExpressivIsLookingLeft();
            Boolean isLookingRight = es.ExpressivIsLookingRight();
            Single  leftEye        = 0.0F;
            Single  rightEye       = 0.0F;
            Single  x = 0.0F;
            Single  y = 0.0F;

            es.ExpressivGetEyelidState(out leftEye, out rightEye);
            es.ExpressivGetEyeLocation(out x, out y);
            Single eyebrowExtent = es.ExpressivGetEyebrowExtent();
            Single smileExtent   = es.ExpressivGetSmileExtent();
            Single clenchExtent  = es.ExpressivGetClenchExtent();

            EdkDll.EE_ExpressivAlgo_t upperFaceAction = es.ExpressivGetUpperFaceAction();
            Single upperFacePower = es.ExpressivGetUpperFaceActionPower();

            EdkDll.EE_ExpressivAlgo_t lowerFaceAction = es.ExpressivGetLowerFaceAction();
            Single lowerFacePower = es.ExpressivGetLowerFaceActionPower();

            for (int i = 0; i < expAlgoList.Length; ++i)
            {
                isExpActiveList[i] = es.ExpressivIsActive(expAlgoList[i]);
            }

            expLog.Write(
                "{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17},{18},",
                timeFromStart,
                isBlink, isLeftWink, isRightWink, isEyesOpen, isLookingUp,
                isLookingDown, isLookingLeft, isLookingRight, leftEye, rightEye,
                x, y, eyebrowExtent, smileExtent, upperFaceAction,
                upperFacePower, lowerFaceAction, lowerFacePower);
            for (int i = 0; i < expAlgoList.Length; ++i)
            {
                expLog.Write("{0},", isExpActiveList[i]);
            }
            expLog.WriteLine("");
            expLog.Flush();
        }
Beispiel #16
0
 public static int EE_ExpressivGetTrainingAction(uint userId, out EdkDll.EE_ExpressivAlgo_t pActionOut)
 {
     return(EdkDll.Unmanged_EE_ExpressivGetTrainingAction(userId, out pActionOut));
 }
Beispiel #17
0
 public void ExpressivSetThreshold(uint userId, EdkDll.EE_ExpressivAlgo_t algoName, EdkDll.EE_ExpressivThreshold_t thresholdName, int value)
 {
     EmoEngine.errorHandler(EdkDll.EE_ExpressivSetThreshold(userId, algoName, thresholdName, value));
 }
Beispiel #18
0
 private static extern int Unmanged_EE_ExpressivGetThreshold(uint userId, EdkDll.EE_ExpressivAlgo_t algoName, EdkDll.EE_ExpressivThreshold_t thresholdName, out int pValueOut);
Beispiel #19
0
 public void ExpressivSetTrainingAction(uint userId, EdkDll.EE_ExpressivAlgo_t action)
 {
     EmoEngine.errorHandler(EdkDll.EE_ExpressivSetTrainingAction(userId, action));
 }
Beispiel #20
0
 private static extern int Unmanged_EE_ExpressivSetTrainingAction(uint userId, EdkDll.EE_ExpressivAlgo_t action);
Beispiel #21
0
 public void StartTrainExpressiv(EdkDll.EE_ExpressivAlgo_t expressivAlg)
 {
     engine.ExpressivSetTrainingAction((uint)EmoUserManagement.currentUser, expressivAlg);
     engine.ExpressivSetTrainingControl((uint)EmoUserManagement.currentUser, EdkDll.EE_ExpressivTrainingControl_t.EXP_START);
 }
Beispiel #22
0
 private static extern int Unmanged_EE_ExpressivGetTrainingAction(uint userId, out EdkDll.EE_ExpressivAlgo_t pActionOut);
Beispiel #23
0
 /// <summary>
 /// Query whether the signal is too noisy for Expressiv detection to be active
 /// </summary>
 /// <param name="type">Expressiv detection type</param>
 /// <returns>detection state (false: Not Active, true: Active)</returns>
 public Boolean ExpressivIsActive(EdkDll.EE_ExpressivAlgo_t type)
 {
     return(EdkDll.ES_ExpressivIsActive(hEmoState, type));
 }
Beispiel #24
0
 private static extern bool Unmanaged_ES_ExpressivIsActive(IntPtr state, EdkDll.EE_ExpressivAlgo_t type);
Beispiel #25
0
 private void ExpressionTraining(EdkDll.EE_ExpressivAlgo_t action)
 {
     _engine.ExpressivSetTrainingAction(0, action);
     _engine.ExpressivSetTrainingControl(0, EdkDll.EE_ExpressivTrainingControl_t.EXP_START);
 }
Beispiel #26
0
 public static int EE_ExpressivSetThreshold(uint userId, EdkDll.EE_ExpressivAlgo_t algoName, EdkDll.EE_ExpressivThreshold_t thresholdName, int value)
 {
     return(EdkDll.Unmanged_EE_ExpressivSetThreshold(userId, algoName, thresholdName, value));
 }