X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosKML.java;h=25108bf97c67ad27660f8d1e3915b561c1724b8e;hp=e701fda3ade3f3791b71f0271ec1d221f8688e8c;hb=1085ec5d57e0ed5d132f2bbdac1a0b6a32c0ab4a;hpb=165b7dcf6fba90b15ff32b891cba4b9111c1965b diff --git a/altoslib/AltosKML.java b/altoslib/AltosKML.java index e701fda3..25108bf9 100644 --- a/altoslib/AltosKML.java +++ b/altoslib/AltosKML.java @@ -3,7 +3,8 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -15,14 +16,25 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_5; +package org.altusmetrum.altoslib_11; import java.io.*; +import java.util.*; + +class KMLWriter extends PrintWriter { + public PrintWriter printf(String format, Object ... arguments) { + return printf(Locale.ROOT, format, arguments); + } + + public KMLWriter(File name) throws FileNotFoundException { + super(name); + } +} public class AltosKML implements AltosWriter { File name; - PrintStream out; + PrintWriter out; int flight_state = -1; AltosState prev = null; double gps_start_altitude; @@ -101,8 +113,8 @@ public class AltosKML implements AltosWriter { boolean started = false; void state_start(AltosState state) { - String state_name = AltosLib.state_name(state.state); - String state_color = state_color(state.state); + String state_name = AltosLib.state_name(state.state()); + String state_color = state_color(state.state()); out.printf(kml_style_start, state_name, state_color); out.printf("\tState: %s\n", state_name); out.printf("%s", kml_style_end); @@ -137,6 +149,10 @@ public class AltosKML implements AltosWriter { end(); prev = null; } + if (out != null) { + out.close(); + out = null; + } } public void write(AltosState state) { @@ -156,8 +172,8 @@ public class AltosKML implements AltosWriter { } if (prev != null && prev.gps_sequence == state.gps_sequence) return; - if (state.state != flight_state) { - flight_state = state.state; + if (state.state() != flight_state) { + flight_state = state.state(); if (prev != null) { coord(state); state_end(prev); @@ -177,7 +193,7 @@ public class AltosKML implements AltosWriter { public AltosKML(File in_name) throws FileNotFoundException { name = in_name; - out = new PrintStream(name); + out = new KMLWriter(name); } public AltosKML(String in_string) throws FileNotFoundException {