Refactored logging.
- Logging levels are now named preprocessor defines - Logging level is now a parameter for WriteLine/FormatLine
This commit is contained in:
@@ -29,8 +29,9 @@ namespace XPC
|
||||
{
|
||||
using namespace std;
|
||||
|
||||
const size_t PLANE_COUNT = 20;
|
||||
static map<DREF, XPLMDataRef> drefs;
|
||||
static map<DREF, XPLMDataRef> mdrefs[20];
|
||||
static map<DREF, XPLMDataRef> mdrefs[PLANE_COUNT];
|
||||
static map<string, XPLMDataRef> sdrefs;
|
||||
|
||||
DREF XPData[134][8] = { DREF_None };
|
||||
@@ -143,7 +144,7 @@ namespace XPC
|
||||
drefs.insert(make_pair(DREF_MP7Alt, XPLMFindDataRef("sim/multiplayer/position/plane7_el")));
|
||||
|
||||
char multi[256];
|
||||
for (int i = 1; i < 20; i++)
|
||||
for (int i = 1; i < PLANE_COUNT; i++)
|
||||
{
|
||||
sprintf(multi, "sim/multiplayer/position/plane%i_x", i);
|
||||
mdrefs[i][DREF_LocalX] = XPLMFindDataRef(multi);
|
||||
@@ -302,6 +303,7 @@ namespace XPC
|
||||
|
||||
int DataManager::Get(const string& dref, float values[], int size)
|
||||
{
|
||||
Log::WriteLine(LOG_TRACE, "DMAN", "Entered Get(string, float*, int)");
|
||||
XPLMDataRef& xdref = sdrefs[dref];
|
||||
if (xdref == NULL)
|
||||
{
|
||||
@@ -309,24 +311,18 @@ namespace XPC
|
||||
}
|
||||
if (!xdref) // DREF does not exist
|
||||
{
|
||||
#if LOG_VERBOSITY > 0
|
||||
Log::FormatLine("[DMAN] ERROR: invalid DREF %s", dref.c_str());
|
||||
#endif
|
||||
Log::FormatLine(LOG_ERROR, "DMAN", "ERROR: invalid DREF %s", dref);
|
||||
return 0;
|
||||
}
|
||||
|
||||
XPLMDataTypeID dataType = XPLMGetDataRefTypes(xdref);
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] Get DREF %s (x:%X) Type: %i", dref.c_str(), xdref, dataType);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", "Get DREF %s (x:%X) Type: %i", dref, xdref, dataType);
|
||||
// XPLMDataTypeID is a bit flag, so it may contain more than one of the
|
||||
// following types. We prefer types as close to float as possible.
|
||||
if ((dataType & 2) == 2) // Float
|
||||
{
|
||||
values[0] = XPLMGetDataf(xdref);
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] -- value was %f", values[0]);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", " -- value was %f", values[0]);
|
||||
return 1;
|
||||
}
|
||||
if ((dataType & 8) == 8) // Float array
|
||||
@@ -334,99 +330,80 @@ namespace XPC
|
||||
int drefSize = XPLMGetDatavf(xdref, NULL, 0, 0);
|
||||
if (drefSize > size)
|
||||
{
|
||||
#if LOG_VERBOSITY > 1
|
||||
Log::WriteLine("[DMAN] WARN: dref size is larger than available space");
|
||||
Log::FormatLine(" Actual dref size: %i, Available size: %i", drefSize, size);
|
||||
#endif
|
||||
Log::WriteLine(LOG_WARN, "DMAN", "Warning: dref size is larger than available space");
|
||||
Log::FormatLine(LOG_DEBUG, "DMAN", "Actual dref size : %i, Available size : %i", drefSize, size);
|
||||
drefSize = size;
|
||||
}
|
||||
XPLMGetDatavf(xdref, values, 0, drefSize);
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] -- value count was %i", drefSize);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", " -- value count was %i", drefSize);
|
||||
return drefSize;
|
||||
}
|
||||
if ((dataType & 4) == 4) // Double
|
||||
{
|
||||
values[0] = (float)XPLMGetDatad(xdref);
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] -- value was %f", values[0]);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", " -- value was %f", values[0]);
|
||||
return 1;
|
||||
}
|
||||
if ((dataType & 1) == 1) // Integer
|
||||
{
|
||||
values[0] = (float)XPLMGetDatai(xdref);
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] -- value was %i", (int)values[0]);
|
||||
#endif
|
||||
int iValue = XPLMGetDatai(xdref);
|
||||
values[0] = (float)iValue;
|
||||
Log::FormatLine(LOG_INFO, "DMAN", " -- Real value was %i, cast to %f", iValue, values[0]);
|
||||
return 1;
|
||||
}
|
||||
if ((dataType & 16) == 16) // Integer array
|
||||
{
|
||||
int iValues[200];
|
||||
const std::size_t TMP_SIZE = 200;
|
||||
int iValues[TMP_SIZE];
|
||||
int drefSize = XPLMGetDatavi(xdref, NULL, 0, 0);
|
||||
if (drefSize > size)
|
||||
{
|
||||
#if LOG_VERBOSITY > 1
|
||||
Log::WriteLine("[DMAN] WARN: dref size is larger than available space");
|
||||
Log::FormatLine(" Actual dref size: %i, Available size: %i", drefSize, size);
|
||||
#endif
|
||||
Log::WriteLine(LOG_WARN, "DMAN", "Warning: dref size is larger than available space");
|
||||
Log::FormatLine(LOG_DEBUG, "DMAN", "Actual dref size : %i, Available size : %i", drefSize, size);
|
||||
drefSize = size;
|
||||
}
|
||||
if (drefSize > 200)
|
||||
if (drefSize > TMP_SIZE)
|
||||
{
|
||||
#if LOG_VERBOSITY > 1
|
||||
Log::WriteLine("[DMAN] WARN: dref size is larger than temp buffer");
|
||||
Log::FormatLine(" Actual dref size: %i, Temp buffer size: 200", drefSize);
|
||||
#endif
|
||||
drefSize = 200;
|
||||
Log::WriteLine(LOG_WARN, "DMAN", "Warning: dref size is larger than temp buffer");
|
||||
Log::FormatLine(LOG_DEBUG, "DMAN", "Actual dref size : %i, Temp buffer size: %u", drefSize, TMP_SIZE);
|
||||
drefSize = TMP_SIZE;
|
||||
}
|
||||
XPLMGetDatavi(xdref, iValues, 0, drefSize);
|
||||
for (int i = 0; i < drefSize; ++i)
|
||||
{
|
||||
values[i] = (float)iValues[i];
|
||||
}
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] -- value count was %i", drefSize);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", " -- value count was %i", drefSize);
|
||||
return drefSize;
|
||||
}
|
||||
if ((dataType & 32) == 32) // Byte array
|
||||
{
|
||||
char bValues[1024];
|
||||
const std::size_t TMP_SIZE = 1024;
|
||||
char bValues[TMP_SIZE];
|
||||
int drefSize = XPLMGetDatab(xdref, NULL, 0, 0);
|
||||
if (drefSize > size)
|
||||
{
|
||||
#if LOG_VERBOSITY > 1
|
||||
Log::WriteLine("[DMAN] WARN: dref size is larger than available space");
|
||||
Log::FormatLine(" Actual dref size: %i, Available size: %i", drefSize, size);
|
||||
#endif
|
||||
Log::WriteLine(LOG_WARN, "DMAN", "Warning: dref size is larger than available space");
|
||||
Log::FormatLine(LOG_DEBUG, "DMAN", "Actual dref size : %i, Available size : %i", drefSize, size);
|
||||
drefSize = size;
|
||||
}
|
||||
if (drefSize > 1024)
|
||||
if (drefSize > TMP_SIZE)
|
||||
{
|
||||
#if LOG_VERBOSITY > 1
|
||||
Log::WriteLine("[DMAN] WARN: dref size is larger than temp buffer");
|
||||
Log::FormatLine(" Actual dref size: %i, Temp buffer size: 1024", drefSize);
|
||||
#endif
|
||||
drefSize = 1024;
|
||||
Log::WriteLine(LOG_WARN, "DMAN", "Warning: dref size is larger than temp buffer");
|
||||
Log::FormatLine(LOG_DEBUG, "DMAN", "Actual dref size : %i, Temp buffer size: %u", drefSize, TMP_SIZE);
|
||||
drefSize = TMP_SIZE;
|
||||
}
|
||||
XPLMGetDatab(xdref, bValues, 0, drefSize);
|
||||
for (int i = 0; i < drefSize; ++i)
|
||||
{
|
||||
values[i] = (float)bValues[i];
|
||||
}
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] -- value count was %i", drefSize);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", " -- value count was %i", drefSize);
|
||||
return drefSize;
|
||||
}
|
||||
|
||||
// No match
|
||||
#if LOG_VERBOSITY > 0
|
||||
Log::WriteLine("[DMAN] ERROR: Unrecognized data type.");
|
||||
#endif
|
||||
Log::WriteLine(LOG_ERROR, "DMAN", "ERROR: Unrecognized data type.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -434,9 +411,8 @@ namespace XPC
|
||||
{
|
||||
const XPLMDataRef& xdref = aircraft == 0 ? drefs[dref] : mdrefs[aircraft][dref];
|
||||
double value = XPLMGetDatad(xdref);
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] Get DREF %i (x:%X) result %f for a/c %i", dref, xdref, value, aircraft);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", "Get DREF %i (x:%X) result %f for a/c %i",
|
||||
dref, xdref, value, aircraft);
|
||||
return value;
|
||||
}
|
||||
|
||||
@@ -444,9 +420,8 @@ namespace XPC
|
||||
{
|
||||
const XPLMDataRef& xdref = aircraft == 0 ? drefs[dref] : mdrefs[aircraft][dref];
|
||||
float value = XPLMGetDataf(xdref);
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] Get DREF %i (x:%X) result %f for a/c %i", dref, xdref, value, aircraft);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", "Get DREF %i (x:%X) result %f for a/c %i",
|
||||
dref, xdref, value, aircraft);
|
||||
return value;
|
||||
}
|
||||
|
||||
@@ -454,9 +429,8 @@ namespace XPC
|
||||
{
|
||||
const XPLMDataRef& xdref = aircraft == 0 ? drefs[dref] : mdrefs[aircraft][dref];
|
||||
int value = XPLMGetDatai(xdref);
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] Get DREF %i (x:%X) result %i for a/c %i", dref, xdref, value, aircraft);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", "Get DREF %i (x:%X) result %i for a/c %i",
|
||||
dref, xdref, value, aircraft);
|
||||
return value;
|
||||
}
|
||||
|
||||
@@ -464,9 +438,8 @@ namespace XPC
|
||||
{
|
||||
const XPLMDataRef& xdref = aircraft == 0 ? drefs[dref] : mdrefs[aircraft][dref];
|
||||
int resultSize = XPLMGetDatavf(xdref, values, 0, size);
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] Get DREF %i (x:%X) result size %i for a/c %i", dref, xdref, resultSize, aircraft);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", "Get DREF %i (x:%X) result size %i for a/c %i",
|
||||
dref, xdref, resultSize, aircraft);
|
||||
return resultSize;
|
||||
}
|
||||
|
||||
@@ -474,46 +447,46 @@ namespace XPC
|
||||
{
|
||||
const XPLMDataRef& xdref = aircraft == 0 ? drefs[dref] : mdrefs[aircraft][dref];
|
||||
int resultSize = XPLMGetDatavi(xdref, values, 0, size);
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] Get DREF %i (x:%X) result size %i for a/c %i", dref, xdref, resultSize, aircraft);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", "Get DREF %i (x:%X) result size %i for a/c %i",
|
||||
dref, xdref, resultSize, aircraft);
|
||||
return resultSize;
|
||||
}
|
||||
|
||||
void DataManager::Set(DREF dref, double value, char aircraft)
|
||||
{
|
||||
const XPLMDataRef& xdref = aircraft == 0 ? drefs[dref] : mdrefs[aircraft][dref];
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] Setting DREF %i (x:%X) to %f for a/c %i", dref, xdref, value, aircraft);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", "Setting DREF %i (x:%X) to %f for a/c %i",
|
||||
dref, xdref, value, aircraft);
|
||||
XPLMSetDatad(xdref, value);
|
||||
}
|
||||
|
||||
void DataManager::Set(DREF dref, float value, char aircraft)
|
||||
{
|
||||
const XPLMDataRef& xdref = aircraft == 0 ? drefs[dref] : mdrefs[aircraft][dref];
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] Set DREF %i (x:%X) to %f for a/c %i", dref, xdref, value, aircraft);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", "Setting DREF %i (x:%X) to %f for a/c %i",
|
||||
dref, xdref, value, aircraft);
|
||||
XPLMSetDataf(xdref, value);
|
||||
}
|
||||
|
||||
void DataManager::Set(DREF dref, int value, char aircraft)
|
||||
{
|
||||
const XPLMDataRef& xdref = aircraft == 0 ? drefs[dref] : mdrefs[aircraft][dref];
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] Set DREF %i (x:%X) to %i for a/c %i", dref, xdref, value, aircraft);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", "Setting DREF %i (x:%X) to %i for a/c %i",
|
||||
dref, xdref, value, aircraft);
|
||||
XPLMSetDatai(xdref, value);
|
||||
}
|
||||
|
||||
void DataManager::Set(DREF dref, float values[], int size, char aircraft)
|
||||
{
|
||||
const XPLMDataRef& xdref = aircraft == 0 ? drefs[dref] : mdrefs[aircraft][dref];
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] Set DREF %i (x:%X) (%i values) for a/c %i", dref, xdref, size, aircraft);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", "Setting DREF %i (x:%X) (%i values) for a/c %i",
|
||||
dref, xdref, size, aircraft);
|
||||
int drefSize = XPLMGetDatavf(xdref, NULL, 0, 0);
|
||||
if (drefSize < size)
|
||||
{
|
||||
Log::FormatLine(LOG_WARN, "DMAN", "Warning: Too many values when setting DREF %i. Expected %i, got %i",
|
||||
dref, drefSize, size);
|
||||
}
|
||||
drefSize = min(drefSize, size);
|
||||
XPLMSetDatavf(xdref, values, 0, drefSize);
|
||||
}
|
||||
@@ -521,10 +494,14 @@ namespace XPC
|
||||
void DataManager::Set(DREF dref, int values[], int size, char aircraft)
|
||||
{
|
||||
const XPLMDataRef& xdref = aircraft == 0 ? drefs[dref] : mdrefs[aircraft][dref];
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] Setting DREF %i (x:%X) (%i values) for a/c %i", dref, xdref, size, aircraft);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", "Setting DREF %i (x:%X) (%i values) for a/c %i",
|
||||
dref, xdref, size, aircraft);
|
||||
int drefSize = XPLMGetDatavi(xdref, NULL, 0, 0);
|
||||
if (drefSize < size)
|
||||
{
|
||||
Log::FormatLine(LOG_WARN, "DMAN", "Warning: Too many values when setting DREF %i. Expected %i, got %i",
|
||||
dref, drefSize, size);
|
||||
}
|
||||
drefSize = min(drefSize, size);
|
||||
XPLMSetDatavi(xdref, values, 0, drefSize);
|
||||
}
|
||||
@@ -539,139 +516,113 @@ namespace XPC
|
||||
if (!xdref)
|
||||
{
|
||||
// DREF does not exist
|
||||
#if LOG_VERBOSITY > 0
|
||||
Log::FormatLine("[DMAN] ERROR: invalid DREF %s", dref.c_str());
|
||||
#endif
|
||||
Log::FormatLine(LOG_ERROR, "DMAN", "ERROR: invalid DREF %s", dref);
|
||||
return;
|
||||
}
|
||||
if (isnan(values[0]))
|
||||
{
|
||||
#if LOG_VERBOSITY > 0
|
||||
Log::WriteLine("[DMAN] ERROR: Value must be a number (NaN received)");
|
||||
#endif
|
||||
Log::WriteLine(LOG_ERROR, "DMAN", "ERROR: Value must be a number (NaN received)");
|
||||
return;
|
||||
}
|
||||
|
||||
XPLMDataTypeID dataType = XPLMGetDataRefTypes(xdref);
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] Setting DREF %s (x:%X) Type: %i", dref.c_str(), xdref, dataType);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", "Setting DREF %s (x:%X) Type: %i", xdref, dataType);
|
||||
if ((dataType & 2) == 2) // Float
|
||||
{
|
||||
XPLMSetDataf(xdref, values[0]);
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] -- value was %f", values[0]);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", " -- value was %f", values[0]);
|
||||
}
|
||||
else if ((dataType & 8) == 8) // Float Array
|
||||
{
|
||||
int drefSize = XPLMGetDatavf(xdref, NULL, 0, 0);
|
||||
#if LOG_VERBOSITY > 1
|
||||
if (size > drefSize)
|
||||
{
|
||||
Log::WriteLine("[DMAN] WARN: Provided size is larger than actual dref size");
|
||||
Log::FormatLine(" Actual dref size: %i, Provided buffer size: %i", drefSize, size);
|
||||
Log::WriteLine(LOG_WARN, "DMAN", "Warning: dref size is larger than actual dref size");
|
||||
Log::FormatLine(LOG_DEBUG, "DMAN", "Actual dref size : %i, Provided buffer size : %i",
|
||||
drefSize, size);
|
||||
}
|
||||
#endif
|
||||
drefSize = min(drefSize, size);
|
||||
XPLMSetDatavf(xdref, values, 0, drefSize);
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] -- value count was %i", drefSize);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", " -- value count was %i", drefSize);
|
||||
}
|
||||
else if ((dataType & 4) == 4) // Double
|
||||
{
|
||||
XPLMSetDatad(xdref, values[0]);
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] -- value was %f", values[0]);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", " -- value was %f", values[0]);
|
||||
}
|
||||
else if ((dataType & 1) == 1) // Integer
|
||||
{
|
||||
XPLMSetDatai(xdref, (int)values[0]);
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] -- value was %i", (int)values[0]);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", " -- value was %i", (int)values[0]);
|
||||
}
|
||||
else if ((dataType & 16) == 16) // Integer Array
|
||||
{
|
||||
int iValues[200];
|
||||
const std::size_t TMP_SIZE = 200;
|
||||
int iValues[TMP_SIZE];
|
||||
int drefSize = XPLMGetDatavi(xdref, NULL, 0, 0);
|
||||
#if LOG_VERBOSITY > 1
|
||||
if (size > drefSize)
|
||||
{
|
||||
Log::WriteLine("[DMAN] WARN: Provided size is larger than actual dref size");
|
||||
Log::FormatLine(" Actual dref size: %i, Provided buffer size: %i", drefSize, size);
|
||||
Log::WriteLine(LOG_WARN, "DMAN", "Warning: dref size is larger than actual dref size");
|
||||
Log::FormatLine(LOG_DEBUG, "DMAN", "Actual dref size : %i, Provided buffer size : %i",
|
||||
drefSize, size);
|
||||
}
|
||||
#endif
|
||||
drefSize = min(drefSize, size);
|
||||
if (drefSize > 200)
|
||||
if (drefSize > TMP_SIZE)
|
||||
{
|
||||
#if LOG_VERBOSITY > 1
|
||||
Log::WriteLine("[DMAN] WARN: drefSize larger than temp buffer size.");
|
||||
Log::FormatLine(" Actual dref size: %i, Temp buffer size: 200", drefSize);
|
||||
#endif
|
||||
drefSize = 200;
|
||||
Log::WriteLine(LOG_WARN, "DMAN", "Warning: dref size is larger temp buffer size");
|
||||
Log::FormatLine(LOG_DEBUG, "DMAN", "Actual dref size : %i, Temp buffer size: %i",
|
||||
drefSize, TMP_SIZE);
|
||||
drefSize = TMP_SIZE;
|
||||
}
|
||||
for (int i = 0; i < drefSize; ++i)
|
||||
{
|
||||
iValues[i] = (int)values[i];
|
||||
}
|
||||
XPLMSetDatavi(xdref, iValues, 0, drefSize);
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] -- value count was %i", drefSize);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", " -- value count was %i", drefSize);
|
||||
}
|
||||
else if ((dataType & 32) == 32) // Byte Array
|
||||
{
|
||||
char bValues[1024];
|
||||
const std::size_t TMP_SIZE = 1024;
|
||||
char bValues[TMP_SIZE];
|
||||
int drefSize = XPLMGetDatab(xdref, NULL, 0, 0);
|
||||
#if LOG_VERBOSITY > 1
|
||||
if (size > drefSize)
|
||||
{
|
||||
Log::WriteLine("[DMAN] WARN: Provided size is larger than actual dref size");
|
||||
Log::FormatLine(" Actual dref size: %i, Provided buffer size: %i", drefSize, size);
|
||||
Log::WriteLine(LOG_WARN, "DMAN", "Warning: dref size is larger than actual dref size");
|
||||
Log::FormatLine(LOG_DEBUG, "DMAN", "Actual dref size : %i, Provided buffer size : %i",
|
||||
drefSize, size);
|
||||
}
|
||||
#endif
|
||||
drefSize = min(drefSize, size);
|
||||
if (drefSize > 1024)
|
||||
if (drefSize > TMP_SIZE)
|
||||
{
|
||||
#if LOG_VERBOSITY > 1
|
||||
Log::WriteLine("[DMAN] WARN: drefSize larger than temp buffer size.");
|
||||
Log::FormatLine(" Actual dref size: %i, Temp buffer size: 1024", drefSize);
|
||||
#endif
|
||||
drefSize = 1024;
|
||||
Log::WriteLine(LOG_WARN, "DMAN", "Warning: dref size is larger temp buffer size");
|
||||
Log::FormatLine(LOG_DEBUG, "DMAN", "Actual dref size : %i, Temp buffer size: %i",
|
||||
drefSize, TMP_SIZE);
|
||||
drefSize = TMP_SIZE;
|
||||
}
|
||||
for (int i = 0; i < drefSize; ++i)
|
||||
{
|
||||
bValues[i] = (char)values[i];
|
||||
}
|
||||
XPLMSetDatab(xdref, bValues, 0, drefSize);
|
||||
#if LOG_VERBOSITY > 4
|
||||
Log::FormatLine("[DMAN] -- value count was %i", drefSize);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", " -- value count was %i", drefSize);
|
||||
}
|
||||
else
|
||||
{
|
||||
#if LOG_VERBOSITY > 0
|
||||
Log::WriteLine("[DMAN] ERROR: Unknown type.");
|
||||
#endif
|
||||
Log::WriteLine(LOG_ERROR, "DMAN", "ERROR: Unknown type.");
|
||||
}
|
||||
|
||||
|
||||
#if LOG_VERBOSITY > 1
|
||||
if (!XPLMCanWriteDataRef(xdref))
|
||||
{
|
||||
Log::WriteLine("[DMAN] WARN: dref is not writable. The write operation probably failed.");
|
||||
Log::WriteLine(LOG_WARN, "DMAN", "WARN: dref is not writable. The write operation probably failed.");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void DataManager::SetGear(float gear, bool immediate, char aircraft)
|
||||
{
|
||||
#if LOG_VERBOSITY > 3
|
||||
Log::FormatLine("[DMAN] Setting gear (value:%f, immediate:%i) for aircraft %i", gear, immediate, aircraft);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", "Setting gear (value:%f, immediate:%i) for aircraft %i",
|
||||
gear, immediate, aircraft);
|
||||
|
||||
if ((gear < -8.5 && gear > -9.5) || (gear < -997.9 && gear > -999.1))
|
||||
{
|
||||
@@ -679,9 +630,7 @@ namespace XPC
|
||||
}
|
||||
if (isnan(gear) || gear < 0 || gear > 1)
|
||||
{
|
||||
#if LOG_VERBOSITY > 1
|
||||
Log::WriteLine("[GEAR] ERROR: Value must be 0 or 1");
|
||||
#endif
|
||||
Log::WriteLine(LOG_ERROR, "DMAN", "ERROR: Gear value must be 0 or 1");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -707,14 +656,11 @@ namespace XPC
|
||||
|
||||
void DataManager::SetPosition(float pos[3], char aircraft)
|
||||
{
|
||||
#if LOG_VERBOSITY > 3
|
||||
Log::FormatLine("[DMAN] Setting position (%f, %f, %f) for aircraft %i", pos[0], pos[1], pos[2], aircraft);
|
||||
#endif
|
||||
Log::FormatLine(LOG_INFO, "DMAN", "Setting position (%f, %f, %f) for aircraft %i",
|
||||
pos[0], pos[1], pos[2], aircraft);
|
||||
if (isnan(pos[0] + pos[1] + pos[2]))
|
||||
{
|
||||
#if LOG_VERBOSITY > 0
|
||||
Log::WriteLine("[DMAN] ERROR: Position must be a number (NaN received)");
|
||||
#endif
|
||||
Log::WriteLine(LOG_ERROR, "DMAN", "ERROR: Position must be a number (NaN received)");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -746,15 +692,11 @@ namespace XPC
|
||||
|
||||
void DataManager::SetOrientation(float orient[3], char aircraft)
|
||||
{
|
||||
#if LOG_VERBOSITY > 3
|
||||
Log::FormatLine("[DMAN] Setting orientation (%f, %f, %f) for aircraft %i",
|
||||
Log::FormatLine(LOG_INFO, "DMAN", "Setting orientation (%f, %f, %f) for aircraft %i",
|
||||
orient[0], orient[1], orient[2], aircraft);
|
||||
#endif
|
||||
if (isnan(orient[0] + orient[1] + orient[2]))
|
||||
{
|
||||
#if LOG_VERBOSITY > 0
|
||||
Log::WriteLine("[DMAN] ERROR: Orientation must be a number (NaN received)");
|
||||
#endif
|
||||
Log::WriteLine(LOG_ERROR, "DMAN", "ERROR: Orientation must be a number (NaN received)");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -801,11 +743,11 @@ namespace XPC
|
||||
|
||||
void DataManager::SetFlaps(float value)
|
||||
{
|
||||
Log::FormatLine(LOG_INFO, "DMAN", "Setting flaps (value:%f)", value);
|
||||
|
||||
if (isnan(value))
|
||||
{
|
||||
#if LOG_VERBOSITY > 0
|
||||
Log::WriteLine("[DMAN] ERROR: Flap value must be a number (NaN received)");
|
||||
#endif
|
||||
Log::WriteLine(LOG_ERROR, "DMAN", "ERROR: Flap value must be a number (NaN received)");
|
||||
return;
|
||||
}
|
||||
if (value < -997.9 && value > -999.1)
|
||||
|
||||
Reference in New Issue
Block a user