Expression extractExpression(EmoStateHandle state) { Expression ret; ret.upperFace = ES_ExpressivGetUpperFaceAction(state); ret.lowerFace = ES_ExpressivGetUpperFaceAction(state); ret.upperFacePwr = ES_ExpressivGetUpperFaceAction(state); ret.lowerFacePwr = ES_ExpressivGetLowerFaceAction(state); if(ES_ExpressivIsBlink(state)) { ret.eyeState |= Expression::BLINK; } if(ES_ExpressivIsLeftWink(state)) { ret.eyeState |= Expression::LWINK; } if(ES_ExpressivIsRightWink(state)) { ret.eyeState |= Expression::RWINK; } if(ES_ExpressivIsLookingRight(state)) { ret.eyeState |= Expression::RLOOK; } if(ES_ExpressivIsLookingLeft(state)) { ret.eyeState |= Expression::LLOOK; } return ret; }
void emotiv::logEmoState(std::ostream& os, unsigned int userID, EmoStateHandle eState, bool withHeader) { ofNotifyEvent(elEventoEmo, eState); // Create the top header if (withHeader) { os << "Time,"; os << "UserID,"; os << "Wireless Signal Status,"; os << "Blink,"; os << "Wink Left,"; os << "Wink Right,"; os << "Look Left,"; os << "Look Right,"; os << "Eyebrow,"; os << "Furrow,"; os << "Smile,"; os << "Clench,"; os << "Smirk Left,"; os << "Smirk Right,"; os << "Laugh,"; os << "Short Term Excitement,"; os << "Long Term Excitement,"; os << "Engagement/Boredom,"; os << "Cognitiv Action,"; os << "Cognitiv Power,"; os << std::endl; } // Log the time stamp and user ID os << ES_GetTimeFromStart(eState) << ","; os << userID << ","; os << static_cast<int>(ES_GetWirelessSignalStatus(eState)) << ","; // Expressiv Suite results os << ES_ExpressivIsBlink(eState) << ","; os << ES_ExpressivIsLeftWink(eState) << ","; os << ES_ExpressivIsRightWink(eState) << ","; os << ES_ExpressivIsLookingLeft(eState) << ","; os << ES_ExpressivIsLookingRight(eState) << ","; std::map<EE_ExpressivAlgo_t, float> expressivStates; EE_ExpressivAlgo_t upperFaceAction = ES_ExpressivGetUpperFaceAction(eState); float upperFacePower = ES_ExpressivGetUpperFaceActionPower(eState); EE_ExpressivAlgo_t lowerFaceAction = ES_ExpressivGetLowerFaceAction(eState); float lowerFacePower = ES_ExpressivGetLowerFaceActionPower(eState); expressivStates[ upperFaceAction ] = upperFacePower; expressivStates[ lowerFaceAction ] = lowerFacePower; os << expressivStates[ EXP_EYEBROW ] << ","; // eyebrow os << expressivStates[ EXP_FURROW ] << ","; // furrow os << expressivStates[ EXP_SMILE ] << ","; // smile os << expressivStates[ EXP_CLENCH ] << ","; // clench os << expressivStates[ EXP_SMIRK_LEFT ] << ","; // smirk left os << expressivStates[ EXP_SMIRK_RIGHT ] << ","; // smirk right os << expressivStates[ EXP_LAUGH ] << ","; // laugh // Affectiv Suite results os << ES_AffectivGetExcitementShortTermScore(eState) << ","; os << ES_AffectivGetExcitementLongTermScore(eState) << ","; os << ES_AffectivGetEngagementBoredomScore(eState) << ","; // Cognitiv Suite results os << static_cast<int>(ES_CognitivGetCurrentAction(eState)) << ","; os << ES_CognitivGetCurrentActionPower(eState); os << std::endl; };