+ SG_LOG(SG_INPUT, SG_INFO, "Done reading instr_label instrument "
+ << node->getStringValue("name", "[none]"));
+
+ string loadfn = node->getStringValue("data_source"); // FIXME
+ float (*load_fn)(void);
+#ifdef ENABLE_SP_FMDS
+ if (loadfn == "aux1")
+ load_fn = get_aux1;
+ else if (loadfn == "aux2")
+ load_fn = get_aux2;
+ else if (loadfn == "aux3")
+ load_fn = get_aux3;
+ else if (loadfn == "aux4")
+ load_fn = get_aux4;
+ else if (loadfn == "aux5")
+ load_fn = get_aux5;
+ else if (loadfn == "aux6")
+ load_fn = get_aux6;
+ else if (loadfn == "aux7")
+ load_fn = get_aux7;
+ else if (loadfn == "aux8")
+ load_fn = get_aux8;
+ else if (loadfn == "aux9")
+ load_fn = get_aux9;
+ else if (loadfn == "aux10")
+ load_fn = get_aux10;
+ else if (loadfn == "aux11")
+ load_fn = get_aux11;
+ else if (loadfn == "aux12")
+ load_fn = get_aux12;
+ else if (loadfn == "aux13")
+ load_fn = get_aux13;
+ else if (loadfn == "aux14")
+ load_fn = get_aux14;
+ else if (loadfn == "aux15")
+ load_fn = get_aux15;
+ else if (loadfn == "aux16")
+ load_fn = get_aux16;
+ else if (loadfn == "aux17")
+ load_fn = get_aux17;
+ else if (loadfn == "aux18")
+ load_fn = get_aux18;
+ else
+#endif
+ if (loadfn == "ax")
+ load_fn = get_Ax;
+ else if (loadfn == "speed")
+ load_fn = get_speed;
+ else if (loadfn == "mach")
+ load_fn = get_mach;
+ else if (loadfn == "altitude")
+ load_fn = get_altitude;
+ else if (loadfn == "agl")
+ load_fn = get_agl;
+ else if (loadfn == "framerate")
+ load_fn = get_frame_rate;
+ else if (loadfn == "heading")
+ load_fn = get_heading;
+ else if (loadfn == "fov")
+ load_fn = get_fov;
+ else if (loadfn == "vfc_tris_culled")
+ load_fn = get_vfc_tris_culled;
+ else if (loadfn == "vfc_tris_drawn")
+ load_fn = get_vfc_tris_drawn;
+ else if (loadfn == "aoa")
+ load_fn = get_aoa;
+ else if (loadfn == "latitude")
+ load_fn = get_latitude;
+ else if (loadfn == "anzg")
+ load_fn = get_anzg;
+ else if (loadfn == "longitude")
+ load_fn = get_longitude;
+ else if (loadfn =="throttleval")
+ load_fn = get_throttleval;
+ else
+ load_fn = 0;
+
+ set_data_source(load_fn);
+
+ int just = node->getIntValue("justification");
+ if (just == 0)
+ justify = LEFT_JUST;
+ else if (just == 1)
+ justify = CENTER_JUST;
+ else if (just == 2)
+ justify = RIGHT_JUST;
+
+ if (!strcmp(pre_str, "NULL"))
+ pre_str = NULL;
+ else if (!strcmp(pre_str, "blank"))
+ pre_str = " ";
+
+ const char *units = strcmp(fgGetString("/sim/startup/units"), "feet") ? " m" : " ft"; // FIXME
+
+ if (!strcmp(post_str, "blank"))
+ post_str = " ";
+ else if (!strcmp(post_str, "NULL"))
+ post_str = NULL;
+ else if (!strcmp(post_str, "units"))
+ post_str = units;
+
+
+ if (pre_str != NULL) {
+ if (post_str != NULL)
+ sprintf(format_buffer, "%s%s%s", pre_str, pformat, post_str);
+ else
+ sprintf(format_buffer, "%s%s", pre_str, pformat);
+
+ } else if (post_str != NULL) {
+ sprintf(format_buffer, "%s%s", pformat, post_str);
+ } else {
+ strcpy(format_buffer, pformat); // FIXME