swift
main.cpp
1 // SPDX-FileCopyrightText: Copyright (C) 2019 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
4 #include <QGuiApplication>
5 #include <QPointer>
6 #include <QQmlApplicationEngine>
7 #include <QQmlContext>
8 #include <QThread>
9 #include <QTimer>
10 
11 #include "afvclientbridge.h"
12 
13 #include "config/buildconfig.h"
15 #include "core/afv/model/afvmapreader.h"
16 #include "core/afv/model/atcstationmodel.h"
17 #include "core/application.h"
18 #include "core/registermetadata.h"
19 #include "misc/network/user.h"
20 #include "misc/obfuscation.h"
21 
22 using namespace swift::config;
23 using namespace swift::misc;
24 using namespace swift::misc::network;
25 using namespace swift::core;
26 using namespace swift::core::afv::clients;
27 using namespace swift::core::afv::model;
28 
29 int main(int argc, char *argv[])
30 {
31  QGuiApplication qa(argc, argv);
32 
34  swift::core::CApplication a("sampleafvclient", CApplicationInfo::Sample);
35 
36  auto *afvMapReader = new CAfvMapReader(&a);
37  afvMapReader->updateFromMap();
38 
39  auto *voiceClient = new CAfvClient("https://voice1.vatsim.net", &qa);
40  voiceClient->start(QThread::TimeCriticalPriority); // background thread
41  auto *voiceClientBridge = new CAfvClientBridge(voiceClient, &qa);
42 
43  QObject::connect(&qa, &QCoreApplication::aboutToQuit, [voiceClient]() { voiceClient->quitAndWait(); });
44 
45  // default user name
46  QString defaultUserName("1234567");
48  {
49  const CUser user("OBF:AwLZ7f9hUmpSZhm4=", "Joe Doe");
50  defaultUserName = user.getId();
51  }
52 
53  QQmlApplicationEngine engine;
54  QQmlContext *ctxt = engine.rootContext();
55  ctxt->setContextProperty("afvMapReader", afvMapReader);
56  ctxt->setContextProperty("voiceClient", voiceClientBridge);
57  ctxt->setContextProperty("userName", defaultUserName);
58 
59  engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
60  return a.exec();
61 }
Bridge, running in main thread -> voice client in own thread.
static bool isLocalDeveloperDebugBuild()
Local build for developers.
Value object encapsulating information of a user.
Definition: user.h:28
Backend services of the swift project, like dealing with the network or the simulators.
Definition: actionbind.cpp:7
void registerMetadata()
Register all relevant metadata in swift::core.
Free functions in swift::misc.
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
void load(const QString &filePath)
void setContextProperty(const QString &name, QObject *value)
QQmlContext * rootContext() const const
TimeCriticalPriority
int main(int argc, char *argv[])
main
Definition: main.cpp:20