Update XPLM for ARM64

This commit is contained in:
Kilian committed 2022-09-27 15:34:46 +02:00
1 parent 40067a606d
commit 174c20bd8f
59 files changed
+12475 -9196

No files matched your search

+33 -41
View File
@@ -1,60 +1,52 @@
#include "XPCProcessing.h"
#include "XPLMUtilities.h"
XPCProcess::XPCProcess() : mInCallback(false), mCallbackTime(0)
XPCProcess::XPCProcess() :
mInCallback(false),
mCallbackTime(0)
{
XPLMRegisterFlightLoopCallback(FlightLoopCB,
0,
reinterpret_cast<void *>(this));
XPLMRegisterFlightLoopCallback(FlightLoopCB, 0, reinterpret_cast<void *>(this));
}
XPCProcess::~XPCProcess()
{
XPLMUnregisterFlightLoopCallback(FlightLoopCB,
reinterpret_cast<void *>(this));
XPLMUnregisterFlightLoopCallback(FlightLoopCB, reinterpret_cast<void *>(this));
}
void XPCProcess::StartProcessTime(float inSeconds)
{
mCallbackTime = inSeconds;
if (!mInCallback)
XPLMSetFlightLoopCallbackInterval(
FlightLoopCB, mCallbackTime, 1/*relative to now*/, reinterpret_cast<void *>(this));
}
void XPCProcess::StartProcessTime(float inSeconds)
void XPCProcess::StartProcessCycles(int inCycles)
{
mCallbackTime = inSeconds;
if (!mInCallback)
XPLMSetFlightLoopCallbackInterval(FlightLoopCB,
mCallbackTime,
1 /*relative to now*/,
reinterpret_cast<void *>(this));
mCallbackTime = -inCycles;
if (!mInCallback)
XPLMSetFlightLoopCallbackInterval(
FlightLoopCB, mCallbackTime, 1/*relative to now*/, reinterpret_cast<void *>(this));
}
void XPCProcess::StartProcessCycles(int inCycles)
void XPCProcess::StopProcess(void)
{
mCallbackTime = -inCycles;
if (!mInCallback)
XPLMSetFlightLoopCallbackInterval(FlightLoopCB,
mCallbackTime,
1 /*relative to now*/,
reinterpret_cast<void *>(this));
}
void XPCProcess::StopProcess(void)
{
mCallbackTime = 0;
if (!mInCallback)
XPLMSetFlightLoopCallbackInterval(FlightLoopCB,
mCallbackTime,
1 /*relative to now*/,
reinterpret_cast<void *>(this));
mCallbackTime = 0;
if (!mInCallback)
XPLMSetFlightLoopCallbackInterval(
FlightLoopCB, mCallbackTime, 1/*relative to now*/, reinterpret_cast<void *>(this));
}
float XPCProcess::FlightLoopCB(float inElapsedSinceLastCall,
float inElapsedTimeSinceLastFlightLoop,
int inCounter,
void *inRefcon)
float XPCProcess::FlightLoopCB(
float inElapsedSinceLastCall,
float inElapsedTimeSinceLastFlightLoop,
int inCounter,
void * inRefcon)
{
XPCProcess *me = reinterpret_cast<XPCProcess *>(inRefcon);
me->mInCallback = true;
me->DoProcessing(inElapsedSinceLastCall,
inElapsedTimeSinceLastFlightLoop,
inCounter);
me->mInCallback = false;
return me->mCallbackTime;
XPCProcess * me = reinterpret_cast<XPCProcess *>(inRefcon);
me->mInCallback = true;
me->DoProcessing(inElapsedSinceLastCall, inElapsedTimeSinceLastFlightLoop, inCounter);
me->mInCallback = false;
return me->mCallbackTime;
}