void SystemEventsManager::runLoop() { WNDCLASS wc = { 0 }; wc.lpfnWndProc = systemEventCallback; const wchar_t name[] = L"SystemEvent"; wc.lpszClassName = name; RegisterClass(&wc); hWin = CreateWindow(name, name, 0, 0, 0, 0, 0, NULL, NULL, NULL, 0); systemEventLoopRunning = true; MSG msg = { 0 }; BOOL status; try { while ((status = GetMessage(&msg, NULL, 0, 0)) != 0) { if (status == -1) { break; } else { TranslateMessage(&msg); DispatchMessage(&msg); } } } catch (...) {} stopLoop(); }
void KPAOS4Checker::onOfReceived(bool) { if(mTimer != nullptr) mTimer->stop(); Settings::get().setKPAOSVersion(0x04000000); emit stopLoop(); }
void SWViewerInterface::closeEvent(QCloseEvent *event) { emit stopLoop(); QTime l_oDieTime = QTime::currentTime().addMSecs(200); while( QTime::currentTime() < l_oDieTime) { QCoreApplication::processEvents(QEventLoop::AllEvents, 100); } }
void AnimationThread::kill() { m_killed = true; if(isRunning()) { stopLoop(); } else { resume(); } for(int i = 0; i < 10 && stillActive(); i++) { Sleep(10); } if(stillActive()) { showWarning(_T("Cannot stop animationThread!")); } }
void CCreateRTPServer::stopPlay() { if(m_paudioSink != NULL) { m_paudioSink->stopPlaying(); } if(m_pvideoSink != NULL) { m_pvideoSink->stopPlaying(); } stopLoop(); uninit(); }
void SystemEventsManager::prevent(int event, bool prevent) { if (prevent) { prepareLoop(); #if VERSIONWIN if (event == SYSTEM_SLEEP) SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED); #endif } events[event].prevent(prevent); if (!prevent) { stopLoop(); #if VERSIONWIN if (event == SYSTEM_SLEEP) SetThreadExecutionState(ES_CONTINUOUS); #endif } }
void SystemEventsManager::unregisterCallback(int event) { events[event].unregisterCallback(); stopLoop(); }
void SystemEventsManager::destroy() { stopLoop(true); }
SWViewerInterface::SWViewerInterface(QApplication *parent) : m_uiViewer(new Ui::SWUI_Viewer), m_bDesactiveUpdateParameters(false), m_bGLFullScreen(false) { // set absolute path m_absolutePath = QDir::currentPath() + "/"; // init main widget m_uiViewer->setupUi(this); this->setWindowTitle(QString("SWoOz : Viewer")); this->setWindowIcon(QIcon(m_absolutePath + "../data/images/logos/icon_swooz_viewer.png")); // middle container QHBoxLayout *l_pGLContainerLayout = new QHBoxLayout(); m_pGLContainer = new QWidget(); QGLFormat l_glFormat; l_glFormat.setVersion( 4, 3 ); l_glFormat.setProfile( QGLFormat::CompatibilityProfile); l_glFormat.setSampleBuffers( true ); QGLContext *l_glContext = new QGLContext(l_glFormat); m_pGLMultiObject = new SWGLMultiObjectWidget(l_glContext, m_pGLContainer); l_pGLContainerLayout->addWidget(m_pGLMultiObject); l_pGLContainerLayout->layout()->setContentsMargins(0,0,0,0); m_pGLContainer->setLayout(l_pGLContainerLayout); m_uiViewer->glScene->addWidget(m_pGLContainer); // init worker m_pWViewer = new SWViewerWorker(); // init connections // menu QObject::connect(m_uiViewer->actionExit, SIGNAL(triggered()), parent, SLOT(quit())); QObject::connect(m_uiViewer->actionOnline_documentation, SIGNAL(triggered()), this, SLOT(openOnlineDocumentation())); QObject::connect(m_uiViewer->actionAbout, SIGNAL(triggered()), this, SLOT(openAboutWindow())); QObject::connect(m_uiViewer->pbLoadCloud, SIGNAL(clicked()), this, SLOT(loadCloud())); QObject::connect(m_uiViewer->pbLoadMesh, SIGNAL(clicked()), this, SLOT(loadMesh())); QObject::connect(m_uiViewer->pbDeleteCloud, SIGNAL(clicked()), this, SLOT(deleteCloud())); QObject::connect(m_uiViewer->pbDeleteMesh, SIGNAL(clicked()), this, SLOT(deleteMesh())); QObject::connect(m_uiViewer->pbSetTexture, SIGNAL(clicked()), this, SLOT(setTexture())); QObject::connect(m_uiViewer->lwClouds, SIGNAL(currentRowChanged(int)), this, SLOT(updateCloudInterfaceParameters())); QObject::connect(m_uiViewer->lwMeshes, SIGNAL(currentRowChanged(int)), this, SLOT(updateMeshInterfaceParameters())); QObject::connect(m_uiViewer->lwClouds, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(updateCloudInterfaceParameters(QListWidgetItem*))); QObject::connect(m_uiViewer->lwMeshes, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(updateMeshInterfaceParameters(QListWidgetItem*))); QObject::connect(m_uiViewer->lwClouds, SIGNAL(currentRowChanged(int)), m_pWViewer, SLOT(updateCloudAnimationPath(int))); QObject::connect(m_uiViewer->lwMeshes, SIGNAL(currentRowChanged(int)), m_pWViewer, SLOT(updateMeshAnimationPath(int))); QObject::connect(this, SIGNAL(cloudCurrentRowChanged(int)), m_pWViewer, SLOT(updateCloudAnimationPath(int))); QObject::connect(this, SIGNAL(meshCurrentRowChanged(int)), m_pWViewer, SLOT(updateMeshAnimationPath(int))); QObject::connect(m_uiViewer->lwClouds, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(updateCloudAnimationPath(QListWidgetItem*))); QObject::connect(m_uiViewer->lwMeshes, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(updateMeshAnimationPath(QListWidgetItem*))); // update interface QObject::connect(m_uiViewer->dsbRX, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbRY, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbRZ, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbTrX, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbTrY, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbTrZ, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbScaling, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->cbDisplayLines, SIGNAL(clicked()), this, SLOT(updateParameters())); QObject::connect(m_uiViewer->cbVisible, SIGNAL(clicked()), this, SLOT(updateParameters())); QObject::connect(m_uiViewer->rbDisplayOriginalColor, SIGNAL(clicked()), this, SLOT(updateParameters())); QObject::connect(m_uiViewer->rbDisplayTexture, SIGNAL(clicked()), this, SLOT(updateParameters())); QObject::connect(m_uiViewer->rbDisplayUnicolor, SIGNAL(clicked()), this, SLOT(updateParameters())); QObject::connect(m_uiViewer->sbColorB, SIGNAL(valueChanged(int)), this, SLOT(updateParameters(int))); QObject::connect(m_uiViewer->sbColorG, SIGNAL(valueChanged(int)), this, SLOT(updateParameters(int))); QObject::connect(m_uiViewer->sbColorR, SIGNAL(valueChanged(int)), this, SLOT(updateParameters(int))); QObject::connect(m_uiViewer->dsbLightX, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbLightY, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbLightZ, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->leTexturePath, SIGNAL(textChanged(QString)), this, SLOT(updateParameters(QString))); QObject::connect(m_uiViewer->dsbAmbiantLight1, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbAmbiantLight2, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbAmbiantLight3, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbDiffusLight1, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbDiffusLight2, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbDiffusLight3, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbSpecularLight1, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbSpecularLight2, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbSpecularLight3, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbAmbiantK, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbDiffusK, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbSpecularK, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); QObject::connect(m_uiViewer->dsbSpecularP, SIGNAL(valueChanged(double)), this, SLOT(updateParameters(double))); // push buttons QObject::connect(m_uiViewer->pbSetCamera, SIGNAL(clicked()), this, SLOT(setCameraToCurrentItem())); QObject::connect(m_uiViewer->pbResetCamera, SIGNAL(clicked()), m_pGLMultiObject, SLOT(resetCamera())); QObject::connect(m_uiViewer->pbLaunchAllAnim, SIGNAL(clicked()), m_pWViewer, SLOT(startLoop())); QObject::connect(m_uiViewer->pbSetModFile, SIGNAL(clicked()), this, SLOT(loadModFile())); QObject::connect(m_uiViewer->pbSetSeqFile, SIGNAL(clicked()), this, SLOT(loadSeqFile())); QObject::connect(m_uiViewer->pbSetMeshCorr, SIGNAL(clicked()), this, SLOT(loadMeshCorrFile())); // fullscreen QObject::connect(m_pGLMultiObject, SIGNAL(enableFullScreen()), this, SLOT(enableGLFullScreen())); QObject::connect(m_pGLMultiObject, SIGNAL(disableFullScreen()), this, SLOT(disableGLFullScreen())); // worker QObject::connect(this, SIGNAL(stopLoop()), m_pWViewer, SLOT(stopLoop())); QObject::connect(this, SIGNAL(setModFilePath(bool,int,QString)), m_pWViewer, SLOT(setModFile(bool,int,QString))); QObject::connect(this, SIGNAL(setSeqFilePath(bool,int,QString)), m_pWViewer, SLOT(setSeqFile(bool,int,QString))); QObject::connect(this, SIGNAL(setCorrFilePath(bool,int,QString)), m_pWViewer, SLOT(setCorrFilePath(bool,int,QString))); QObject::connect(m_pWViewer, SIGNAL(sendAnimationPathFile(QString,QString,QString)), this, SLOT(updateAnimationPathFileDisplay(QString,QString,QString))); QObject::connect(this, SIGNAL(deleteAnimation(bool,int)), m_pWViewer, SLOT(deleteAnimation(bool,int))); QObject::connect(this, SIGNAL(addAnimation(bool)), m_pWViewer, SLOT(addAnimation(bool))); QObject::connect(m_pWViewer, SIGNAL(sendOffsetAnimation(SWAnimationSendDataPtr)),m_pGLMultiObject, SLOT(setAnimationOffset(SWAnimationSendDataPtr)),Qt::DirectConnection); // QObject::connect(m_pWViewer, SIGNAL(sendOffsetAnimation(SWAnimationSendDataPtr)),m_pGLMultiObject, SLOT(setAnimationOffset(SWAnimationSendDataPtr))); QObject::connect(m_pWViewer, SIGNAL(startAnimation(bool,int)), m_pGLMultiObject, SLOT(beginAnimation(bool,int))); QObject::connect(m_pWViewer, SIGNAL(drawSceneSignal()), m_pGLMultiObject, SLOT(updateGL())); setStyleSheet("QGroupBox { padding: 10 0px 0 0px; color: blue; border: 1px solid gray; border-radius: 5px; margin-top: 1ex; /* leave space at the top for the title */}"); // init thread m_pWViewer->moveToThread(&m_TViewer); m_TViewer.start(); }
JNIEXPORT void JNICALL Java_com_apple_dnssd_DNSSDEmbedded_Exit( JNIEnv *pEnv, jclass cls) { stopLoop(); }
void AnimationThread::stopAnimation() { if(isRunning()) { stopLoop(); } }
void KPAOS4Checker::timerTimeout() { Settings::get().setKPAOSVersion(0x03000000); emit stopLoop(); }