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

View File

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