mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-31 04:25:35 +08:00
[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:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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"));
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user