Replace printlog by logprint
This commit is contained in:
parent
6078cff6b1
commit
fba17e4d34
32 changed files with 124 additions and 136 deletions
|
@ -1187,8 +1187,8 @@ _setlistener("/sim/signals/nasal-dir-initialized", func {
|
||||||
##### remove this code when all references to /sim/auto-coordination are gone
|
##### remove this code when all references to /sim/auto-coordination are gone
|
||||||
var ac = props.globals.getNode("/sim/auto-coordination");
|
var ac = props.globals.getNode("/sim/auto-coordination");
|
||||||
if (ac != nil) {
|
if (ac != nil) {
|
||||||
printlog("alert",
|
logprint(LOG_ALERT, "WARNING: using deprecated property "~
|
||||||
"WARNING: using deprecated property /sim/auto-coordination. Please change to /controls/flight/auto-coordination" );
|
"/sim/auto-coordination. Please change to /controls/flight/auto-coordination");
|
||||||
ac.alias(props.globals.getNode("/controls/flight/auto-coordination", 1));
|
ac.alias(props.globals.getNode("/controls/flight/auto-coordination", 1));
|
||||||
}
|
}
|
||||||
#### end of temporary hack for /sim/auto-coordination
|
#### end of temporary hack for /sim/auto-coordination
|
||||||
|
|
|
@ -19,10 +19,10 @@
|
||||||
## - searchCmd -> filtering
|
## - searchCmd -> filtering
|
||||||
##
|
##
|
||||||
## APIs to be wrapped for each layer:
|
## APIs to be wrapped for each layer:
|
||||||
## printlog(), die(), debug.bt(), benchmark()
|
## logprint(), die(), debug.bt(), benchmark()
|
||||||
|
|
||||||
var _MP_dbg_lvl = "debug";
|
var _MP_dbg_lvl = LOG_DEBUG;
|
||||||
#var _MP_dbg_lvl = "alert";
|
#var _MP_dbg_lvl = DEV_ALERT;
|
||||||
|
|
||||||
var makedie = func(prefix) func(msg) globals.die(prefix~" "~msg);
|
var makedie = func(prefix) func(msg) globals.die(prefix~" "~msg);
|
||||||
|
|
||||||
|
@ -475,7 +475,7 @@ var Symbol = {
|
||||||
var tp = typeof(val);
|
var tp = typeof(val);
|
||||||
if(tp != 'scalar'){
|
if(tp != 'scalar'){
|
||||||
val = '';
|
val = '';
|
||||||
#printlog("warn", "formattedString: invalid type for "~prop~" (" ~ tp ~ ")");
|
#logprint(LOG_WARN, "formattedString: invalid type for "~prop~" (" ~ tp ~ ")");
|
||||||
} else {
|
} else {
|
||||||
append(args, val);
|
append(args, val);
|
||||||
}
|
}
|
||||||
|
@ -722,7 +722,7 @@ var DotSym = {
|
||||||
return m;
|
return m;
|
||||||
},
|
},
|
||||||
del: func() {
|
del: func() {
|
||||||
printlog(_MP_dbg_lvl, "DotSym.del()");
|
logprint(_MP_dbg_lvl, "DotSym.del()");
|
||||||
me.deinit();
|
me.deinit();
|
||||||
call(Symbol.del, nil, me);
|
call(Symbol.del, nil, me);
|
||||||
me.element.del();
|
me.element.del();
|
||||||
|
@ -852,7 +852,7 @@ var LineSymbol = {
|
||||||
draw: func() {
|
draw: func() {
|
||||||
if (!me.needs_update) return;
|
if (!me.needs_update) return;
|
||||||
me.callback('draw_before');
|
me.callback('draw_before');
|
||||||
printlog(_MP_dbg_lvl, "redrawing a LineSymbol "~me.layer.type);
|
logprint(_MP_dbg_lvl, "redrawing a LineSymbol "~me.layer.type);
|
||||||
me.element.reset();
|
me.element.reset();
|
||||||
var cmds = [];
|
var cmds = [];
|
||||||
var coords = [];
|
var coords = [];
|
||||||
|
@ -879,7 +879,7 @@ var LineSymbol = {
|
||||||
me.callback('draw_after');
|
me.callback('draw_after');
|
||||||
},
|
},
|
||||||
del: func() {
|
del: func() {
|
||||||
printlog(_MP_dbg_lvl, "LineSymbol.del()");
|
logprint(_MP_dbg_lvl, "LineSymbol.del()");
|
||||||
me.deinit();
|
me.deinit();
|
||||||
call(Symbol.del, nil, me);
|
call(Symbol.del, nil, me);
|
||||||
me.element.del();
|
me.element.del();
|
||||||
|
@ -1060,7 +1060,7 @@ var MultiSymbolLayer = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
del: func() {
|
del: func() {
|
||||||
printlog(_MP_dbg_lvl, "MultiSymbolLayer.del()");
|
logprint(_MP_dbg_lvl, "MultiSymbolLayer.del()");
|
||||||
foreach (var e; me.list)
|
foreach (var e; me.list)
|
||||||
e.del();
|
e.del();
|
||||||
call(SymbolLayer.del, nil, me);
|
call(SymbolLayer.del, nil, me);
|
||||||
|
@ -1094,13 +1094,13 @@ var MultiSymbolLayer = {
|
||||||
},
|
},
|
||||||
# Adds a symbol.
|
# Adds a symbol.
|
||||||
onAdded: func(model) {
|
onAdded: func(model) {
|
||||||
printlog(_MP_dbg_lvl, "Adding symbol of type "~me.type);
|
logprint(_MP_dbg_lvl, "Adding symbol of type "~me.type);
|
||||||
if (model == nil) __die("MultiSymbolLayer: Model was nil for layer:"~debug.string(me.type)~ " Hint:check your equality check method!");
|
if (model == nil) __die("MultiSymbolLayer: Model was nil for layer:"~debug.string(me.type)~ " Hint:check your equality check method!");
|
||||||
append(me.list, Symbol.new(me.type, me.group, me, model));
|
append(me.list, Symbol.new(me.type, me.group, me, model));
|
||||||
},
|
},
|
||||||
# Removes a symbol.
|
# Removes a symbol.
|
||||||
onRemoved: func(model) {
|
onRemoved: func(model) {
|
||||||
printlog(_MP_dbg_lvl, "Deleting symbol of type "~me.type);
|
logprint(_MP_dbg_lvl, "Deleting symbol of type "~me.type);
|
||||||
if (!me.delsym(model)) __die("model not found");
|
if (!me.delsym(model)) __die("model not found");
|
||||||
try_aux_method(model, "del");
|
try_aux_method(model, "del");
|
||||||
#call(func model.del(), nil, var err = []); # try...
|
#call(func model.del(), nil, var err = []); # try...
|
||||||
|
@ -1121,7 +1121,7 @@ var NavaidSymbolLayer = {
|
||||||
make: func(query) {
|
make: func(query) {
|
||||||
#print("Creating searchCmd() for NavaidSymbolLayer:", query);
|
#print("Creating searchCmd() for NavaidSymbolLayer:", query);
|
||||||
return func {
|
return func {
|
||||||
printlog(_MP_dbg_lvl, "Running query:", query);
|
logprint(_MP_dbg_lvl, "Running query:", query);
|
||||||
var range = me.map.getRange();
|
var range = me.map.getRange();
|
||||||
if (range == nil) return;
|
if (range == nil) return;
|
||||||
return positioned.findWithinRange(me.map.getPosCoord(), range, query);
|
return positioned.findWithinRange(me.map.getPosCoord(), range, query);
|
||||||
|
@ -1177,7 +1177,7 @@ var SingleSymbolLayer = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
del: func() {
|
del: func() {
|
||||||
printlog(_MP_dbg_lvl, "SymbolLayer.del()");
|
logprint(_MP_dbg_lvl, "SymbolLayer.del()");
|
||||||
me.symbol.del();
|
me.symbol.del();
|
||||||
call(SymbolLayer.del, nil, me);
|
call(SymbolLayer.del, nil, me);
|
||||||
},
|
},
|
||||||
|
@ -1433,7 +1433,7 @@ var TileLayer = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
del: func() {
|
del: func() {
|
||||||
printlog(_MP_dbg_lvl, "SymbolLayer.del()");
|
logprint(_MP_dbg_lvl, "SymbolLayer.del()");
|
||||||
call(OverlayLayer.del, nil, me);
|
call(OverlayLayer.del, nil, me);
|
||||||
},
|
},
|
||||||
}; # of TileLayer
|
}; # of TileLayer
|
||||||
|
|
|
@ -537,7 +537,7 @@ var Map = {
|
||||||
addLayer: func(factory, type_arg=nil, priority=nil, style=nil, opts=nil, visible=1)
|
addLayer: func(factory, type_arg=nil, priority=nil, style=nil, opts=nil, visible=1)
|
||||||
{
|
{
|
||||||
if(contains(me.layers, type_arg))
|
if(contains(me.layers, type_arg))
|
||||||
printlog("warn", "addLayer() warning: overwriting existing layer:", type_arg);
|
logprint(DEV_ALERT, "addLayer() warning: overwriting existing layer:", type_arg);
|
||||||
|
|
||||||
var options = opts;
|
var options = opts;
|
||||||
# Argument handling
|
# Argument handling
|
||||||
|
@ -625,7 +625,7 @@ var Map = {
|
||||||
if (predicate == nil or predicate(layer))
|
if (predicate == nil or predicate(layer))
|
||||||
layer.update();
|
layer.update();
|
||||||
}
|
}
|
||||||
printlog(_MP_dbg_lvl, "Took "~((systime()-t)*1000)~"ms to update map()");
|
logprint(_MP_dbg_lvl, "Took "~((systime()-t)*1000)~"ms to update map()");
|
||||||
me.setBool("update", 1); # update any coordinates that changed, to avoid floating labels etc.
|
me.setBool("update", 1); # update any coordinates that changed, to avoid floating labels etc.
|
||||||
return me;
|
return me;
|
||||||
},
|
},
|
||||||
|
|
|
@ -276,7 +276,7 @@ draw.marksStyle = {
|
||||||
draw.marksLinear = func(cgroup, orientation, num_marks, interval, style)
|
draw.marksLinear = func(cgroup, orientation, num_marks, interval, style)
|
||||||
{
|
{
|
||||||
if (!isa(style, draw.marksStyle)) {
|
if (!isa(style, draw.marksStyle)) {
|
||||||
printlog("alert", "draw.marks: invalid style argument.");
|
logprint(DEV_WARN, "draw.marks: invalid style argument.");
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
orientation = chr(string.tolower(orientation[0]));
|
orientation = chr(string.tolower(orientation[0]));
|
||||||
|
@ -347,7 +347,7 @@ draw.marksCircular = func(cgroup, radius, interval, phi_start = 0, phi_stop = 36
|
||||||
style = draw.marksStyle.new();
|
style = draw.marksStyle.new();
|
||||||
}
|
}
|
||||||
if (!isa(style, draw.marksStyle)) {
|
if (!isa(style, draw.marksStyle)) {
|
||||||
printlog("info", "draw.marksCircular: invalid style argument");
|
logprint(DEV_WARN, "draw.marksCircular: invalid style argument");
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
# normalize
|
# normalize
|
||||||
|
|
|
@ -179,7 +179,7 @@ var AircraftCenter = {
|
||||||
var acft_id = variant;
|
var acft_id = variant;
|
||||||
b.listen("clicked", func
|
b.listen("clicked", func
|
||||||
{
|
{
|
||||||
printlog("warn", "Switching to aircraft '" ~ acft_id ~ "'");
|
logprint(LOG_WARN, "Switching to aircraft '" ~ acft_id ~ "'");
|
||||||
fgcommand("switch-aircraft", props.Node.new({"aircraft": acft_id}));
|
fgcommand("switch-aircraft", props.Node.new({"aircraft": acft_id}));
|
||||||
});
|
});
|
||||||
launch_bar.addItem(b);
|
launch_bar.addItem(b);
|
||||||
|
|
|
@ -187,7 +187,7 @@ var MessageBox = {
|
||||||
|
|
||||||
if( io.stat(me._save_path) != nil )
|
if( io.stat(me._save_path) != nil )
|
||||||
{
|
{
|
||||||
printlog("info", "Load dialog selection from '" ~ me._save_path ~ "'");
|
logprint(LOG_INFO, "Load dialog selection from '" ~ me._save_path ~ "'");
|
||||||
return int(io.readfile(me._save_path));
|
return int(io.readfile(me._save_path));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -195,7 +195,7 @@ var MessageBox = {
|
||||||
},
|
},
|
||||||
_saveSelection: func(sel)
|
_saveSelection: func(sel)
|
||||||
{
|
{
|
||||||
printlog("info", "Saving dialog selection to '" ~ me._save_path ~ "'");
|
logprint(LOG_INFO, "Saving dialog selection to '" ~ me._save_path ~ "'");
|
||||||
|
|
||||||
# ensure directory exists
|
# ensure directory exists
|
||||||
os.path.new(me._save_path).create_dir();
|
os.path.new(me._save_path).create_dir();
|
||||||
|
|
|
@ -22,7 +22,7 @@ var init = func {
|
||||||
|
|
||||||
var draw = func() {
|
var draw = func() {
|
||||||
me.callback('draw_before');
|
me.callback('draw_before');
|
||||||
printlog(_MP_dbg_lvl, "redrawing a LineSymbol "~me.layer.type);
|
logprint(_MP_dbg_lvl, "redrawing a LineSymbol "~me.layer.type);
|
||||||
me.element.reset();
|
me.element.reset();
|
||||||
var cmds = [];
|
var cmds = [];
|
||||||
var coords = [];
|
var coords = [];
|
||||||
|
|
|
@ -22,7 +22,7 @@ var new = func(layer) {
|
||||||
return m;
|
return m;
|
||||||
};
|
};
|
||||||
var del = func() {
|
var del = func() {
|
||||||
printlog(_MP_dbg_lvl, "VOR.lcontroller.del()");
|
logprint(_MP_dbg_lvl, "VOR.lcontroller.del()");
|
||||||
foreach (var l; me.listeners)
|
foreach (var l; me.listeners)
|
||||||
removelistener(l);
|
removelistener(l);
|
||||||
};
|
};
|
||||||
|
|
|
@ -43,10 +43,10 @@ var del = func() {
|
||||||
};
|
};
|
||||||
|
|
||||||
var searchCmd = func() {
|
var searchCmd = func() {
|
||||||
printlog(_MP_dbg_lvl, "Running query: FLT");
|
logprint(_MP_dbg_lvl, "Running query: FLT");
|
||||||
var hist = aircraft.history();
|
var hist = aircraft.history();
|
||||||
var path = hist.pathForHistory(1000);
|
var path = hist.pathForHistory(1000);
|
||||||
printlog(_MP_dbg_lvl, "FLT size: "~size(path));
|
logprint(_MP_dbg_lvl, "FLT size: "~size(path));
|
||||||
while (size(me.models) <= me.active_path) append(me.models, []);
|
while (size(me.models) <= me.active_path) append(me.models, []);
|
||||||
for (var i=size(me.models[me.active_path]); i<size(path); i+=1)
|
for (var i=size(me.models[me.active_path]); i<size(path); i+=1)
|
||||||
me.layer.append(me.active_path, path[i], me.models[me.active_path]);
|
me.layer.append(me.active_path, path[i], me.models[me.active_path]);
|
||||||
|
|
|
@ -50,7 +50,7 @@ var last_result = [];
|
||||||
|
|
||||||
var searchCmd = func {
|
var searchCmd = func {
|
||||||
# FIXME: do we return the current route even if it isn't active?
|
# FIXME: do we return the current route even if it isn't active?
|
||||||
printlog(_MP_dbg_lvl, "Running query: ", name);
|
logprint(_MP_dbg_lvl, "Running query: ", name);
|
||||||
var plans = []; # TODO: multiple flightplans?
|
var plans = []; # TODO: multiple flightplans?
|
||||||
var driver = me.route_driver;
|
var driver = me.route_driver;
|
||||||
driver.update();
|
driver.update();
|
||||||
|
|
|
@ -83,7 +83,7 @@ var searchCmd = func;
|
||||||
|
|
||||||
var searchCmd_default = func {
|
var searchCmd_default = func {
|
||||||
# TODO: this would be a good candidate for splitting across frames
|
# TODO: this would be a good candidate for splitting across frames
|
||||||
printlog(_MP_dbg_lvl, "Doing query: "~name);
|
logprint(_MP_dbg_lvl, "Doing query: "~name);
|
||||||
|
|
||||||
if (me.map.getRange() == nil) return;
|
if (me.map.getRange() == nil) return;
|
||||||
|
|
||||||
|
@ -105,7 +105,7 @@ var searchCmd_default = func {
|
||||||
var (lat,lon) = (t.getValue("position/latitude-deg"),
|
var (lat,lon) = (t.getValue("position/latitude-deg"),
|
||||||
t.getValue("position/longitude-deg"));
|
t.getValue("position/longitude-deg"));
|
||||||
if (lat == nil or lon == nil) {
|
if (lat == nil or lon == nil) {
|
||||||
printlog("alert", "lat/lon was nil for AI node "~t.getPath());
|
logprint(LOG_ALERT, "lat/lon was nil for AI node "~t.getPath());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ var new = func(layer) {
|
||||||
return m;
|
return m;
|
||||||
};
|
};
|
||||||
var del = func() {
|
var del = func() {
|
||||||
printlog(_MP_dbg_lvl, name,".lcontroller.del()");
|
logprint(_MP_dbg_lvl, name,".lcontroller.del()");
|
||||||
foreach (var l; me.listeners)
|
foreach (var l; me.listeners)
|
||||||
removelistener(l);
|
removelistener(l);
|
||||||
};
|
};
|
||||||
|
|
|
@ -40,7 +40,7 @@ var new = func(layer) {
|
||||||
return m;
|
return m;
|
||||||
};
|
};
|
||||||
var del = func() {
|
var del = func() {
|
||||||
printlog(_MP_dbg_lvl, name,".lcontroller.del()");
|
logprint(_MP_dbg_lvl, name,".lcontroller.del()");
|
||||||
foreach (var l; me.listeners)
|
foreach (var l; me.listeners)
|
||||||
removelistener(l);
|
removelistener(l);
|
||||||
};
|
};
|
||||||
|
|
|
@ -33,7 +33,7 @@ var new = func(layer) {
|
||||||
return m;
|
return m;
|
||||||
};
|
};
|
||||||
var del = func() {
|
var del = func() {
|
||||||
printlog(_MP_dbg_lvl, name,".lcontroller.del()");
|
logprint(_MP_dbg_lvl, name,".lcontroller.del()");
|
||||||
foreach (var l; me.listeners)
|
foreach (var l; me.listeners)
|
||||||
removelistener(l);
|
removelistener(l);
|
||||||
};
|
};
|
||||||
|
|
|
@ -79,7 +79,7 @@ var WPT_model = {
|
||||||
};
|
};
|
||||||
|
|
||||||
var searchCmd = func {
|
var searchCmd = func {
|
||||||
printlog(_MP_dbg_lvl, "Running query: "~name);
|
logprint(_MP_dbg_lvl, "Running query: "~name);
|
||||||
|
|
||||||
if (!getprop(me.options.active_node)) return [];
|
if (!getprop(me.options.active_node)) return [];
|
||||||
var driver = me.route_driver;
|
var driver = me.route_driver;
|
||||||
|
|
|
@ -38,7 +38,7 @@ var searchCmd_default = func {
|
||||||
# print("WXR running");
|
# print("WXR running");
|
||||||
if (me.map.getRange() == nil) return;
|
if (me.map.getRange() == nil) return;
|
||||||
|
|
||||||
printlog(_MP_dbg_lvl, "Doing query: "~name);
|
logprint(_MP_dbg_lvl, "Doing query: "~name);
|
||||||
var results = [];
|
var results = [];
|
||||||
foreach (var n; props.globals.getNode("/instrumentation/wxradar",1).getChildren("storm")) {
|
foreach (var n; props.globals.getNode("/instrumentation/wxradar",1).getChildren("storm")) {
|
||||||
|
|
||||||
|
|
|
@ -87,7 +87,7 @@ var update_layers = func {
|
||||||
l.update();
|
l.update();
|
||||||
return;
|
return;
|
||||||
} else
|
} else
|
||||||
printlog(_MP_dbg_lvl, "update aircraft position");
|
logprint(_MP_dbg_lvl, "update aircraft position");
|
||||||
var (x,y,z) = pos.xyz();
|
var (x,y,z) = pos.xyz();
|
||||||
me._pos.set_xyz(x,y,z);
|
me._pos.set_xyz(x,y,z);
|
||||||
me._time = time;
|
me._time = time;
|
||||||
|
|
|
@ -376,7 +376,7 @@ var NavDisplay = {
|
||||||
if(!layer['isMapStructure']) # set up an old INEFFICIENT and SLOW layer
|
if(!layer['isMapStructure']) # set up an old INEFFICIENT and SLOW layer
|
||||||
the_layer = me.layers[layer.name] = canvas.MAP_LAYERS[layer.name].new( me.map, layer.name, controller );
|
the_layer = me.layers[layer.name] = canvas.MAP_LAYERS[layer.name].new( me.map, layer.name, controller );
|
||||||
else {
|
else {
|
||||||
printlog(canvas._MP_dbg_lvl, "Setting up MapStructure-based layer for ND, name:", layer.name);
|
logprint(canvas._MP_dbg_lvl, "Setting up MapStructure-based layer for ND, name:", layer.name);
|
||||||
var opt = me.options != nil and me.options[layer.name] != nil ? me.options[layer.name] : nil;
|
var opt = me.options != nil and me.options[layer.name] != nil ? me.options[layer.name] : nil;
|
||||||
if (opt == nil and contains(layer, 'options'))
|
if (opt == nil and contains(layer, 'options'))
|
||||||
opt = layer.options;
|
opt = layer.options;
|
||||||
|
@ -410,7 +410,7 @@ var NavDisplay = {
|
||||||
l.predicate = func {
|
l.predicate = func {
|
||||||
var t = systime();
|
var t = systime();
|
||||||
call(_predicate, arg, me);
|
call(_predicate, arg, me);
|
||||||
printlog(canvas._MP_dbg_lvl, "Took "~((systime()-t)*1000)~"ms to update layer "~l.name);
|
logprint(canvas._MP_dbg_lvl, "Took "~((systime()-t)*1000)~"ms to update layer "~l.name);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
|
@ -795,7 +795,7 @@ var NavDisplay = {
|
||||||
me.symbols['status.arpt'].setVisible( me.get_switch('toggle_airports') and me.in_mode('toggle_display_mode', ['MAP']));
|
me.symbols['status.arpt'].setVisible( me.get_switch('toggle_airports') and me.in_mode('toggle_display_mode', ['MAP']));
|
||||||
me.symbols['status.sta'].setVisible( me.get_switch('toggle_stations') and me.in_mode('toggle_display_mode', ['MAP']));
|
me.symbols['status.sta'].setVisible( me.get_switch('toggle_stations') and me.in_mode('toggle_display_mode', ['MAP']));
|
||||||
# Okay, _how_ do we hook this up with FGPlot?
|
# Okay, _how_ do we hook this up with FGPlot?
|
||||||
printlog(canvas._MP_dbg_lvl, "Total ND update took "~((systime()-_time)*100)~"ms");
|
logprint(canvas._MP_dbg_lvl, "Total ND update took "~((systime()-_time)*100)~"ms");
|
||||||
setprop("/instrumentation/navdisplay["~ NavDisplay.id ~"]/update-ms", systime() - _time);
|
setprop("/instrumentation/navdisplay["~ NavDisplay.id ~"]/update-ms", systime() - _time);
|
||||||
} # of update() method (50% of our file ...seriously?)
|
} # of update() method (50% of our file ...seriously?)
|
||||||
};
|
};
|
||||||
|
|
|
@ -22,10 +22,10 @@ var parsesvg = func(group, path, options = nil)
|
||||||
die("File not found: "~path);
|
die("File not found: "~path);
|
||||||
path = file_path;
|
path = file_path;
|
||||||
|
|
||||||
var _printlog = printlog;
|
|
||||||
var printlog = func(level, msg)
|
var logpr = func(level, msg)
|
||||||
{
|
{
|
||||||
_printlog(level, "parsesvg: " ~ msg ~ " [path='" ~ path ~ "']");
|
logprint(level, "parsesvg: "~msg~" [path='"~ path~"']");
|
||||||
};
|
};
|
||||||
|
|
||||||
var custom_font_mapper = options['font-mapper'];
|
var custom_font_mapper = options['font-mapper'];
|
||||||
|
@ -98,7 +98,7 @@ var parsesvg = func(group, path, options = nil)
|
||||||
cur_clip['x'] + cur_clip['width'], cur_clip['y'] + cur_clip['height']);
|
cur_clip['x'] + cur_clip['width'], cur_clip['y'] + cur_clip['height']);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
printlog("warn", "Invalid or unsupported clip for element '" ~ id ~ "'");
|
logpr(LOG_WARN, "Invalid or unsupported clip for element '" ~ id ~ "'");
|
||||||
}
|
}
|
||||||
cur_clip = nil;
|
cur_clip = nil;
|
||||||
}
|
}
|
||||||
|
@ -192,13 +192,12 @@ var parsesvg = func(group, path, options = nil)
|
||||||
if( size(values) == 6 )
|
if( size(values) == 6 )
|
||||||
stack[-1].createTransform(values);
|
stack[-1].createTransform(values);
|
||||||
else
|
else
|
||||||
printlog(
|
logpr(LOG_WARN,
|
||||||
"warn",
|
|
||||||
"Invalid arguments to matrix transform: " ~ debug.string(values, 0)
|
"Invalid arguments to matrix transform: " ~ debug.string(values, 0)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
printlog("warn", "Unknown transform type: '" ~ type ~ "'");
|
logpr(LOG_WARN, "Unknown transform type: '" ~ type ~ "'");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -278,19 +277,17 @@ var parsesvg = func(group, path, options = nil)
|
||||||
args[i + 6] );
|
args[i + 6] );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( math.mod(size(args), 7) > 0 )
|
if( math.mod(size(args), 7) > 0 ) {
|
||||||
printlog(
|
logpr(LOG_WARN, "Invalid number of coords for cmd 'a' ("~
|
||||||
"warn",
|
size(args)~" mod 7 != 0)");
|
||||||
"Invalid number of coords for cmd 'a' "
|
}
|
||||||
~ "(" ~ size(args) ~ " mod 7 != 0)"
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var cmd_vg = cmd_map[cmd];
|
var cmd_vg = cmd_map[cmd];
|
||||||
if( cmd_vg == nil )
|
if( cmd_vg == nil )
|
||||||
{
|
{
|
||||||
printlog("warn", "command not found: '" ~ cmd ~ "'");
|
logpr(LOG_WARN, "command not found: '" ~ cmd ~ "'");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -312,10 +309,8 @@ var parsesvg = func(group, path, options = nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
if( math.mod(size(args), num_coords) > 0 )
|
if( math.mod(size(args), num_coords) > 0 )
|
||||||
printlog(
|
logpr(LOG_WARN,"Invalid number of coords for cmd '" ~ cmd ~ "' ("
|
||||||
"warn",
|
~size(args)~" mod "~num_coords~" != 0)"
|
||||||
"Invalid number of coords for cmd '" ~ cmd ~ "' "
|
|
||||||
~ "(" ~ size(args) ~ " mod " ~ num_coords ~ " != 0)"
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -439,7 +434,7 @@ var parsesvg = func(group, path, options = nil)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printlog("info", "Skipping unknown element in <defs>: <" ~ name ~ ">");
|
logpr(LOG_INFO, "Skipping unknown element in <defs>: <" ~ name ~ ">");
|
||||||
skip = level;
|
skip = level;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -456,7 +451,7 @@ var parsesvg = func(group, path, options = nil)
|
||||||
|
|
||||||
cur_clip = clip_dict[clip_id];
|
cur_clip = clip_dict[clip_id];
|
||||||
if( cur_clip == nil )
|
if( cur_clip == nil )
|
||||||
printlog("warn", "Clip not found: '" ~ clip_id ~ "'");
|
logpr(LOG_WARN, "Clip not found: '" ~ clip_id ~ "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
if( style['display'] == 'none' )
|
if( style['display'] == 'none' )
|
||||||
|
@ -565,11 +560,11 @@ var parsesvg = func(group, path, options = nil)
|
||||||
{
|
{
|
||||||
var ref = attr["xlink:href"];
|
var ref = attr["xlink:href"];
|
||||||
if( ref == nil or size(ref) < 2 or ref[0] != `#` )
|
if( ref == nil or size(ref) < 2 or ref[0] != `#` )
|
||||||
return printlog("warn", "Invalid or missing href: '" ~ ref ~ "'");
|
return logpr(LOG_WARN, "Invalid or missing href: '" ~ ref ~ "'");
|
||||||
|
|
||||||
var el_src = id_dict[ substr(ref, 1) ];
|
var el_src = id_dict[ substr(ref, 1) ];
|
||||||
if( el_src == nil )
|
if( el_src == nil )
|
||||||
return printlog("warn", "Reference to unknown element '" ~ ref ~ "'");
|
return logpr(LOG_WARN, "Reference to unknown element '" ~ ref ~ "'");
|
||||||
|
|
||||||
# Create new element and copy sub branch from source node
|
# Create new element and copy sub branch from source node
|
||||||
pushElement(el_src._node.getName(), attr['id']);
|
pushElement(el_src._node.getName(), attr['id']);
|
||||||
|
@ -591,10 +586,10 @@ var parsesvg = func(group, path, options = nil)
|
||||||
# by adding another backslash - otherwise parse error anywhere below
|
# by adding another backslash - otherwise parse error anywhere below
|
||||||
if (ref == nil or find("\\", ref) > -1)
|
if (ref == nil or find("\\", ref) > -1)
|
||||||
{
|
{
|
||||||
return printlog("info", "Invalid or missing href in image tag: '" ~ ref ~ "'");
|
return logpr(LOG_INFO, "Invalid or missing href in image tag: '" ~ ref ~ "'");
|
||||||
}
|
}
|
||||||
if (substr(ref, 0, 5) == "data:") {
|
if (substr(ref, 0, 5) == "data:") {
|
||||||
return printlog("info", "Unsupported embedded image");
|
return logpr(LOG_INFO, "Unsupported embedded image");
|
||||||
}
|
}
|
||||||
elsif (substr(ref, 0, 5) != "file:") {
|
elsif (substr(ref, 0, 5) != "file:") {
|
||||||
# absolute paths seem to start with "file:"
|
# absolute paths seem to start with "file:"
|
||||||
|
@ -614,7 +609,7 @@ var parsesvg = func(group, path, options = nil)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printlog("info", "Skipping unknown element '" ~ name ~ "'");
|
logpr(LOG_INFO, "Skipping unknown element '" ~ name ~ "'");
|
||||||
skip = level;
|
skip = level;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -764,7 +759,7 @@ var parsesvg = func(group, path, options = nil)
|
||||||
msg ~= (i == 1 ? "\n at " : "\n called from: ")
|
msg ~= (i == 1 ? "\n at " : "\n called from: ")
|
||||||
~ err[i] ~ ", line " ~ err[i + 1]
|
~ err[i] ~ ", line " ~ err[i + 1]
|
||||||
}
|
}
|
||||||
printlog("alert", msg ~ "\n ");
|
logpr(LOG_ALERT, msg ~ "\n ");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -134,8 +134,7 @@ var Tooltip = {
|
||||||
# wrap mapping in 'call' to catch conversion errors
|
# wrap mapping in 'call' to catch conversion errors
|
||||||
var val_mapped = call(me._remapValue, [val], me, nil, var err = []);
|
var val_mapped = call(me._remapValue, [val], me, nil, var err = []);
|
||||||
if( size(err) ) {
|
if( size(err) ) {
|
||||||
printlog(
|
logprint(LOG_WARN,
|
||||||
"warn",
|
|
||||||
"Tooltip: failed to remap " ~ debug.string(p, 0) ~ ":\n"
|
"Tooltip: failed to remap " ~ debug.string(p, 0) ~ ":\n"
|
||||||
~ debug.string(err, 0)
|
~ debug.string(err, 0)
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
var _REPL_dbg_level = "debug";
|
var _REPL_dbg_level = LOG_DEBUG;
|
||||||
#var _REPL_dbg_level = "alert";
|
#var _REPL_dbg_level = LOG_ALERT;
|
||||||
|
|
||||||
var REPL = {
|
var REPL = {
|
||||||
df_status: 0,
|
df_status: 0,
|
||||||
|
@ -42,7 +42,7 @@ var REPL = {
|
||||||
|
|
||||||
me.current = nil;
|
me.current = nil;
|
||||||
|
|
||||||
printlog(_REPL_dbg_level, "compiling code..."~debug.string(code));
|
logprint(_REPL_dbg_level, "compiling code..."~debug.string(code));
|
||||||
|
|
||||||
var fn = call(func compile(code, me.name), nil, var err=[]);
|
var fn = call(func compile(code, me.name), nil, var err=[]);
|
||||||
if (size(err)) {
|
if (size(err)) {
|
||||||
|
@ -73,7 +73,7 @@ var REPL = {
|
||||||
var str = substr(str, 0, 1);
|
var str = substr(str, 0, 1);
|
||||||
if (contains(me.brackets, str)) {
|
if (contains(me.brackets, str)) {
|
||||||
append(level, str);
|
append(level, str);
|
||||||
printlog(_REPL_dbg_level, "> level add "~str);
|
logprint(_REPL_dbg_level, "> level add "~str);
|
||||||
return 1;
|
return 1;
|
||||||
} elsif (contains(me.brackets_rev, str)) {
|
} elsif (contains(me.brackets_rev, str)) {
|
||||||
var l = pop(level);
|
var l = pop(level);
|
||||||
|
@ -84,7 +84,7 @@ var REPL = {
|
||||||
me.placement.handle_parse_error("bracket mismatch: "~me.brackets[l]~" vs "~str, me.name, line_number);
|
me.placement.handle_parse_error("bracket mismatch: "~me.brackets[l]~" vs "~str, me.name, line_number);
|
||||||
return nil;
|
return nil;
|
||||||
} else {
|
} else {
|
||||||
printlog(_REPL_dbg_level, "< level pop "~str);
|
logprint(_REPL_dbg_level, "< level pop "~str);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -112,9 +112,9 @@ var REPL = {
|
||||||
me.current.last_operator = nil;
|
me.current.last_operator = nil;
|
||||||
if (line[i] == `\\`) {
|
if (line[i] == `\\`) {
|
||||||
i += 1; # skip the next character
|
i += 1; # skip the next character
|
||||||
printlog(_REPL_dbg_level, " skip backslash");
|
logprint(_REPL_dbg_level, " skip backslash");
|
||||||
} elsif (line[i] == me.current.level[-1][0]) {
|
} elsif (line[i] == me.current.level[-1][0]) {
|
||||||
printlog(_REPL_dbg_level, "< out of string with "~me.current.level[-1]);
|
logprint(_REPL_dbg_level, "< out of string with "~me.current.level[-1]);
|
||||||
pop(me.current.level);
|
pop(me.current.level);
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
|
@ -127,7 +127,7 @@ var REPL = {
|
||||||
me.current.last_operator = nil;
|
me.current.last_operator = nil;
|
||||||
if (me.current.statement_level == size(me.current.level) and
|
if (me.current.statement_level == size(me.current.level) and
|
||||||
(line[i] == `;` or line[i] == `,`)) {
|
(line[i] == `;` or line[i] == `,`)) {
|
||||||
printlog(_REPL_dbg_level, "statement ended by ;/,");
|
logprint(_REPL_dbg_level, "statement ended by ;/,");
|
||||||
me.current.statement = nil;
|
me.current.statement = nil;
|
||||||
me.current.statement_level = nil;
|
me.current.statement_level = nil;
|
||||||
} else {
|
} else {
|
||||||
|
@ -136,13 +136,13 @@ var REPL = {
|
||||||
me.current = nil;
|
me.current = nil;
|
||||||
return 0;
|
return 0;
|
||||||
} elsif (me.current.statement_level > size(me.current.level)) {
|
} elsif (me.current.statement_level > size(me.current.level)) {
|
||||||
printlog(_REPL_dbg_level, "statement ended by level below");
|
logprint(_REPL_dbg_level, "statement ended by level below");
|
||||||
# cancel out of statement
|
# cancel out of statement
|
||||||
me.current.statement = nil;
|
me.current.statement = nil;
|
||||||
me.current.statement_level = nil;
|
me.current.statement_level = nil;
|
||||||
} elsif (line[i] == `{`) {
|
} elsif (line[i] == `{`) {
|
||||||
# cancel out of looking for `;`, because we have a real block here
|
# cancel out of looking for `;`, because we have a real block here
|
||||||
printlog(_REPL_dbg_level, "statement ended by braces");
|
logprint(_REPL_dbg_level, "statement ended by braces");
|
||||||
me.current.statement = nil;
|
me.current.statement = nil;
|
||||||
me.current.statement_level = nil;
|
me.current.statement_level = nil;
|
||||||
}
|
}
|
||||||
|
@ -155,7 +155,7 @@ var REPL = {
|
||||||
(i+size(stmt) >= len
|
(i+size(stmt) >= len
|
||||||
or !string.isalnum(line[i+size(stmt)])
|
or !string.isalnum(line[i+size(stmt)])
|
||||||
and line[i+size(stmt)] != `_`)) {
|
and line[i+size(stmt)] != `_`)) {
|
||||||
printlog(_REPL_dbg_level, "found: "~stmt);
|
logprint(_REPL_dbg_level, "found: "~stmt);
|
||||||
me.current.statement = stmt;
|
me.current.statement = stmt;
|
||||||
me.current.statement_level = size(me.current.level);
|
me.current.statement_level = size(me.current.level);
|
||||||
i += size(stmt)-1;
|
i += size(stmt)-1;
|
||||||
|
@ -165,7 +165,7 @@ var REPL = {
|
||||||
} elsif (me._is_str_char(line[i])) {
|
} elsif (me._is_str_char(line[i])) {
|
||||||
me.current.last_operator = nil;
|
me.current.last_operator = nil;
|
||||||
append(me.current.level, chr(line[i]));
|
append(me.current.level, chr(line[i]));
|
||||||
printlog(_REPL_dbg_level, "> into string with "~me.current.level[-1]);
|
logprint(_REPL_dbg_level, "> into string with "~me.current.level[-1]);
|
||||||
} else {
|
} else {
|
||||||
var ret = me._handle_level(me.current.level, chr(line[i]), size(me.current.line)+1);
|
var ret = me._handle_level(me.current.level, chr(line[i]), size(me.current.line)+1);
|
||||||
me.current.last_operator = nil;
|
me.current.last_operator = nil;
|
||||||
|
@ -174,7 +174,7 @@ var REPL = {
|
||||||
elsif (ret == 0) {
|
elsif (ret == 0) {
|
||||||
foreach (var o; me.operators_binary_unary)
|
foreach (var o; me.operators_binary_unary)
|
||||||
if (line[i] == o[0])
|
if (line[i] == o[0])
|
||||||
{ me.current.last_operator = o; printlog(_REPL_dbg_level, "found operator "~o); break }
|
{ me.current.last_operator = o; logprint(_REPL_dbg_level, "found operator "~o); break }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -564,18 +564,18 @@ var CanvasPlacement = {
|
||||||
|
|
||||||
} elsif (modifiers.ctrl) {
|
} elsif (modifiers.ctrl) {
|
||||||
if (keyCode == `c`) {
|
if (keyCode == `c`) {
|
||||||
printlog(_REPL_dbg_level, "ctrl+c: "~debug.string(me.input));
|
logprint(_REPL_dbg_level, "ctrl+c: "~debug.string(me.input));
|
||||||
me.reset_input_from_history();
|
me.reset_input_from_history();
|
||||||
if( size(me.input) and !clipboard.setText(me.input) )
|
if( size(me.input) and !clipboard.setText(me.input) )
|
||||||
print("Failed to write to clipboard");
|
print("Failed to write to clipboard");
|
||||||
} elsif (keyCode == `x`) {
|
} elsif (keyCode == `x`) {
|
||||||
printlog(_REPL_dbg_level, "ctrl+x");
|
logprint(_REPL_dbg_level, "ctrl+x");
|
||||||
me.reset_input_from_history();
|
me.reset_input_from_history();
|
||||||
if( size(me.input) and !clipboard.setText(me.clear_input()) )
|
if( size(me.input) and !clipboard.setText(me.clear_input()) )
|
||||||
print("Failed to write to clipboard");
|
print("Failed to write to clipboard");
|
||||||
} elsif (keyCode == `v`) {
|
} elsif (keyCode == `v`) {
|
||||||
var input = clipboard.getText();
|
var input = clipboard.getText();
|
||||||
printlog(_REPL_dbg_level, "ctrl+v: "~debug.string(input));
|
logprint(_REPL_dbg_level, "ctrl+v: "~debug.string(input));
|
||||||
me.reset_input_from_history();
|
me.reset_input_from_history();
|
||||||
var abnormal = func string.iscntrl(input[j]) or (string.isxspace(input[j]) and input[j] != ` `) or !string.isascii(input[j]);
|
var abnormal = func string.iscntrl(input[j]) or (string.isxspace(input[j]) and input[j] != ` `) or !string.isascii(input[j]);
|
||||||
var i=0;
|
var i=0;
|
||||||
|
@ -599,13 +599,13 @@ var CanvasPlacement = {
|
||||||
i=j;
|
i=j;
|
||||||
}
|
}
|
||||||
} elsif (keyCode == `d`) { # ctrl-D/EOF
|
} elsif (keyCode == `d`) { # ctrl-D/EOF
|
||||||
printlog(_REPL_dbg_level, "EOF");
|
logprint(_REPL_dbg_level, "EOF");
|
||||||
me.del();
|
me.del();
|
||||||
return 1;
|
return 1;
|
||||||
} else return 0;
|
} else return 0;
|
||||||
|
|
||||||
} elsif (key == "Enter") {
|
} elsif (key == "Enter") {
|
||||||
printlog(_REPL_dbg_level, "return (key: "~key~", shift: "~modifiers.shift~")");
|
logprint(_REPL_dbg_level, "return (key: "~key~", shift: "~modifiers.shift~")");
|
||||||
me.reset_input_from_history();
|
me.reset_input_from_history();
|
||||||
var reset_text = 1;
|
var reset_text = 1;
|
||||||
if (modifiers.shift) {
|
if (modifiers.shift) {
|
||||||
|
@ -621,21 +621,21 @@ var CanvasPlacement = {
|
||||||
CanvasPlacement.current_instance = me;
|
CanvasPlacement.current_instance = me;
|
||||||
var res = me.repl.get_input();
|
var res = me.repl.get_input();
|
||||||
CanvasPlacement.current_instance = nil;
|
CanvasPlacement.current_instance = nil;
|
||||||
printlog(_REPL_dbg_level, "return code: "~debug.string(res));
|
logprint(_REPL_dbg_level, "return code: "~debug.string(res));
|
||||||
}
|
}
|
||||||
if (res == -1)
|
if (res == -1)
|
||||||
me.continue_line(reset_text:reset_text);
|
me.continue_line(reset_text:reset_text);
|
||||||
else me.new_prompt();
|
else me.new_prompt();
|
||||||
|
|
||||||
} elsif (key == "Backspace") { # backspace
|
} elsif (key == "Backspace") { # backspace
|
||||||
printlog(_REPL_dbg_level, "back");
|
logprint(_REPL_dbg_level, "back");
|
||||||
me.reset_input_from_history();
|
me.reset_input_from_history();
|
||||||
if (me.remove_char() == nil) return 1; # nothing happened, since the input
|
if (me.remove_char() == nil) return 1; # nothing happened, since the input
|
||||||
# field was blank, but capture the event
|
# field was blank, but capture the event
|
||||||
me.completion_pos = -1;
|
me.completion_pos = -1;
|
||||||
|
|
||||||
} elsif (key == "Up") { # up
|
} elsif (key == "Up") { # up
|
||||||
printlog(_REPL_dbg_level, "up");
|
logprint(_REPL_dbg_level, "up");
|
||||||
if (me.curr == 0) return 1;
|
if (me.curr == 0) return 1;
|
||||||
me.curr -= 1;
|
me.curr -= 1;
|
||||||
if (me.curr == size(me.history))
|
if (me.curr == size(me.history))
|
||||||
|
@ -645,7 +645,7 @@ var CanvasPlacement = {
|
||||||
me.completion_pos = -1;
|
me.completion_pos = -1;
|
||||||
|
|
||||||
} elsif (key == "Down") { # down
|
} elsif (key == "Down") { # down
|
||||||
printlog(_REPL_dbg_level, "down");
|
logprint(_REPL_dbg_level, "down");
|
||||||
if (me.curr == size(me.history)) return 1;
|
if (me.curr == size(me.history)) return 1;
|
||||||
me.curr += 1;
|
me.curr += 1;
|
||||||
if (me.curr == size(me.history))
|
if (me.curr == size(me.history))
|
||||||
|
@ -655,12 +655,12 @@ var CanvasPlacement = {
|
||||||
me.completion_pos = -1;
|
me.completion_pos = -1;
|
||||||
|
|
||||||
} elsif (key == "Escape") { # escape -> cancel
|
} elsif (key == "Escape") { # escape -> cancel
|
||||||
printlog(_REPL_dbg_level, "esc");
|
logprint(_REPL_dbg_level, "esc");
|
||||||
me.del();
|
me.del();
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
} elsif (key == "Tab") { # tab
|
} elsif (key == "Tab") { # tab
|
||||||
printlog(_REPL_dbg_level, "tab");
|
logprint(_REPL_dbg_level, "tab");
|
||||||
return 0;
|
return 0;
|
||||||
me.reset_input_from_history();
|
me.reset_input_from_history();
|
||||||
if (size(text) and text[0] == `/`) {
|
if (size(text) and text[0] == `/`) {
|
||||||
|
@ -668,16 +668,16 @@ var CanvasPlacement = {
|
||||||
}
|
}
|
||||||
|
|
||||||
} elsif (size(key) > 1 or !string.isprint(key[0])) {
|
} elsif (size(key) > 1 or !string.isprint(key[0])) {
|
||||||
printlog(_REPL_dbg_level, "other key: "~key);
|
logprint(_REPL_dbg_level, "other key: "~key);
|
||||||
return 0; # pass other funny events
|
return 0; # pass other funny events
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
printlog(_REPL_dbg_level, "key: "~key[0]~" (`"~key~"`)");
|
logprint(_REPL_dbg_level, "key: "~key[0]~" (`"~key~"`)");
|
||||||
me.add_char(key[0]);
|
me.add_char(key[0]);
|
||||||
me.completion_pos = -1;
|
me.completion_pos = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#printlog(_REPL_dbg_level, " -> "~me.input);
|
#logprint(_REPL_dbg_level, " -> "~me.input);
|
||||||
|
|
||||||
me.update();
|
me.update();
|
||||||
me.reset_view();
|
me.reset_view();
|
||||||
|
|
|
@ -27,7 +27,7 @@ contrailTimer = maketimer(30, updateContrail);
|
||||||
contrailTimer.simulatedTime = 1;
|
contrailTimer.simulatedTime = 1;
|
||||||
|
|
||||||
_setlistener("/sim/signals/nasal-dir-initialized", func {
|
_setlistener("/sim/signals/nasal-dir-initialized", func {
|
||||||
printlog ("debug", "init contrail");
|
logprint(LOG_INFO, "Init contrail");
|
||||||
props.globals.initNode("environment/pressure-inhg", 1, "DOUBLE");
|
props.globals.initNode("environment/pressure-inhg", 1, "DOUBLE");
|
||||||
props.globals.initNode("environment/temperature-degc", 1, "DOUBLE");
|
props.globals.initNode("environment/temperature-degc", 1, "DOUBLE");
|
||||||
props.globals.initNode("environment/contrail", 1, "BOOL");
|
props.globals.initNode("environment/contrail", 1, "BOOL");
|
||||||
|
|
|
@ -118,10 +118,8 @@ var setlistener = func(node, fn, init = 0, runtime = 1) {
|
||||||
var id = _setlistener(node, func(chg, lst, mode, is_child) {
|
var id = _setlistener(node, func(chg, lst, mode, is_child) {
|
||||||
fn(props.wrapNode(chg), props.wrapNode(lst), mode, is_child);
|
fn(props.wrapNode(chg), props.wrapNode(lst), mode, is_child);
|
||||||
}, init, runtime);
|
}, init, runtime);
|
||||||
if(__.log_level <= 2) {
|
var c = caller();
|
||||||
var c = caller(1);
|
logprint(LOG_DEBUG, "setting listener #",id," in ",c[2],":",c[3]);
|
||||||
printf("setting listener #%d in %s, line %s", id, c[2], c[3]);
|
|
||||||
}
|
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -164,17 +162,14 @@ var values = func(hash) {
|
||||||
return vec;
|
return vec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# printlog is depricated, use logprint instead
|
||||||
|
|
||||||
##
|
|
||||||
# Print log messages in appropriate --log-level.
|
|
||||||
# Usage: printlog("warn", "...");
|
|
||||||
# The underscore hash prevents helper functions/variables from
|
|
||||||
# needlessly polluting the global namespace.
|
|
||||||
#
|
|
||||||
__.dbg_types = { none:0, bulk:1, debug:2, info:3, warn:4, alert:5 };
|
__.dbg_types = { none:0, bulk:1, debug:2, info:3, warn:4, alert:5 };
|
||||||
__.log_level = __.dbg_types[getprop("/sim/logging/priority")];
|
var printlog = func(level, msg...) {
|
||||||
var printlog = func(level) {
|
var c = caller();
|
||||||
if(__.dbg_types[level] >= __.log_level) call(print, arg);
|
logprint(LOG_ALERT, "Deprecated printlog() call from ",c[2]~":"~c[3]~
|
||||||
|
", please use logprint instead.");
|
||||||
|
logprint([__.dbg_types[level]]~msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -261,7 +261,7 @@ var mcp = {
|
||||||
watchPropertyForLED: func(prop, ledName)
|
watchPropertyForLED: func(prop, ledName)
|
||||||
{
|
{
|
||||||
if (!contains(me._ledNames, ledName)) {
|
if (!contains(me._ledNames, ledName)) {
|
||||||
printlog('warn', 'Unknown GoFlight MCP LED:' ~ ledName);
|
logprint(LOG_WARN, 'Unknown GoFlight MCP LED:' ~ ledName);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,8 +48,8 @@ var EFIS = {
|
||||||
# object_names: vector of same size and order as display_names, containing
|
# object_names: vector of same size and order as display_names, containing
|
||||||
# 3D object names for canvas placement of the DisplayUnits
|
# 3D object names for canvas placement of the DisplayUnits
|
||||||
new: func(display_names, object_names, canvas_settings=nil) {
|
new: func(display_names, object_names, canvas_settings=nil) {
|
||||||
if (typeof(display_names) != "vector") {
|
if (!isvec(display_names)) {
|
||||||
printlog("error", "EFIS.new: 'display_names' not a vector!");
|
logprint(DEV_ALERT, "EFIS.new: 'display_names' not a vector!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var obj = {
|
var obj = {
|
||||||
|
@ -63,14 +63,14 @@ var EFIS = {
|
||||||
active_sources: [],
|
active_sources: [],
|
||||||
powerN: nil,
|
powerN: nil,
|
||||||
};
|
};
|
||||||
if (object_names != nil and typeof(object_names) == "vector"
|
if (object_names != nil and isvec(object_names)
|
||||||
and size(display_names) == size(object_names))
|
and size(display_names) == size(object_names))
|
||||||
{
|
{
|
||||||
foreach (var i; display_names) {
|
foreach (var i; display_names) {
|
||||||
append(obj.active_sources, EFIS.NO_SRC);
|
append(obj.active_sources, EFIS.NO_SRC);
|
||||||
}
|
}
|
||||||
var settings = obj.defaultcanvas_settings;
|
var settings = obj.defaultcanvas_settings;
|
||||||
if (canvas_settings != nil and typeof(canvas_settings) == "hash") {
|
if (canvas_settings != nil and ishash(canvas_settings)) {
|
||||||
foreach (var key; keys(canvas_settings)) {
|
foreach (var key; keys(canvas_settings)) {
|
||||||
settings[key] = canvas_settings[key];
|
settings[key] = canvas_settings[key];
|
||||||
}
|
}
|
||||||
|
@ -96,7 +96,7 @@ var EFIS = {
|
||||||
#print("setDisplaySource unit "~du_id~" src "~source_id~" prev "~prev_source);
|
#print("setDisplaySource unit "~du_id~" src "~source_id~" prev "~prev_source);
|
||||||
if (prev_source >= 0) {
|
if (prev_source >= 0) {
|
||||||
if (me.source_records[prev_source] == nil)
|
if (me.source_records[prev_source] == nil)
|
||||||
printlog("error", "_setDisplaySource error: prev: "~prev_source~" #"~size(me.source_records));
|
logprint(LOG_ALERT, "_setDisplaySource error: prev: "~prev_source~" #"~size(me.source_records));
|
||||||
var n = me.source_records[prev_source].visibleN;
|
var n = me.source_records[prev_source].visibleN;
|
||||||
n.setValue(n.getValue() - 1);
|
n.setValue(n.getValue() - 1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -271,7 +271,7 @@ var MessageSystem = {
|
||||||
|
|
||||||
addAuralAlert: func(id, filename, volume=1.0, path=nil) {
|
addAuralAlert: func(id, filename, volume=1.0, path=nil) {
|
||||||
if (typeof(id) == "hash") {
|
if (typeof(id) == "hash") {
|
||||||
printlog(5, "First argument to addAuralAlert() must be a string but is a hash. Use addAuralAlerts() to pass all alerts in one hash.");
|
logprint(DEV_ALERT, "First argument to addAuralAlert() must be a string but is a hash. Use addAuralAlerts() to pass all alerts in one hash.");
|
||||||
}
|
}
|
||||||
me.sounds[id] = {
|
me.sounds[id] = {
|
||||||
path: (path == nil) ? me.sound_path : path,
|
path: (path == nil) ? me.sound_path : path,
|
||||||
|
@ -284,7 +284,7 @@ var MessageSystem = {
|
||||||
|
|
||||||
addAuralAlerts: func(alert_hash) {
|
addAuralAlerts: func(alert_hash) {
|
||||||
if (typeof(alert_hash) != "hash") {
|
if (typeof(alert_hash) != "hash") {
|
||||||
print("MessageSystem.addAuralAlerts: parameter must be a hash!");
|
logprint(DEV_ALERT, "MessageSystem.addAuralAlerts: parameter must be a hash!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
me.sounds = alert_hash;
|
me.sounds = alert_hash;
|
||||||
|
|
|
@ -125,8 +125,7 @@ BroadcastChannel.new = func (mpp_path, process,
|
||||||
last_send : 0.0 # For the send queue
|
last_send : 0.0 # For the send queue
|
||||||
};
|
};
|
||||||
if (enable_send and (obj.send_node == nil)) {
|
if (enable_send and (obj.send_node == nil)) {
|
||||||
printlog("warn",
|
logprint(LOG_WARN, "BroadcastChannel invalid send node.");
|
||||||
"BroadcastChannel invalid send node.");
|
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
setlistener(obj.ONLINE_pp, func {
|
setlistener(obj.ONLINE_pp, func {
|
||||||
|
|
|
@ -288,11 +288,11 @@ var createNodeObjectsFromHash = func (property_list, namespace = nil) {
|
||||||
namespace = caller(1)[0];
|
namespace = caller(1)[0];
|
||||||
}
|
}
|
||||||
if (typeof(namespace) != "hash") {
|
if (typeof(namespace) != "hash") {
|
||||||
printlog("warning", "createNodeObjectsFromHash: Error, namespace argument is not a hash.");
|
logprint(LOG_WARN, "createNodeObjectsFromHash: Error, namespace argument is not a hash.");
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
if (typeof(property_list) != "hash") {
|
if (typeof(property_list) != "hash") {
|
||||||
printlog("warning", "createNodeObjectsFromHash: Error, property_list argument is not a hash.");
|
logprint(LOG_WARN, "createNodeObjectsFromHash: Error, property_list argument is not a hash.");
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
foreach (key; keys(property_list)) {
|
foreach (key; keys(property_list)) {
|
||||||
|
@ -380,7 +380,7 @@ var _cond = func(p) {
|
||||||
if(n == "less-than-equals") return !_cond_cmp(p, 1);
|
if(n == "less-than-equals") return !_cond_cmp(p, 1);
|
||||||
if(n == "greater-than-equals") return !_cond_cmp(p, -1);
|
if(n == "greater-than-equals") return !_cond_cmp(p, -1);
|
||||||
if(n == "property") return !!getprop(p.getValue());
|
if(n == "property") return !!getprop(p.getValue());
|
||||||
printlog("alert", "condition: invalid operator ", n);
|
logprint(LOG_ALERT, "condition: invalid operator ", n);
|
||||||
dump(p);
|
dump(p);
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
|
@ -389,7 +389,7 @@ var _cond_cmp = func(p, op) {
|
||||||
var left = p.getChild("property", 0, 0);
|
var left = p.getChild("property", 0, 0);
|
||||||
if(left != nil) { left = getprop(left.getValue()); }
|
if(left != nil) { left = getprop(left.getValue()); }
|
||||||
else {
|
else {
|
||||||
printlog("alert", "condition: no left value");
|
logprint(LOG_ALERT, "condition: no left value");
|
||||||
dump(p);
|
dump(p);
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
|
@ -399,13 +399,13 @@ var _cond_cmp = func(p, op) {
|
||||||
right = p.getChild("value", 0, 0);
|
right = p.getChild("value", 0, 0);
|
||||||
if(right != nil) { right = right.getValue(); }
|
if(right != nil) { right = right.getValue(); }
|
||||||
else {
|
else {
|
||||||
printlog("alert", "condition: no right value");
|
logprint(LOG_ALERT, "condition: no right value");
|
||||||
dump(p);
|
dump(p);
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(left == nil or right == nil) {
|
if(left == nil or right == nil) {
|
||||||
printlog("alert", "condition: comparing with nil");
|
logprint(LOG_ALERT, "condition: comparing with nil");
|
||||||
dump(p);
|
dump(p);
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
|
|
|
@ -269,7 +269,7 @@ var DefaultGPSDeleagte = {
|
||||||
me.landingCheck = nil; # delete timer
|
me.landingCheck = nil; # delete timer
|
||||||
}
|
}
|
||||||
|
|
||||||
#printlog('info', 'saw current WP changed, now ' ~ me.flightplan.current);
|
#logprint(LOG_INFO, 'saw current WP changed, now ' ~ me.flightplan.current);
|
||||||
var active = me.flightplan.currentWP();
|
var active = me.flightplan.currentWP();
|
||||||
if (active == nil) return;
|
if (active == nil) return;
|
||||||
|
|
||||||
|
|
|
@ -561,7 +561,7 @@ _setlistener("/sim/signals/nasal-dir-initialized", func {
|
||||||
|
|
||||||
# map ATC messages to the screen log and to the voice subsystem
|
# map ATC messages to the screen log and to the voice subsystem
|
||||||
var map = func(type, msg, r, g, b, cond = nil) {
|
var map = func(type, msg, r, g, b, cond = nil) {
|
||||||
printlog("info", "{", type, "} ", msg);
|
logprint(LOG_INFO, "{", type, "} ", msg);
|
||||||
setprop("/sim/sound/voices/" ~ type, msg);
|
setprop("/sim/sound/voices/" ~ type, msg);
|
||||||
|
|
||||||
if (cond == nil or cond())
|
if (cond == nil or cond())
|
||||||
|
@ -584,7 +584,7 @@ _setlistener("/sim/signals/nasal-dir-initialized", func {
|
||||||
}
|
}
|
||||||
m ~= "I say again: " ~ msg;
|
m ~= "I say again: " ~ msg;
|
||||||
atclast.setValue(m);
|
atclast.setValue(m);
|
||||||
printlog("debug", "ATC_LAST_MESSAGE: ", m);
|
logprint(LOG_DEBUG, "ATC_LAST_MESSAGE: ", m);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
_setlistener("/sim/signals/nasal-dir-initialized", func {
|
_setlistener("/sim/signals/nasal-dir-initialized", func {
|
||||||
_setlistener("/sim/presets/latitude-deg", func {
|
setlistener("/sim/presets/latitude-deg", func {
|
||||||
printlog("info", "*** NEW LOCATION ***");
|
logprint(LOG_INFO, "*** NEW LOCATION ***");
|
||||||
settimer(func {
|
settimer(func {
|
||||||
var typ = getprop("/sim/type");
|
var typ = getprop("/sim/type");
|
||||||
var lat = getprop("/position/latitude-deg");
|
var lat = getprop("/position/latitude-deg");
|
||||||
|
|
|
@ -205,7 +205,7 @@ var parse_msg = func (source, msg) {
|
||||||
var pos = Binary.decodeCoord(substr(msg, 6));
|
var pos = Binary.decodeCoord(substr(msg, 6));
|
||||||
ignite(pos, 0);
|
ignite(pos, 0);
|
||||||
} else {
|
} else {
|
||||||
printlog("alert", "wildfire.nas: Ignored ignite event flood from " ~
|
logprint(LOG_ALERT, "wildfire.nas: Ignored ignite event flood from " ~
|
||||||
source.getNode("callsign").getValue());
|
source.getNode("callsign").getValue());
|
||||||
}
|
}
|
||||||
mp_last_limited_event[i] = cur_time;
|
mp_last_limited_event[i] = cur_time;
|
||||||
|
@ -790,7 +790,7 @@ CAFire.load_event_log = func (filename, skip_ahead_until) {
|
||||||
if (!fgcommand("loadxml",
|
if (!fgcommand("loadxml",
|
||||||
props.Node.new({ filename : filename,
|
props.Node.new({ filename : filename,
|
||||||
targetnode : logbase }))) {
|
targetnode : logbase }))) {
|
||||||
printlog("alert", "Wildfire ... failed loading '" ~ filename ~ "'");
|
logprint(LOG_ALERT, "Wildfire ... failed loading '" ~ filename ~ "'");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -888,7 +888,7 @@ CAFire.update = func {
|
||||||
me.next = 0;
|
me.next = 0;
|
||||||
}
|
}
|
||||||
if (me.cells_burning > 0) {
|
if (me.cells_burning > 0) {
|
||||||
printlog("info",
|
logprint(LOG_INFO,
|
||||||
"Wildfire: generation " ~ me.generation ~ " updating " ~
|
"Wildfire: generation " ~ me.generation ~ " updating " ~
|
||||||
size(me.remaining_work) ~" / " ~ me.cells_created ~
|
size(me.remaining_work) ~" / " ~ me.cells_created ~
|
||||||
" created cells. " ~ me.cells_burning ~ " burning cells.");
|
" created cells. " ~ me.cells_burning ~ " burning cells.");
|
||||||
|
@ -943,7 +943,7 @@ _setlistener("/sim/signals/nasal-dir-initialized", func {
|
||||||
|
|
||||||
Binary = mp_broadcast.Binary;
|
Binary = mp_broadcast.Binary;
|
||||||
|
|
||||||
# Create configuration properties if they don't exist already.
|
# Create configuration properties if they do not exist already.
|
||||||
props.globals.initNode(CA_enabled_pp, 1, "BOOL");
|
props.globals.initNode(CA_enabled_pp, 1, "BOOL");
|
||||||
setlistener(CA_enabled_pp, func (n) {
|
setlistener(CA_enabled_pp, func (n) {
|
||||||
if (getprop("/sim/signals/reinit")) return; # Ignore resets.
|
if (getprop("/sim/signals/reinit")) return; # Ignore resets.
|
||||||
|
@ -980,14 +980,14 @@ _setlistener("/sim/signals/nasal-dir-initialized", func {
|
||||||
# Determine the skip-ahead-to time, if any.
|
# Determine the skip-ahead-to time, if any.
|
||||||
var time_hack = time_string_to_epoch(getprop(time_hack_pp));
|
var time_hack = time_string_to_epoch(getprop(time_hack_pp));
|
||||||
if (time_hack > SimTime.current_time()) {
|
if (time_hack > SimTime.current_time()) {
|
||||||
printlog("alert",
|
logprint(LOG_ALERT,
|
||||||
"wildfire.nas: Ignored time hack " ~
|
"wildfire.nas: Ignored time hack " ~
|
||||||
(SimTime.current_time() - time_hack) ~
|
(SimTime.current_time() - time_hack) ~
|
||||||
" seconds into the future.");
|
" seconds into the future.");
|
||||||
# Skip ahead to current time instead.
|
# Skip ahead to current time instead.
|
||||||
time_hack = -1;
|
time_hack = -1;
|
||||||
} elsif (time_hack > 0) {
|
} elsif (time_hack > 0) {
|
||||||
printlog("alert",
|
logprint(LOG_ALERT,
|
||||||
"wildfire.nas: Time hack " ~
|
"wildfire.nas: Time hack " ~
|
||||||
(SimTime.current_time() - time_hack) ~
|
(SimTime.current_time() - time_hack) ~
|
||||||
" seconds ago.");
|
" seconds ago.");
|
||||||
|
@ -1030,7 +1030,7 @@ _setlistener("/sim/signals/nasal-dir-initialized", func {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
printlog("info", "Wildfire ... initialized.");
|
logprint(LOG_INFO, "Wildfire ... initialized.");
|
||||||
});
|
});
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue