void OscSendingDevice::sendEvent(const osgGA::Event &ea) { bool msg_sent(false); unsigned int num_messages = _numMessagesPerEvent; const osgGA::GUIEventAdapter* ui_event(ea.asGUIEventAdapter()); if(ui_event && ((ui_event->getEventType() == osgGA::GUIEventAdapter::DRAG) || (ui_event->getEventType() == osgGA::GUIEventAdapter::MOVE))) num_messages = 1; for(unsigned int i = 0; i < num_messages; ++i) { msg_sent = ui_event ? sendUIEventImpl(*ui_event, _msgId) : sendEventImpl(ea, _msgId); if ((_delayBetweenSendsInMilliSecs > 0) && (i < num_messages-1)) OpenThreads::Thread::microSleep(1000 * _delayBetweenSendsInMilliSecs); } if (_finishMultiTouchSequence) { // if the last touch-point ended we'll need to send an empty tuio-bundle, so the receiver gets a chance to clean up _msgId++; for(unsigned int i = 0; i < num_messages; ++i) { beginBundle(_msgId); beginMultiTouchSequence(); _oscStream << osc::EndBundle; _transmitSocket.Send( _oscStream.Data(), _oscStream.Size() ); _oscStream.Clear(); } _finishMultiTouchSequence = false; } if (msg_sent) _msgId++; }
void OscSendingDevice::sendEvent(const osgGA::Event &ea) { bool msg_sent(false); unsigned int num_messages = _numMessagesPerEvent; const osgGA::GUIEventAdapter* ui_event(ea.asGUIEventAdapter()); if(ui_event && ((ui_event->getEventType() == osgGA::GUIEventAdapter::DRAG) || (ui_event->getEventType() == osgGA::GUIEventAdapter::MOVE))) num_messages = 1; for(unsigned int i = 0; i < num_messages; ++i) { msg_sent = ui_event ? sendUIEventImpl(*ui_event, _msgId) : sendEventImpl(ea, _msgId); if ((_delayBetweenSendsInMilliSecs > 0) && (i < num_messages-1)) OpenThreads::Thread::microSleep(1000 * _delayBetweenSendsInMilliSecs); } if (msg_sent) _msgId++; }