diff --git a/src/plugins/simulator/xplane/xbus_service_proxy.cpp b/src/plugins/simulator/xplane/xbus_service_proxy.cpp index 7ac700e38..057903640 100644 --- a/src/plugins/simulator/xplane/xbus_service_proxy.cpp +++ b/src/plugins/simulator/xplane/xbus_service_proxy.cpp @@ -32,6 +32,26 @@ namespace BlackSimPlugin } } + QString CXBusServiceProxy::getAircraftModelPath() const + { + return m_dbusInterface->callDBusRet(QLatin1String("getAircraftModelPath")); + } + + QString CXBusServiceProxy::getAircraftModelFilename() const + { + return m_dbusInterface->callDBusRet(QLatin1String("getAircraftModelFilename")); + } + + QString CXBusServiceProxy::getAircraftModelLivery() const + { + return m_dbusInterface->callDBusRet(QLatin1String("getAircraftModelLivery")); + } + + QString CXBusServiceProxy::getAircraftIcaoCode() const + { + return m_dbusInterface->callDBusRet(QLatin1String("getAircraftIcaoCode")); + } + int CXBusServiceProxy::getXPlaneVersionMajor() const { return m_dbusInterface->callDBusRet(QLatin1String("getXPlaneVersionMajor")); diff --git a/src/plugins/simulator/xplane/xbus_service_proxy.h b/src/plugins/simulator/xplane/xbus_service_proxy.h index 8cec9b4eb..4e8381158 100644 --- a/src/plugins/simulator/xplane/xbus_service_proxy.h +++ b/src/plugins/simulator/xplane/xbus_service_proxy.h @@ -52,9 +52,21 @@ namespace BlackSimPlugin signals: //! \copydoc XBus::CService::aircraftModelChanged - void aircraftModelChanged(const QString &path, const QString &filename, const QString &livery); + void aircraftModelChanged(const QString &path, const QString &filename, const QString &livery, const QString &icao); public slots: + //! \copydoc XBus::CService::getAircraftModelPath + QString getAircraftModelPath() const; + + //! \copydoc XBus::CService::getAircraftModelFilename + QString getAircraftModelFilename() const; + + //! \copydoc XBus::CService::getAircraftModelLivery + QString getAircraftModelLivery() const; + + //! \copydoc XBus::CService::getAircraftIcaoCode + QString getAircraftIcaoCode() const; + //! \copydoc XBus::CService::getXPlaneVersionMajor int getXPlaneVersionMajor() const; diff --git a/src/xbus/service.cpp b/src/xbus/service.cpp index 9a3202d7a..61ca24ec8 100644 --- a/src/xbus/service.cpp +++ b/src/xbus/service.cpp @@ -19,7 +19,21 @@ namespace XBus char filename[256]; char path[512]; XPLMGetNthAircraftModel(XPLM_USER_AIRCRAFT, filename, path); - emit aircraftModelChanged(path, filename, m_liveryPath.get().c_str()); + emit aircraftModelChanged(path, filename, getAircraftLivery(), getAircraftIcaoCode()); + } + + QString CService::getAircraftModelPath() const + { + char path[512]; + XPLMGetNthAircraftModel(XPLM_USER_AIRCRAFT, nullptr, path); + return path; + } + + QString CService::getAircraftModelFilename() const + { + char filename[256]; + XPLMGetNthAircraftModel(XPLM_USER_AIRCRAFT, filename, nullptr); + return filename; } int CService::getXPlaneVersionMajor() const diff --git a/src/xbus/service.h b/src/xbus/service.h index 400954d50..470f0b09f 100644 --- a/src/xbus/service.h +++ b/src/xbus/service.h @@ -50,9 +50,21 @@ namespace XBus signals: //! Emitted when the model or livery changes. - void aircraftModelChanged(const QString &path, const QString &filename, const QString &livery); + void aircraftModelChanged(const QString &path, const QString &filename, const QString &livery, const QString &icao); public slots: + //! Get full path to current aircraft model + QString getAircraftModelPath() const; + + //! Get base filename of current aircraft model + QString getAircraftModelFilename() const; + + //! Get path to current aircraft livery + QString getAircraftLivery() const { return m_liveryPath.get().c_str(); } + + //! Get the ICAO code of the current aircraft model + QString getAircraftIcaoCode() const { return m_icao.get().c_str(); } + //! Get major version number int getXPlaneVersionMajor() const; @@ -97,6 +109,7 @@ namespace XBus private: StringDataRef m_liveryPath; + StringDataRef m_icao; DataRef m_latitude; DataRef m_longitude; DataRef m_elevation;