Files
pilotclient/samples/blackcore/main.cpp
Klaus Basan 36dbcc6b57 refs #217, Project class providing information for compile configuration
* changed .pro / .pri as required
* Used info from project class in network_vatlib
* Checks / info in GUI/core (e.g. console)
* const * versions of systemNameAndVersion / simulators, as mentioned in https://dev.vatsim-germany.org/issues/217#note-4
2014-04-29 01:53:09 +02:00

72 lines
2.8 KiB
C++

/* Copyright (C) 2013 VATSIM Community / authors
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "tool.h"
#include "blackcore/context_runtime.h"
#include "blackcore/context_settings.h"
#include "blackcore/context_application.h"
#include "blackcore/context_application_impl.h"
#include "blackmisc/networkutils.h"
#include "blackmisc/blackmiscfreefunctions.h"
#include "blackmisc/project.h"
#include <QtConcurrent/QtConcurrent>
#include <QMetaType>
#include <QMetaMethod>
#include <QApplication>
#include <QIcon>
#include <QTextStream>
/*!
* DBus tests, tests marshalling / unmarshalling of many value classes.
* Forks two processes and sends data via DBus among them.
*/
int main(int argc, char *argv[])
{
// metadata are registered in runtime
QApplication a(argc, argv); // not QCoreApplication because of icon, http://qt-project.org/forums/viewthread/15412
QIcon icon(":/blackcore/icons/tower.png");
QApplication::setWindowIcon(icon);
QTextStream cin(stdin);
qDebug() << BlackMisc::CProject::version();
qDebug() << BlackMisc::CProject::compiledInfo();
qDebug();
qDebug() << "1 + la/ra .. session DBus server (default)";
qDebug() << "2 + la/ra .. system DBus server";
qDebug() << "3 + la/ra .. P2P DBus server";
qDebug() << "la .. local audio, audio runs in this core here (default)";
qDebug() << "ra .. remote audio, audio runs in the GUI or elsewhere";
qDebug() << "x .. exit";
QString input = cin.readLine().toLower().trimmed();
// configure DBus server
QString dBusAddress = BlackCore::CDBusServer::sessionDBusServer();
if (input.startsWith("2"))
dBusAddress = BlackCore::CDBusServer::systemDBusServer();
else if (input.startsWith("3"))
{
qDebug() << "found: " << BlackMisc::CNetworkUtils::getKnownIpAddresses();
qDebug() << "enter ip/port, e.g. 127.0.0.1:45000 (default)";
dBusAddress = cin.readLine().toLower();
dBusAddress = BlackCore::CDBusServer::p2pAddress(dBusAddress);
}
else if (input.startsWith("x"))
{
return 0;
}
// with remote audio
bool remoteAudio = input.contains("ra");
BlackCore::CRuntime *core = remoteAudio ?
new BlackCore::CRuntime(BlackCore::CRuntimeConfig::forCoreAllLocalInDBusNoAudio(dBusAddress), &a) :
new BlackCore::CRuntime(BlackCore::CRuntimeConfig::forCoreAllLocalInDBus(dBusAddress), &a);
QtConcurrent::run(BlackMiscTest::Tool::serverLoop, core); // QFuture<void> future
qDebug() << "Server event loop, pid:" << BlackMiscTest::Tool::getPid();
// end
return a.exec();
}