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  CAfvMapReader *afvMapReader = new CAfvMapReader(&a);
37  afvMapReader->updateFromMap();
38 
39  CAfvClient *voiceClient = new CAfvClient("https://voice1.vatsim.net", &qa);
40  voiceClient->start(QThread::TimeCriticalPriority); // background thread
41  CAfvClientBridge *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.
void updateFromMap()
Update ATC stations in model.
void quitAndWait() noexcept final
Calls quit() and blocks until the thread is finished.
Definition: worker.cpp:203
void start(QThread::Priority priority=QThread::InheritPriority)
Starts a thread and moves the worker into it.
Definition: worker.cpp:165
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