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  QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
32  QGuiApplication qa(argc, argv);
33 
35  swift::core::CApplication a("sampleafvclient", CApplicationInfo::Sample);
36 
37  CAfvMapReader *afvMapReader = new CAfvMapReader(&a);
38  afvMapReader->updateFromMap();
39 
40  CAfvClient *voiceClient = new CAfvClient("https://voice1.vatsim.net", &qa);
41  voiceClient->start(QThread::TimeCriticalPriority); // background thread
42  CAfvClientBridge *voiceClientBridge = new CAfvClientBridge(voiceClient, &qa);
43 
44  QObject::connect(&qa, &QCoreApplication::aboutToQuit, [voiceClient]() { voiceClient->quitAndWait(); });
45 
46  // default user name
47  QString defaultUserName("1234567");
49  {
50  const CUser user("OBF:AwLZ7f9hUmpSZhm4=", "Joe Doe");
51  defaultUserName = user.getId();
52  }
53 
54  QQmlApplicationEngine engine;
55  QQmlContext *ctxt = engine.rootContext();
56  ctxt->setContextProperty("afvMapReader", afvMapReader);
57  ctxt->setContextProperty("voiceClient", voiceClientBridge);
58  ctxt->setContextProperty("userName", defaultUserName);
59 
60  engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
61  return a.exec();
62 }
Bridge, running in main thread -> voice client in own thread.
static bool isLocalDeveloperDebugBuild()
Local build for developers.
void updateFromMap()
Update ATC stations in model.
void quitAndWait() noexcept final
Calls quit() and blocks until the thread is finished.
Definition: worker.cpp:205
void start(QThread::Priority priority=QThread::InheritPriority)
Starts a thread and moves the worker into it.
Definition: worker.cpp:166
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.
int main(int argc, char *argv[])
main
Definition: main.cpp:20