[feature][XPlane] Set own aircraft model string when own aircraft changes.

Summary:
Refactored parts of CAircraftModelLoaderXPlane::parseFlyableAirplanes into static method extractAcfProperties that can be called by xswiftbus.

Used extractAcfProperties in xswiftbus to provide the model string to the driver. Implemented CSimulatorXPlane::ps_emitOwnAircraftModelChanged.

Implements T74.

Reviewers: rwinklmeier

Reviewed By: rwinklmeier

Subscribers: jenkins

Tags: #swift_pilot_client

Differential Revision: https://dev.swift-project.org/D23
This commit is contained in:
Mathew Sutcliffe
2017-05-14 15:01:59 +01:00
parent 50b8fbe8fe
commit bc80fd3bd5
8 changed files with 91 additions and 62 deletions

View File

@@ -300,18 +300,14 @@ namespace BlackSimPlugin
emitSimulatorCombinedStatus();
}
void CSimulatorXPlane::ps_emitOwnAircraftModelChanged(const QString &path, const QString &filename, const QString &livery, const QString &icao)
void CSimulatorXPlane::ps_emitOwnAircraftModelChanged(const QString &path, const QString &filename, const QString &livery, const QString &icao,
const QString &modelString, const QString &name, const QString &distributor, const QString &description)
{
Q_UNUSED(icao);
Q_UNUSED(distributor);
//! \todo XP, change as appropriate, add resolution of own livery
// try to set correct model and ICAO values here
// thy show up in GUI
CAircraftModel model(getOwnAircraftModel());
CAirlineIcaoCode airlineIcaoCode(model.getAirlineIcaoCode());
model.setModelType(CAircraftModel::TypeOwnSimulatorModel);
CAircraftModel model(modelString, CAircraftModel::TypeOwnSimulatorModel, CSimulatorInfo::XPLANE, name, description, icao);
if (!livery.isEmpty()) { model.setModelString(model.getModelString() + " " + livery); }
model.setFileName(path + "/" + filename);
model.setLivery(CLivery("XPLANE." + livery, airlineIcaoCode, "XP livery", "", "", false));
this->reverseLookupAndUpdateOwnAircraftModel(model);
}

View File

@@ -135,7 +135,8 @@ namespace BlackSimPlugin
private slots:
void ps_serviceUnregistered();
void ps_setAirportsInRange(const QStringList &icaoCodes, const QStringList &names, const BlackMisc::CSequence<double> &lats, const BlackMisc::CSequence<double> &lons, const BlackMisc::CSequence<double> &alts);
void ps_emitOwnAircraftModelChanged(const QString &path, const QString &filename, const QString &livery, const QString &icao);
void ps_emitOwnAircraftModelChanged(const QString &path, const QString &filename, const QString &livery, const QString &icao,
const QString &modelString, const QString &name, const QString &distributor, const QString &description);
void ps_fastTimerTimeout();
void ps_slowTimerTimeout();
void ps_installedModelsUpdated(const QStringList &modelStrings, const QStringList &icaos, const QStringList &airlines, const QStringList &liveries);

View File

@@ -72,6 +72,15 @@ namespace BlackSimPlugin
m_dbusInterface->callDBusAsync(QLatin1String("getAircraftIcaoCode"), setterCallback(o_icaoCode));
}
QString CXSwiftBusServiceProxy::getAircraftDescription() const
{
return m_dbusInterface->callDBusRet<QString>(QLatin1String("getAircraftDescription"));
}
void CXSwiftBusServiceProxy::getAircraftDescriptionAsync(QString *o_description)
{
m_dbusInterface->callDBusAsync(QLatin1String("getAircraftDescription"), setterCallback(o_description));
}
int CXSwiftBusServiceProxy::getXPlaneVersionMajor() const
{
return m_dbusInterface->callDBusRet<int>(QLatin1String("getXPlaneVersionMajor"));

View File

@@ -89,7 +89,8 @@ namespace BlackSimPlugin
void asyncMethodError(QDBusError error);
//! \copydoc XSwiftBus::CService::aircraftModelChanged
void aircraftModelChanged(const QString &path, const QString &filename, const QString &livery, const QString &icao);
void aircraftModelChanged(const QString &path, const QString &filename, const QString &livery, const QString &icao,
const QString &modelString, const QString &name, const QString &distributor, const QString &description);
//! \copydoc XSwiftBus::CService::airportsInRangeUpdated
void airportsInRangeUpdated(const QStringList &icaoCodes, const QStringList &names, const QList<double> &lats, const QList<double> &lons, const QList<double> &alts);
@@ -125,6 +126,12 @@ namespace BlackSimPlugin
void getAircraftIcaoCodeAsync(QString *o_icaoCode);
//! @}
//! \copydoc XSwiftBus::CService::getAircraftDescription
//! @{
QString getAircraftDescription() const;
void getAircraftDescriptionAsync(QString *o_description);
//! @}
//! \copydoc XSwiftBus::CService::getXPlaneVersionMajor
//! @{
int getXPlaneVersionMajor() const;