Automatically start XSwiftBus

In the past, XSwiftBus required to be started from the menu. This was a
historic behaviour since it made it possible to start it with different
DBus connection options. Since those are now moved into a config file,
it can be started right away.
This commit is contained in:
Roland Winklmeier
2018-10-05 12:05:20 +02:00
committed by Klaus Basan
parent bd222f3c97
commit 910b536dee
2 changed files with 6 additions and 16 deletions

View File

@@ -29,30 +29,27 @@ namespace XSwiftBus
CPlugin::CPlugin()
: m_dbusConnection(std::make_shared<CDBusConnection>()), m_menu(CMenu::mainMenu().subMenu("XSwiftBus"))
{
m_startServerMenuItem = m_menu.item("Start XSwiftBus", [this]{ startServer(CDBusConnection::SessionBus); });
// m_startServerMenuItem = m_menu.item("Start XSwiftBus", [this]{ startServer(CDBusConnection::SessionBus); });
m_showHideLabelsMenuItem = m_menu.item("Show/Hide Aircraft Labels", [this]
{
m_traffic->setDrawingLabels(!m_traffic->isDrawingLabels());
});
m_showHideLabelsMenuItem.setEnabled(false);
m_messageWindowSubMenu = m_menu.subMenu("Message Window");
m_toggleMessageWindowMenuItem = m_messageWindowSubMenu.item("Show/Hide", [this]
{
m_service->toggleMessageBoxVisibility();
});
m_toggleMessageWindowMenuItem.setEnabled(false);
m_popupMessageWindowMenuItem = m_messageWindowSubMenu.checkableItem("Pop up Window on new Nessage", true, [this] (bool checked)
{
m_popupMessageWindowMenuItem.setChecked(!checked);
m_service->setPopupMessageWindow(!checked);
});
m_popupMessageWindowMenuItem.setEnabled(false);
m_disappearMessageWindowMenuItem = m_messageWindowSubMenu.checkableItem("Hide Message Window after 5s", true, [this] (bool checked)
{
m_disappearMessageWindowMenuItem.setChecked(!checked);
m_service->setDisappearMessageWindow(!checked);
});
m_disappearMessageWindowMenuItem.setEnabled(false);
m_planeViewSubMenu = m_menu.subMenu("Follow Plane View");
planeViewOwnAircraftMenuItem = m_planeViewSubMenu.item("Own Aircraft", [this] { switchToOwnAircraftView(); });
@@ -67,6 +64,8 @@ namespace XSwiftBus
});*/
XPLMRegisterFlightLoopCallback(flightLoopCallback, -1, this);
startServer();
}
CPlugin::~CPlugin()
@@ -86,23 +85,14 @@ namespace XSwiftBus
m_pluginConfig.print();
}
void CPlugin::startServer(CDBusConnection::BusType bus)
void CPlugin::startServer()
{
(void) bus;
// for (auto &item : m_startServerMenuItems) { item.setEnabled(false); }
m_startServerMenuItem.setEnabled(false);
m_service = std::make_unique<CService>();
m_traffic = std::make_unique<CTraffic>();
m_weather = std::make_unique<CWeather>();
m_traffic->setPlaneViewMenu(m_planeViewSubMenu);
m_showHideLabelsMenuItem.setEnabled(true);
m_toggleMessageWindowMenuItem.setEnabled(true);
m_popupMessageWindowMenuItem.setEnabled(true);
m_disappearMessageWindowMenuItem.setEnabled(true);
if (m_pluginConfig.getDBusMode() == CConfig::DBusP2P)
{
m_dbusP2PServer = std::make_unique<CDBusServer>();

View File

@@ -81,7 +81,7 @@ namespace XSwiftBus
bool m_shouldStop = false;
void readConfig();
void startServer(CDBusConnection::BusType bus);
void startServer();
void switchToOwnAircraftView();
static float flightLoopCallback(float, float, int, void *refcon);