BOOL, FLOAT etc. conflict with typedefs in windows.h.
void FGAIMultiplayer::update(double dt)
{
- using namespace simgear::props;
+ using namespace simgear;
if (dt <= 0)
return;
{
//cout << "Found " << pIt->second->getPath() << ":";
switch ((*firstPropIt)->type) {
- case INT:
- case BOOL:
- case LONG:
+ case props::INT:
+ case props::BOOL:
+ case props::LONG:
pIt->second->setIntValue((*firstPropIt)->int_value);
//cout << "Int: " << (*firstPropIt)->int_value << "\n";
break;
- case FLOAT:
- case DOUBLE:
+ case props::FLOAT:
+ case props::DOUBLE:
pIt->second->setFloatValue((*firstPropIt)->float_value);
//cout << "Flo: " << (*firstPropIt)->float_value << "\n";
break;
- case STRING:
- case UNSPECIFIED:
+ case props::STRING:
+ case props::UNSPECIFIED:
pIt->second->setStringValue((*firstPropIt)->string_value);
//cout << "Str: " << (*firstPropIt)->string_value << "\n";
break;
int ival;
float val;
switch ((*prevPropIt)->type) {
- case INT:
- case BOOL:
- case LONG:
+ case props::INT:
+ case props::BOOL:
+ case props::LONG:
ival = (int) (0.5+(1-tau)*((double) (*prevPropIt)->int_value) +
tau*((double) (*nextPropIt)->int_value));
pIt->second->setIntValue(ival);
//cout << "Int: " << ival << "\n";
break;
- case FLOAT:
- case DOUBLE:
+ case props::FLOAT:
+ case props::DOUBLE:
val = (1-tau)*(*prevPropIt)->float_value +
tau*(*nextPropIt)->float_value;
//cout << "Flo: " << val << "\n";
pIt->second->setFloatValue(val);
break;
- case STRING:
- case UNSPECIFIED:
+ case props::STRING:
+ case props::UNSPECIFIED:
//cout << "Str: " << (*nextPropIt)->string_value << "\n";
pIt->second->setStringValue((*nextPropIt)->string_value);
break;
if (pIt != mPropertyMap.end())
{
switch ((*firstPropIt)->type) {
- case INT:
- case BOOL:
- case LONG:
+ case props::INT:
+ case props::BOOL:
+ case props::LONG:
pIt->second->setIntValue((*firstPropIt)->int_value);
//cout << "Int: " << (*firstPropIt)->int_value << "\n";
break;
- case FLOAT:
- case DOUBLE:
+ case props::FLOAT:
+ case props::DOUBLE:
pIt->second->setFloatValue((*firstPropIt)->float_value);
//cout << "Flo: " << (*firstPropIt)->float_value << "\n";
break;
- case STRING:
- case UNSPECIFIED:
+ case props::STRING:
+ case props::UNSPECIFIED:
pIt->second->setStringValue((*firstPropIt)->string_value);
//cout << "Str: " << (*firstPropIt)->string_value << "\n";
break;
static void
copy_to_pui (SGPropertyNode *node, puObject *object)
{
- using namespace simgear::props;
+ using namespace simgear;
GUIInfo *info = (GUIInfo *)object->getUserData();
if (!info) {
SG_LOG(SG_GENERAL, SG_ALERT, "dialog: widget without GUIInfo!");
}
switch (node->getType()) {
- case BOOL:
- case INT:
- case LONG:
+ case props::BOOL:
+ case props::INT:
+ case props::LONG:
object->setValue(node->getIntValue());
break;
- case FLOAT:
- case DOUBLE:
+ case props::FLOAT:
+ case props::DOUBLE:
object->setValue(node->getFloatValue());
break;
default:
static void
copy_from_pui (puObject *object, SGPropertyNode *node)
{
- using namespace simgear::props;
+ using namespace simgear;
// puText objects are immutable, so should not be copied out
if (object->getType() & PUCLASS_TEXT)
return;
switch (node->getType()) {
- case BOOL:
- case INT:
- case LONG:
+ case props::BOOL:
+ case props::INT:
+ case props::LONG:
node->setIntValue(object->getIntegerValue());
break;
- case FLOAT:
- case DOUBLE:
+ case props::FLOAT:
+ case props::DOUBLE:
node->setFloatValue(object->getFloatValue());
break;
default:
static string getValueTypeString(const SGPropertyNode *node)
{
- using namespace simgear::props;
+ using namespace simgear;
string result;
- Type type = node->getType();
- if (type == UNSPECIFIED)
+ props::Type type = node->getType();
+ if (type == props::UNSPECIFIED)
result = "unspecified";
- else if (type == NONE)
+ else if (type == props::NONE)
result = "none";
- else if (type == BOOL)
+ else if (type == props::BOOL)
result = "bool";
- else if (type == INT)
+ else if (type == props::INT)
result = "int";
- else if (type == LONG)
+ else if (type == props::LONG)
result = "long";
- else if (type == FLOAT)
+ else if (type == props::FLOAT)
result = "float";
- else if (type == DOUBLE)
+ else if (type == props::DOUBLE)
result = "double";
- else if (type == STRING)
+ else if (type == props::STRING)
result = "string";
- else if (type == VEC3D)
+ else if (type == props::VEC3D)
result = "vec3d";
- else if (type == VEC4D)
+ else if (type == props::VEC4D)
result = "vec4d";
return result;
static void dumpProperties(const SGPropertyNode *node)
{
- using namespace simgear::props;
+ using namespace simgear;
cout << node->getPath() << '/' << endl;
for (int i = 0; i < node->nChildren(); i++) {
const SGPropertyNode *c = node->getChild(i);
- Type type = c->getType();
- if (type == ALIAS || c->nChildren())
+ props::Type type = c->getType();
+ if (type == props::ALIAS || c->nChildren())
continue;
int index = c->getIndex();
cout << " = ";
switch (c->getType()) {
- case DOUBLE:
- case FLOAT:
- case VEC3D:
- case VEC4D:
+ case props::DOUBLE:
+ case props::FLOAT:
+ case props::VEC3D:
+ case props::VEC4D:
{
streamsize precision = cout.precision(15);
c->printOn(cout);
cout.precision(precision);
}
break;
- case LONG:
- case INT:
- case BOOL:
+ case props::LONG:
+ case props::INT:
+ case props::BOOL:
c->printOn(cout);
break;
- case STRING:
+ case props::STRING:
cout << '"' << c->getStringValue() << '"';
break;
- case NONE:
+ case props::NONE:
break;
default:
cout << '\'' << c->getStringValue() << '\'';
void PropertyList::updateTextForEntry(NodeData& data)
{
- using namespace simgear::props;
+ using namespace simgear;
SGPropertyNode *node = data.node;
stdString name = node->getDisplayName(true);
stdString type = getValueTypeString(node);
line << '/';
if (!children || (_verbose && node->hasValue())) {
- if (node->getType() == STRING
- || node->getType() == UNSPECIFIED)
+ if (node->getType() == props::STRING
+ || node->getType() == props::UNSPECIFIED)
sanitize(value);
line << " = '" << value << "' (" << type;
static void upper_case_property(const char *name)
{
- using namespace simgear::props;
+ using namespace simgear;
SGPropertyNode *p = fgGetNode(name, false);
if (!p) {
p = fgGetNode(name, true);
p->setStringValue("");
} else {
- Type t = p->getType();
- if (t == NONE || t == UNSPECIFIED)
+ props::Type t = p->getType();
+ if (t == props::NONE || t == props::UNSPECIFIED)
p->setStringValue("");
else
- assert(t == STRING);
+ assert(t == props::STRING);
}
p->addChangeListener(new FGMakeUpperCase);
}
{
bool verifyProperties(const xdr_data_t* data, const xdr_data_t* end)
{
- using namespace simgear::props;
+ using namespace simgear;
const xdr_data_t* xdr = data;
while (xdr < end) {
unsigned id = XDR_decode_uint32(*xdr);
xdr++;
// How we decode the remainder of the property depends on the type
switch (plist->type) {
- case INT:
- case BOOL:
- case LONG:
+ case props::INT:
+ case props::BOOL:
+ case props::LONG:
xdr++;
break;
- case FLOAT:
- case DOUBLE:
+ case props::FLOAT:
+ case props::DOUBLE:
{
float val = XDR_decode_float(*xdr);
if (osg::isNaN(val))
xdr++;
break;
}
- case STRING:
- case UNSPECIFIED:
+ case props::STRING:
+ case props::UNSPECIFIED:
{
// String is complicated. It consists of
// The length of the string
* or receive data over the network
******************************************************************/
bool FGMultiplay::process() {
- using namespace simgear::props;
+ using namespace simgear;
if (get_direction() == SG_IO_OUT) {
// check if we have left initialization phase. That will not provide
pData->type = it->second->getType();
switch (pData->type) {
- case INT:
- case LONG:
- case BOOL:
+ case props::INT:
+ case props::LONG:
+ case props::BOOL:
pData->int_value = it->second->getIntValue();
break;
- case FLOAT:
- case DOUBLE:
+ case props::FLOAT:
+ case props::DOUBLE:
pData->float_value = it->second->getFloatValue();
break;
- case STRING:
- case UNSPECIFIED:
+ case props::STRING:
+ case props::UNSPECIFIED:
{
// FIXME: We assume unspecified are strings for the moment.
static string
getValueTypeString( const SGPropertyNode *node )
{
- using namespace simgear::props;
+ using namespace simgear;
string result;
return "unknown";
}
- Type type = node->getType();
- if ( type == UNSPECIFIED ) {
+ props::Type type = node->getType();
+ if ( type == props::UNSPECIFIED ) {
result = "unspecified";
- } else if ( type == NONE ) {
+ } else if ( type == props::NONE ) {
result = "none";
- } else if ( type == BOOL ) {
+ } else if ( type == props::BOOL ) {
result = "bool";
- } else if ( type == INT ) {
+ } else if ( type == props::INT ) {
result = "int";
- } else if ( type == LONG ) {
+ } else if ( type == props::LONG ) {
result = "long";
- } else if ( type == FLOAT ) {
+ } else if ( type == props::FLOAT ) {
result = "float";
- } else if ( type == DOUBLE ) {
+ } else if ( type == props::DOUBLE ) {
result = "double";
- } else if ( type == STRING ) {
+ } else if ( type == props::STRING ) {
result = "string";
}
// nil if it doesn't exist.
static naRef f_getprop(naContext c, naRef me, int argc, naRef* args)
{
- using namespace simgear::props;
+ using namespace simgear;
const SGPropertyNode* p = findnode(c, args, argc);
if(!p) return naNil();
switch(p->getType()) {
- case BOOL: case INT:
- case LONG: case FLOAT:
- case DOUBLE:
+ case props::BOOL: case props::INT:
+ case props::LONG: case props::FLOAT:
+ case props::DOUBLE:
return naNum(p->getDoubleValue());
- case STRING:
- case UNSPECIFIED:
+ case props::STRING:
+ case props::UNSPECIFIED:
{
naRef nastr = naNewString(c);
const char* val = p->getStringValue();
naStr_fromdata(nastr, (char*)val, strlen(val));
return nastr;
}
- case ALIAS: // <--- FIXME, recurse?
+ case props::ALIAS: // <--- FIXME, recurse?
default:
return naNil();
}
bool FGNasalListener::changed(SGPropertyNode* node)
{
- using namespace simgear::props;
- Type type = node->getType();
- if(type == NONE) return false;
- if(type == UNSPECIFIED) return true;
+ using namespace simgear;
+ props::Type type = node->getType();
+ if(type == props::NONE) return false;
+ if(type == props::UNSPECIFIED) return true;
bool result;
switch(type) {
- case BOOL:
- case INT:
- case LONG:
+ case props::BOOL:
+ case props::INT:
+ case props::LONG:
{
long l = node->getLongValue();
result = l != _last_int;
_last_int = l;
return result;
}
- case FLOAT:
- case DOUBLE:
+ case props::FLOAT:
+ case props::DOUBLE:
{
double d = node->getDoubleValue();
result = d != _last_float;
static naRef f_getType(naContext c, naRef me, int argc, naRef* args)
{
- using namespace simgear::props;
+ using namespace simgear;
NODEARG();
const char* t = "unknown";
switch((*node)->getType()) {
- case NONE: t = "NONE"; break;
- case ALIAS: t = "ALIAS"; break;
- case BOOL: t = "BOOL"; break;
- case INT: t = "INT"; break;
- case LONG: t = "LONG"; break;
- case FLOAT: t = "FLOAT"; break;
- case DOUBLE: t = "DOUBLE"; break;
- case STRING: t = "STRING"; break;
- case UNSPECIFIED: t = "UNSPECIFIED"; break;
- case VEC3D: t = "VEC3D"; break;
- case VEC4D: t = "VEC4D"; break;
+ case props::NONE: t = "NONE"; break;
+ case props::ALIAS: t = "ALIAS"; break;
+ case props::BOOL: t = "BOOL"; break;
+ case props::INT: t = "INT"; break;
+ case props::LONG: t = "LONG"; break;
+ case props::FLOAT: t = "FLOAT"; break;
+ case props::DOUBLE: t = "DOUBLE"; break;
+ case props::STRING: t = "STRING"; break;
+ case props::UNSPECIFIED: t = "UNSPECIFIED"; break;
+ case props::VEC3D: t = "VEC3D"; break;
+ case props::VEC4D: t = "VEC4D"; break;
}
return NASTR(t);
}
static naRef f_getValue(naContext c, naRef me, int argc, naRef* args)
{
- using namespace simgear::props;
+ using namespace simgear;
NODEARG();
switch((*node)->getType()) {
- case BOOL: case INT:
- case LONG: case FLOAT:
- case DOUBLE:
+ case props::BOOL: case props::INT:
+ case props::LONG: case props::FLOAT:
+ case props::DOUBLE:
return naNum((*node)->getDoubleValue());
- case STRING:
- case UNSPECIFIED:
+ case props::STRING:
+ case props::UNSPECIFIED:
return NASTR((*node)->getStringValue());
- case VEC3D:
+ case props::VEC3D:
return makeVectorFromVec(c, (*node)->getValue<SGVec3d>());
- case VEC4D:
+ case props::VEC4D:
return makeVectorFromVec(c, (*node)->getValue<SGVec4d>());
default:
return naNil();