MainController::MainController(QObject *parent) :  QObject(parent) {
    _networkThread = new NetworkThread(this);
    _mainWindowController = new MainWindowController(this);

    connect(mainWindowController(), SIGNAL(shouldQuit()), this, SLOT(stop()));
    connect(networkThread(), SIGNAL(initialized()), this, SLOT(networkThreadInitialized()));
    connect(networkThread(), SIGNAL(finished()), this, SLOT(deleteLater()));
}
Exemplo n.º 2
0
int main(int ac, char **av)
{
	if (IsDebuggerPresent()) {
		return (-1);
	}
	if (ac >= 3)
	{
		try {
			Network* network;
			Packager* packager = new Packager();
			if (ac == 4) {
				network = new Network(av[2], av[1], packager, av[3]);
			}
			else {
				network = new Network(av[2], av[1], packager);
			}
			Hooker& hooker = Hooker::getInstance();
			hooker.setPackager(packager);
			boost::thread networkThread(&Network::initNetwork, network);
			hooker.runHookLoop();
			networkThread.join();
		}
		catch (std::exception& e) {
			std::cerr << "An error occured:" << std::endl;
			std::cerr << e.what() << std::endl;
			return EXIT_FAILURE;
		}
		return EXIT_SUCCESS;
	}
	return EXIT_FAILURE;
}
Exemplo n.º 3
0
int main( int argc, char* argv[] )
{
	std::thread networkThread(network);
	gEngine = new sgct::Engine( argc, argv );

	gEngine->setInitOGLFunction( myInitOGLFun );
	gEngine->setDrawFunction( myDrawFun );
	gEngine->setPreSyncFunction( myPreSyncFun );
	gEngine->setKeyboardCallbackFunction( keyCallback );
	gEngine->setMouseButtonCallbackFunction( mouseButtonCallback );
	gEngine->setClearColor(0.1f, 0.1f, 0.1f, 1.0f);

	for(int i=0; i<4; i++)
		arrowButtons[i] = false;

	if( !gEngine->init() )
	{
		delete gEngine;
		return EXIT_FAILURE;
	}

	sgct::SharedData::instance()->setEncodeFunction( myEncodeFun );
	sgct::SharedData::instance()->setDecodeFunction( myDecodeFun );

	// Main loop
	gEngine->render();

	// Clean up
	glDeleteLists(myLandscapeDisplayList, 1);
	delete gEngine;

	offMutex.lock();
	turnOfNetwork = true;
	offMutex.unlock();
	networkThread.join();

	// Exit program
	exit( EXIT_SUCCESS );
}
void MainController::networkThreadInitialized() {
    _networkServer = networkThread()->createServer(this);
    connect(mainWindowController(), SIGNAL(shouldStartServer(QString,quint16)), this, SLOT(onShouldStartServer(QString,quint16)));
    connect(mainWindowController(), SIGNAL(shouldStopServer()), networkServer(), SLOT(stopServer()));
}
void MainController::stop() {
    networkThread()->quit();
}
void MainController::start() {
    networkThread()->start(QThread::LowestPriority);
    mainWindowController()->showWindow();
}