mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-07 11:05:33 +08:00
refs #435 Read installed models from X-Plane via xbus
This commit is contained in:
committed by
Mathew Sutcliffe
parent
d24488d38f
commit
25cdff54f3
@@ -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));
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
#include "datarefs.h"
|
||||
#include <QObject>
|
||||
#include <QHash>
|
||||
#include <QVector>
|
||||
#include <QStringList>
|
||||
#include "XPMPMultiplayer.h"
|
||||
|
||||
//! \cond PRIVATE
|
||||
@@ -53,6 +55,10 @@ namespace XBus
|
||||
//! Called by XPluginStart
|
||||
static void initLegacyData();
|
||||
|
||||
signals:
|
||||
//! Installed models updated.
|
||||
void installedModelsUpdated(const QStringList &modelStrings, const QStringList &icaos, const QStringList &airlines, const QStringList &liveries);
|
||||
|
||||
public slots:
|
||||
//! Initialize the multiplayer planes rendering and return true if successful
|
||||
bool initialize();
|
||||
@@ -72,6 +78,9 @@ namespace XBus
|
||||
//! Get whether the plugin draws type and callsign labels above aircraft
|
||||
bool isDrawingLabels() const;
|
||||
|
||||
//! Called by newly connected client to cause installedModelsUpdated to be emitted.
|
||||
void updateInstalledModels();
|
||||
|
||||
//! Introduce a new traffic aircraft
|
||||
void addPlane(const QString &callsign, const QString &aircraftIcao, const QString &airlineIcao, const QString &livery);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user