|
XPMP2
X-Plane multiplayer library 2 - using instancing
|
Semi-public remote network functionality for master/client operations. More...
#include <cassert>#include <cstdint>#include <cstring>#include <cmath>#include <array>#include <algorithm>Go to the source code of this file.
Classes | |
| struct | XPMP2::RemoteDataRefPackTy |
| Definition for how to map dataRef values to (u)int8, ie. to an integer range of 8 bits. More... | |
| struct | XPMP2::RemoteMsgBaseTy |
| Message header, identical for all message types. More... | |
| struct | XPMP2::RemoteMsgBeaconTy |
| "Beacon of Interest", ie. some message on the multicast just to wake up sender More... | |
| struct | XPMP2::RemoteMsgSettingsTy |
| Settings message, identifying a sending plugin, regularly providing its settings. More... | |
| struct | XPMP2::RemoteAcDetailTy |
| A/C details, packed into an array message. More... | |
| struct | XPMP2::RemoteMsgAcDetailTy |
| A/C detail message, has an inherited header plus an array of XPMP2::RemoteAcDetailTy elements. More... | |
| struct | XPMP2::RemoteAcPosUpdateTy |
| A/C Position updates based on global coordinates. More... | |
| struct | XPMP2::RemoteMsgAcPosUpdateTy |
| A/C detail message, has an inherited header plus an array of XPMP2::RemoteAcDetailTy elements. More... | |
| struct | XPMP2::RemoteAcAnimTy |
| A/C animation dataRef changes. More... | |
| struct | XPMP2::RemoteAcAnimTy::DataRefValTy |
| dataRef animation types and value More... | |
| struct | XPMP2::RemoteMsgAcAnimTy |
| A/C animation dataRef message, has an inherited header plus an array of variable sized XPMP2::RemoteAcAnimTy elements. More... | |
| struct | XPMP2::RemoteAcRemoveTy |
| A/C Removal only includes the plane id, structure required for msgSize() function. More... | |
| struct | XPMP2::RemoteMsgAcRemoveTy |
| A/C removal message, an array of plane ids. More... | |
| struct | XPMP2::RemoteCBFctTy |
| Function prototypes for callback functions to handle the received messages. More... | |
Namespaces | |
| XPMP2 | |
Enumerations | |
| enum | XPMP2::RemoteMsgTy : std::uint8_t { XPMP2::RMT_MSG_INTEREST_BEACON = 0 , XPMP2::RMT_MSG_SEND , XPMP2::RMT_MSG_SETTINGS , XPMP2::RMT_MSG_AC_DETAILED , XPMP2::RMT_MSG_AC_POS_UPDATE , XPMP2::RMT_MSG_AC_ANIM , XPMP2::RMT_MSG_AC_REMOVE } |
| Message type. More... | |
| enum | XPMP2::RemoteStatusTy : unsigned { XPMP2::REMOTE_OFF = 0 , XPMP2::REMOTE_SEND_WAITING , XPMP2::REMOTE_SENDING , XPMP2::REMOTE_RECV_WAITING , XPMP2::REMOTE_RECEIVING } |
| State of remote communcations. More... | |
Functions | |
| std::uint16_t | XPMP2::PJWHash16 (const char *s) |
| Produces a reproducible(!) hash value for strings. More... | |
| CSLModel * | XPMP2::CSLModelByPkgShortId (std::uint16_t _pkgHash, const std::string &_shortId) |
| Find a model by package name hash and short id. More... | |
| template<class T > | |
| constexpr const T & | XPMP2::clamp (const T &v, const T &lo, const T &hi) |
Clamps v between lo and hi: lo if v < lo, hi if hi < v, otherwise v More... | |
| RemoteStatusTy | XPMP2::RemoteGetStatus () |
| Returns the current Remote status. More... | |
| void | XPMP2::RemoteRecvStart (const RemoteCBFctTy &_rmtCBFcts) |
| Starts the listener, will call provided callback functions with received messages. More... | |
| void | XPMP2::RemoteRecvStop () |
| Stops the receiver. More... | |
Variables | |
| constexpr const char * | XPMP2::REMOTE_SIGNATURE = "TwinFan.plugin.XPMP2.Remote" |
| The signature of the XPMP2 Remote Client. More... | |
| const std::array< RemoteDataRefPackTy, V_COUNT > | XPMP2::REMOTE_DR_DEF |
| An array holding all dataRef packing definitions. More... | |
| struct XPMP2::RemoteMsgBaseTy | XPMP2::PACKED |
| constexpr std::uint8_t | XPMP2::RMT_VER_BEACON = 0 |
| Interest Beacon message version number. More... | |
| constexpr int | XPMP2::REMOTE_SEND_SETTINGS_INTVL = 20 |
| How often to send settings? [s]. More... | |
| constexpr std::uint8_t | XPMP2::RMT_VER_SETTINGS = 0 |
| Setttings message version number. More... | |
| constexpr std::uint8_t | XPMP2::RMT_VER_AC_DETAIL = 3 |
| A/C detail message version number. More... | |
| constexpr std::uint8_t | XPMP2::RMT_VER_AC_DETAIL_2 = 2 |
| constexpr std::uint8_t | XPMP2::RMT_VER_AC_DETAIL_1 = 1 |
| constexpr std::uint8_t | XPMP2::RMT_VER_AC_DETAIL_0 = 0 |
| constexpr std::uint8_t | XPMP2::RMT_VER_AC_POS_UPDATE = 0 |
| A/C Position update message version number. More... | |
| constexpr double | XPMP2::REMOTE_DEGREE_RES = 0.00000001 |
| What is the maximum difference a RemoteAcPosUpdateTy can hold? More... | |
| constexpr double | XPMP2::REMOTE_MAX_DIFF_DEGREE = REMOTE_DEGREE_RES * INT16_MAX |
| maximum degree difference that can be represented in a pos update msg More... | |
| constexpr double | XPMP2::REMOTE_ALT_FT_RES = 0.01 |
| resolution of altitude[ft] updates More... | |
| constexpr double | XPMP2::REMOTE_MAX_DIFF_ALT_FT = REMOTE_ALT_FT_RES * INT16_MAX |
| maximum altitude[ft] difference that can be represented in a pos update msg More... | |
| constexpr float | XPMP2::REMOTE_TIME_RES = 0.0001f |
| resolution of time difference More... | |
| constexpr float | XPMP2::REMOTE_MAX_DIFF_TIME = REMOTE_TIME_RES * UINT16_MAX |
| maximum time difference thatn can be represented in a pos update msg More... | |
| constexpr std::uint8_t | XPMP2::RMT_VER_AC_ANIM = 0 |
| A/C Position update message version number. More... | |
| constexpr std::uint8_t | XPMP2::RMT_VER_AC_REMOVE = 0 |
| A/C removal message version number. More... | |
Semi-public remote network functionality for master/client operations.
Technically, this is public functionality from a library point of view. But it is intended for the "XPMP Remote Client" only, not for a standard plugin.
Network messages are packed for space efficiency, but also to avoid layout differences between compilers/platforms. However, manual layout tries to do reasonable alignment of numeric values and 8-byte-alignment of each structure, so that arrays of structures also align well.
| struct XPMP2::RemoteAcAnimTy::DataRefValTy |
dataRef animation types and value
| Class Members | ||
|---|---|---|
| DR_VALS | idx | index into XPMP2::Aircraft::v |
| uint8_t | v | dataRef animation value |