// Handler for deliverEventQueue. // This thread decodes frames from events. void Cluster::deliveredEvent(const Event& e) { if (e.isCluster()) { EventFrame ef(e, e.getFrame()); // Stop the deliverEventQueue on update offers. // This preserves the connection decoder fragments for an update. // Only do this for the two brokers that are directly involved in this // offer: the one making the offer, or the one receiving it. const ClusterUpdateOfferBody* offer = castUpdateOffer(ef.frame.getBody()); if (offer && ( e.getMemberId() == self || MemberId(offer->getUpdatee()) == self) ) { QPID_LOG(info, *this << " stall for update offer from " << e.getMemberId() << " to " << MemberId(offer->getUpdatee())); deliverEventQueue.stop(); } deliverFrame(ef); } else if(!discarding) { if (e.isControl()) deliverFrame(EventFrame(e, e.getFrame())); else { try { decoder.decode(e, e.getData()); } catch (const Exception& ex) { // Close a connection that is sending us invalid data. QPID_LOG(error, *this << " aborting connection " << e.getConnectionId() << ": " << ex.what()); framing::AMQFrame abort((ClusterConnectionAbortBody())); deliverFrame(EventFrame(EventHeader(CONTROL, e.getConnectionId()), abort)); } } } }
bool CCloud::EventProcess(const Event &event) { if ( event.type == EVENT_FRAME ) return EventFrame(event); return true; }
bool CMotionWorm::EventProcess(const Event &event) { CMotion::EventProcess(event); if ( event.type == EVENT_FRAME ) { return EventFrame(event); } if ( event.type == EVENT_KEY_DOWN ) { } return true; }
bool CMotionSpider::EventProcess(const Event &event) { CMotion::EventProcess(event); if ( event.type == EVENT_FRAME ) { return EventFrame(event); } if ( event.type == EVENT_KEY_DOWN ) { #if ADJUST_ANGLE int i; if ( event.param == 'A' ) m_armTimeIndex++; if ( m_armTimeIndex >= 3 ) m_armTimeIndex = 0; if ( event.param == 'Q' ) m_armPartIndex++; if ( m_armPartIndex >= 4 ) m_armPartIndex = 0; if ( event.param == 'W' ) m_armMemberIndex++; if ( m_armMemberIndex >= 4 ) m_armMemberIndex = 0; i = m_armMemberIndex*3; i += m_armPartIndex*3*4; i += m_armTimeIndex*3*4*4; if ( event.param == 'E' ) m_armAngles[i+0] += 5; if ( event.param == 'D' ) m_armAngles[i+0] -= 5; if ( event.param == 'R' ) m_armAngles[i+1] += 5; if ( event.param == 'F' ) m_armAngles[i+1] -= 5; if ( event.param == 'T' ) m_armAngles[i+2] += 5; if ( event.param == 'G' ) m_armAngles[i+2] -= 5; if ( event.param == 'Z' ) m_armAngles[i+3] += 5; if ( event.param == 'H' ) m_armAngles[i+3] -= 5; if ( event.param == 'Y' ) m_bArmStop = !m_bArmStop; #endif } return true; }
bool CStudio::EventProcess(const Event &event) { CWindow* pw; CEdit* edit; CSlider* slider; if ( m_dialog != SD_NULL ) // dialogue exists? { return EventDialog(event); } if ( event.type == EVENT_FRAME ) { EventFrame(event); } pw = static_cast< CWindow* >(m_interface->SearchControl(EVENT_WINDOW3)); if ( pw == nullptr ) return false; edit = static_cast<CEdit*>(pw->SearchControl(EVENT_STUDIO_EDIT)); if ( edit == nullptr ) return false; if ( event.type == pw->GetEventTypeClose() ) { Event newEvent = event; newEvent.type = EVENT_STUDIO_OK; m_event->AddEvent(newEvent); } if ( event.type == EVENT_STUDIO_EDIT ) // text modifief? { ColorizeScript(edit); } if ( event.type == EVENT_STUDIO_LIST ) // list clicked? { m_main->StartDisplayInfo(const_cast<char *>(m_helpFilename.c_str()), -1); // TODO change to std::string when RobotMain changes } if ( event.type == EVENT_STUDIO_NEW ) // new? { m_script->New(edit, ""); } if ( event.type == EVENT_STUDIO_OPEN ) // open? { StartDialog(SD_OPEN); } if ( event.type == EVENT_STUDIO_SAVE ) // save? { StartDialog(SD_SAVE); } if ( event.type == EVENT_STUDIO_UNDO ) // undo? { edit->Undo(); } if ( event.type == EVENT_STUDIO_CUT ) // cut? { edit->Cut(); } if ( event.type == EVENT_STUDIO_COPY ) // copy? { edit->Copy(); } if ( event.type == EVENT_STUDIO_PASTE ) // paste? { edit->Paste(); } if ( event.type == EVENT_STUDIO_SIZE ) // size? { slider = static_cast< CSlider* >(pw->SearchControl(EVENT_STUDIO_SIZE)); if ( slider == nullptr ) return false; m_main->SetFontSize(9.0f+slider->GetVisibleValue()*12.0f); ViewEditScript(); } if ( event.type == EVENT_STUDIO_TOOL && // instructions? m_dialog == SD_NULL ) { m_main->StartDisplayInfo(SATCOM_HUSTON, false); } if ( event.type == EVENT_STUDIO_HELP && // help? m_dialog == SD_NULL ) { m_main->StartDisplayInfo(SATCOM_PROG, false); } if ( event.type == EVENT_STUDIO_COMPILE ) // compile? { if ( m_script->GetScript(edit) ) // compile { std::string res; GetResource(RES_TEXT, RT_STUDIO_COMPOK, res); SetInfoText(res, false); } else { std::string error; m_script->GetError(error); SetInfoText(error, false); } } if ( event.type == EVENT_STUDIO_RUN ) // run/stop? { if ( m_script->IsRunning() ) { Event newEvent = event; newEvent.type = EVENT_OBJECT_PROGSTOP; m_event->AddEvent(newEvent); // stop } else { if ( m_script->GetScript(edit) ) // compile { SetInfoText("", false); Event newEvent = event; newEvent.type = EVENT_OBJECT_PROGSTART; m_event->AddEvent(newEvent); // start } else { std::string error; m_script->GetError(error); SetInfoText(error, false); } } } if ( event.type == EVENT_STUDIO_REALTIME ) // real time? { m_bRealTime = !m_bRealTime; m_script->SetStepMode(!m_bRealTime); UpdateFlux(); UpdateButtons(); } if ( event.type == EVENT_STUDIO_STEP ) // step? { m_script->Step(event); } if ( event.type == EVENT_KEY_DOWN ) { if ( event.key.key == m_main->GetInputBinding(INPUT_SLOT_CBOT).primary || event.key.key == m_main->GetInputBinding(INPUT_SLOT_CBOT).secondary ) { if ( m_helpFilename.length() > 0 ) { m_main->StartDisplayInfo(const_cast<char *>(m_helpFilename.c_str()), -1); // TODO change to std::string when RobotMain changes } } } if ( event.type == EVENT_WINDOW3 ) // window is moved? { m_editActualPos = m_editFinalPos = pw->GetPos(); m_editActualDim = m_editFinalDim = pw->GetDim(); m_main->SetWindowPos(m_editActualPos); m_main->SetWindowDim(m_editActualDim); AdjustEditScript(); } if ( event.type == pw->GetEventTypeReduce() ) { if ( m_bEditMinimized ) { m_editFinalPos = m_main->GetWindowPos(); m_editFinalDim = m_main->GetWindowDim(); m_bEditMinimized = false; m_bEditMaximized = false; } else { m_editFinalPos.x = 0.00f; m_editFinalPos.y = -0.44f; m_editFinalDim.x = 1.00f; m_editFinalDim.y = 0.50f; m_bEditMinimized = true; m_bEditMaximized = false; } m_main->SetEditFull(m_bEditMaximized); pw = static_cast< CWindow* >(m_interface->SearchControl(EVENT_WINDOW3)); if ( pw != nullptr ) { pw->SetMaximized(m_bEditMaximized); pw->SetMinimized(m_bEditMinimized); } } if ( event.type == pw->GetEventTypeFull() ) { if ( m_bEditMaximized ) { m_editFinalPos = m_main->GetWindowPos(); m_editFinalDim = m_main->GetWindowDim(); m_bEditMinimized = false; m_bEditMaximized = false; } else { m_editFinalPos.x = 0.00f; m_editFinalPos.y = 0.00f; m_editFinalDim.x = 1.00f; m_editFinalDim.y = 1.00f; m_bEditMinimized = false; m_bEditMaximized = true; } m_main->SetEditFull(m_bEditMaximized); pw = static_cast< CWindow* >(m_interface->SearchControl(EVENT_WINDOW3)); if ( pw != nullptr ) { pw->SetMaximized(m_bEditMaximized); pw->SetMinimized(m_bEditMinimized); } } return true; }
bool CDisplayInfo::EventProcess(const Event &event) { Ui::CWindow* pw; Ui::CEdit* edit; Ui::CSlider* slider; CMotionToto* toto; if ( event.type == EVENT_FRAME ) { EventFrame(event); HyperUpdate(); } if ( event.type == EVENT_MOUSE_MOVE ) { if ( m_toto != 0 ) { toto = static_cast<CMotionToto*>(m_toto->GetMotion()); if ( toto != 0 ) { toto->SetMousePos(event.mousePos); } } } pw = static_cast<Ui::CWindow*>(m_interface->SearchControl(EVENT_WINDOW4)); if ( pw != 0 ) { if ( event.type == pw->GetEventTypeClose() ) { Event newEvent = event; newEvent.type = EVENT_OBJECT_INFOOK; m_event->AddEvent(newEvent); } if ( event.type == EVENT_SATCOM_HUSTON ) { ChangeIndexButton(SATCOM_HUSTON); } if ( event.type == EVENT_SATCOM_SAT ) { ChangeIndexButton(SATCOM_SAT); } //? if ( event.event == EVENT_SATCOM_OBJECT ) //? { //? ChangeIndexButton(SATCOM_OBJECT); //? } if ( event.type == EVENT_SATCOM_LOADING ) { ChangeIndexButton(SATCOM_LOADING); } if ( event.type == EVENT_SATCOM_PROG ) { ChangeIndexButton(SATCOM_PROG); } if ( event.type == EVENT_SATCOM_SOLUCE ) { ChangeIndexButton(SATCOM_SOLUCE); } if ( event.type == EVENT_HYPER_HOME || event.type == EVENT_HYPER_PREV || event.type == EVENT_HYPER_NEXT ) { edit = static_cast<Ui::CEdit*>(pw->SearchControl(EVENT_EDIT1)); if ( edit != 0 ) { edit->HyperGo(event.type); HyperUpdate(); } } if ( event.type == EVENT_HYPER_SIZE1 ) // size 1? { m_main->SetFontSize(9.0f); slider = static_cast<Ui::CSlider*>(pw->SearchControl(EVENT_STUDIO_SIZE)); if ( slider != 0 ) slider->SetVisibleValue((m_main->GetFontSize()-9.0f)/15.0f); ViewDisplayInfo(); } if ( event.type == EVENT_HYPER_SIZE2 ) // size 2? { m_main->SetFontSize(14.0f); slider = static_cast<Ui::CSlider*>(pw->SearchControl(EVENT_STUDIO_SIZE)); if ( slider != 0 ) slider->SetVisibleValue((m_main->GetFontSize()-9.0f)/15.0f); ViewDisplayInfo(); } if ( event.type == EVENT_HYPER_SIZE3 ) // size 3? { m_main->SetFontSize(19.0f); slider = static_cast<Ui::CSlider*>(pw->SearchControl(EVENT_STUDIO_SIZE)); if ( slider != 0 ) slider->SetVisibleValue((m_main->GetFontSize()-9.0f)/15.0f); ViewDisplayInfo(); } if ( event.type == EVENT_HYPER_SIZE4 ) // size 4? { m_main->SetFontSize(24.0f); slider = static_cast<Ui::CSlider*>(pw->SearchControl(EVENT_STUDIO_SIZE)); if ( slider != 0 ) slider->SetVisibleValue((m_main->GetFontSize()-9.0f)/15.0f); ViewDisplayInfo(); } if ( event.type == EVENT_STUDIO_SIZE ) // size? { slider = static_cast<Ui::CSlider*>(pw->SearchControl(EVENT_STUDIO_SIZE)); if ( slider == 0 ) return false; m_main->SetFontSize(9.0f+slider->GetVisibleValue()*15.0f); ViewDisplayInfo(); } if ( event.type == EVENT_HYPER_COPY ) // copy ? { edit = static_cast<Ui::CEdit*>(pw->SearchControl(EVENT_EDIT1)); if ( edit != 0 ) { edit->Copy(); } } if ( ( event.type == EVENT_MOUSE_BUTTON_DOWN && event.mouseButton.button == MOUSE_BUTTON_LEFT )|| ( event.type == EVENT_MOUSE_BUTTON_UP && event.mouseButton.button == MOUSE_BUTTON_LEFT )) { UpdateCopyButton(); } if ( event.type == EVENT_WINDOW4 ) // window moved? { m_infoNormalPos = m_infoActualPos = m_infoFinalPos = pw->GetPos(); m_infoNormalDim = m_infoActualDim = m_infoFinalDim = pw->GetDim(); AdjustDisplayInfo(m_infoActualPos, m_infoActualDim); } if ( event.type == pw->GetEventTypeReduce() ) { if ( m_bInfoMinimized ) { m_infoFinalPos = m_infoNormalPos; m_infoFinalDim = m_infoNormalDim; m_bInfoMinimized = false; m_bInfoMaximized = false; } else { m_infoFinalPos.x = 0.00f; m_infoFinalPos.y = -0.34f; m_infoFinalDim.x = 1.00f; m_infoFinalDim.y = 0.40f; m_bInfoMinimized = true; m_bInfoMaximized = false; } //? m_main->SetEditFull(m_bInfoMaximized); pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW4)); if ( pw != 0 ) { pw->SetMaximized(m_bInfoMaximized); pw->SetMinimized(m_bInfoMinimized); } } if ( event.type == pw->GetEventTypeFull() ) { if ( m_bInfoMaximized ) { m_infoFinalPos = m_infoNormalPos; m_infoFinalDim = m_infoNormalDim; m_bInfoMinimized = false; m_bInfoMaximized = false; } else { m_infoFinalPos.x = 0.00f; m_infoFinalPos.y = 0.00f; m_infoFinalDim.x = 1.00f; m_infoFinalDim.y = 1.00f; m_bInfoMinimized = false; m_bInfoMaximized = true; } //? m_main->SetEditFull(m_bInfoMaximized); pw = static_cast<Ui::CWindow*>(m_interface->SearchControl(EVENT_WINDOW4)); if ( pw != 0 ) { pw->SetMaximized(m_bInfoMaximized); pw->SetMinimized(m_bInfoMinimized); } } } return true; }