void Sender::commitFrame(){ if (mUpdateCursor){ startCursorBundle(); for (std::list<Cursor*>::iterator it = mCursors.begin(); it != mCursors.end(); it++){ Cursor *cursor = (*it); if (mFullUpdate || (cursor->getTime() == mCurrentFrameTime)) addCursorMessage(cursor); } sendCursorBundle(mCurrentFrame); }else if (mLastCursorUpdate < mCurrentFrameTime) { mLastCursorUpdate = mCurrentFrameTime; startCursorBundle(); sendCursorBundle(mCurrentFrame); } mUpdateCursor = false; if (mUpdateObject){ startObjectBundle(); for (std::list<Object*>::iterator it = mObjects.begin(); it != mObjects.end(); it++){ Object *object = (*it); if (mFullUpdate || object->getTime() == mCurrentFrameTime) addObjectMessage(object); } sendObjectBundle(mCurrentFrame); }else if (mLastObjectUpdate < mCurrentFrameTime) { mLastObjectUpdate = mCurrentFrameTime; startObjectBundle(); sendObjectBundle(mCurrentFrame); } mUpdateObject = false; }
std::list<Cursor*> Sender::getUntouchedCursors(){ std::list<Cursor*> untouched; for (std::list<Cursor*>::iterator it = mCursors.begin(); it != mCursors.end(); it++) { Cursor *cursor = (*it); if (cursor->getTime() != mCurrentFrameTime) untouched.push_back(cursor); } return untouched; }
void Sender::removeUntouchedStoppedCursors(){ std::list<Cursor*>::iterator it = mCursors.begin(); while (it != mCursors.end()) { Cursor *cursor = (*it); if ((cursor->getTime() != mCurrentFrameTime) && (!cursor->isMoving())) { removeTuioCursor(cursor); it = mCursors.begin(); } else it++; } }
void Sender::stopUntouchedMovingCursors(){ std::list<Cursor*> untouched; for (std::list<Cursor*>::iterator it = mCursors.begin(); it != mCursors.end(); it++) { Cursor *cursor = (*it); if ((cursor->getTime() != mCurrentFrameTime) && (cursor->isMoving())) { cursor->stop(mCurrentFrameTime); mUpdateCursor = true; } } }