refs #435 Read installed models from X-Plane via xbus

This commit is contained in:
Roland Winklmeier
2015-06-15 21:24:47 +02:00
committed by Mathew Sutcliffe
parent d24488d38f
commit 25cdff54f3
6 changed files with 70 additions and 4 deletions

View File

@@ -12,6 +12,7 @@
#include <XPLM/XPLMProcessing.h>
#include <XPLM/XPLMUtilities.h>
#include <QDateTime>
#include <QStringList>
#include <cstring>
#include <cmath>
@@ -148,6 +149,30 @@ namespace XBus
return XPMPDrawingAircraftLabels();
}
void CTraffic::updateInstalledModels()
{
int numberOfModels = XPMPGetNumberOfInstalledModels();
QStringList modelNames;
QStringList icaos;
QStringList airlines;
QStringList liveries;
for (int i = 0; i < numberOfModels; ++i)
{
const char *modelName = nullptr;
const char *icao = nullptr;
const char *airline = nullptr;
const char *livery = nullptr;
XPMPGetModelInfo(i, &modelName, &icao, &airline, &livery);
modelNames.append(QString::fromLocal8Bit(modelName));
icaos.append(QString::fromLocal8Bit(icao));
airlines.append(QString::fromLocal8Bit(airline));
liveries.append(QString::fromLocal8Bit(livery));
}
emit installedModelsUpdated(modelNames, icaos, airlines, liveries);
}
void CTraffic::addPlane(const QString &callsign, const QString &aircraftIcao, const QString &airlineIcao, const QString &livery)
{
auto id = XPMPCreatePlane(qPrintable(aircraftIcao), qPrintable(airlineIcao), qPrintable(livery), getPlaneData, static_cast<void *>(this));