FlightGear next
traffic.h
Go to the documentation of this file.
1/*
2 * Traffic module for swift<->FG connection
3 * SPDX-FileCopyrightText: (C) 2019-2022 swift Project Community / Contributors (https://swift-project.org/)
4 * SPDX-FileCopyrightText: (C) 2019-2022 Lars Toenning <dev@ltoenning.de>
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7
8#pragma once
9
11#include "dbusobject.h"
12
13#include <functional>
14#include <utility>
15
16namespace flightgear::swift {
20class CTraffic : public CDBusObject
21{
22public:
24 CTraffic();
25
27 ~CTraffic() override;
28
30 static const std::string& InterfaceName();
31
33 static const std::string& ObjectPath();
34
36 bool initialize();
37
39 int process();
40
41 void emitSimFrame();
42
43protected:
44 virtual void dbusDisconnectedHandler() override;
45
46 DBusHandlerResult dbusMessageHandler(const CDBusMessage& message) override;
47
48private:
49 void emitPlaneAdded(const std::string& callsign);
50 void cleanup();
51
52 struct Plane {
53 void* id = nullptr;
54 std::string callsign;
55 char label[32]{};
56 };
57
58 bool m_emitSimFrame = true;
59 std::unique_ptr<FGSwiftAircraftManager> acm;
60};
61} // namespace flightgear::swift
CDBusObject()=default
Constructor.
DBusHandlerResult dbusMessageHandler(const CDBusMessage &message) override
DBus message handler.
Definition traffic.cpp:75
virtual void dbusDisconnectedHandler() override
Handler which is called when DBusConnection disconnected.
Definition traffic.cpp:67
static const std::string & ObjectPath()
DBus object path.
Definition traffic.cpp:37
static const std::string & InterfaceName()
DBus interface name.
Definition traffic.cpp:32
int process()
Perform generic processing.
Definition traffic.cpp:285
~CTraffic() override
Destructor.
Definition traffic.cpp:26
bool initialize()
Initialize the multiplayer planes rendering and return true if successful.
Definition traffic.cpp:42