Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
authorBdale Garbee <bdale@gag.com>
Thu, 13 Sep 2012 01:49:51 +0000 (19:49 -0600)
committerBdale Garbee <bdale@gag.com>
Thu, 13 Sep 2012 01:49:51 +0000 (19:49 -0600)
21 files changed:
altoslib/AltosDistance.java
altoslib/AltosEepromIterable.java
altoslib/AltosPreferences.java
altosui/AltosConfigTD.java
altosui/AltosConfigureUI.java
altosui/AltosFlightUI.java
altosui/AltosFrame.java
altosui/AltosIdleMonitorUI.java
altosui/AltosUI.java
altosui/AltosUIPreferences.java
altosui/Makefile-standalone
altosui/Makefile.am
doc/release-notes-1.1.xsl
icon/altus-metrum-128.png [new file with mode: 0644]
icon/altus-metrum-16.png [new file with mode: 0644]
icon/altus-metrum-16x16.jpg [deleted file]
icon/altus-metrum-256.png [new file with mode: 0644]
icon/altus-metrum-32.png [new file with mode: 0644]
icon/altus-metrum-48.png [new file with mode: 0644]
icon/altus-metrum-512.png [new file with mode: 0644]
icon/altus-metrum-64.png [new file with mode: 0644]

index a5e7331c8dfcbc7aa8b4a0c367684217e632b621..a6026d4a51b57061fae32aaac465a81288879084 100644 (file)
@@ -44,6 +44,8 @@ public class AltosDistance extends AltosUnits {
        }
 
        int say_fraction() {
-               return 1;
+               if (AltosConvert.imperial_units)
+                       return 1;
+               return 0;
        }
 }
\ No newline at end of file
index 1aa816e1aa6908e5e8f8af05399b6acd54471623..2ac10e85eb0d47cfa2c29066d174ce6f84b62d34 100644 (file)
@@ -200,6 +200,7 @@ public class AltosEepromIterable extends AltosRecordIterable {
                state.state = AltosLib.ao_flight_pad;
                state.accel_plus_g = 15758;
                state.accel_minus_g = 16294;
+               state.flight_vel = 0;
 
                /* Pull in static data from the flight and gps_date records */
                if (flight_record != null)
index 065b6e997cadfc4d3cc5c00043494039bc735a20..0e7b2bd3848f3d60e2c48613df337c53f8382742 100644 (file)
@@ -202,173 +202,200 @@ public class AltosPreferences {
        }
 
        public static void set_logdir(File new_logdir) {
-               logdir = new_logdir;
-               mapdir = new File(logdir, "maps");
-               if (!mapdir.exists())
-                       mapdir.mkdirs();
                synchronized (preferences) {
+                       logdir = new_logdir;
+                       mapdir = new File(logdir, "maps");
+                       if (!mapdir.exists())
+                               mapdir.mkdirs();
                        preferences.put(logdirPreference, logdir.getPath());
                        flush_preferences();
                }
        }
 
        public static File logdir() {
-               return logdir;
+               synchronized (preferences) {
+                       return logdir;
+               }
        }
 
        public static File mapdir() {
-               return mapdir;
+               synchronized (preferences) {
+                       return mapdir;
+               }
        }
 
        public static void set_frequency(int serial, double new_frequency) {
-               frequencies.put(serial, new_frequency);
                synchronized (preferences) {
+                       frequencies.put(serial, new_frequency);
                        preferences.putDouble(String.format(frequencyPreferenceFormat, serial), new_frequency);
                        flush_preferences();
                }
        }
 
        public static double frequency(int serial) {
-               if (frequencies.containsKey(serial))
-                       return frequencies.get(serial);
-               double frequency = preferences.getDouble(String.format(frequencyPreferenceFormat, serial), 0);
-               if (frequency == 0.0) {
-                       int channel = preferences.getInt(String.format(channelPreferenceFormat, serial), 0);
-                       frequency = AltosConvert.radio_channel_to_frequency(channel);
+               synchronized (preferences) {
+                       if (frequencies.containsKey(serial))
+                               return frequencies.get(serial);
+                       double frequency = preferences.getDouble(String.format(frequencyPreferenceFormat, serial), 0);
+                       if (frequency == 0.0) {
+                               int channel = preferences.getInt(String.format(channelPreferenceFormat, serial), 0);
+                               frequency = AltosConvert.radio_channel_to_frequency(channel);
+                       }
+                       frequencies.put(serial, frequency);
+                       return frequency;
                }
-               frequencies.put(serial, frequency);
-               return frequency;
        }
 
        public static void set_telemetry(int serial, int new_telemetry) {
-               telemetries.put(serial, new_telemetry);
                synchronized (preferences) {
+                       telemetries.put(serial, new_telemetry);
                        preferences.putInt(String.format(telemetryPreferenceFormat, serial), new_telemetry);
                        flush_preferences();
                }
        }
 
        public static int telemetry(int serial) {
-               if (telemetries.containsKey(serial))
-                       return telemetries.get(serial);
-               int telemetry = preferences.getInt(String.format(telemetryPreferenceFormat, serial),
-                                                  AltosLib.ao_telemetry_standard);
-               telemetries.put(serial, telemetry);
-               return telemetry;
+               synchronized (preferences) {
+                       if (telemetries.containsKey(serial))
+                               return telemetries.get(serial);
+                       int telemetry = preferences.getInt(String.format(telemetryPreferenceFormat, serial),
+                                                          AltosLib.ao_telemetry_standard);
+                       telemetries.put(serial, telemetry);
+                       return telemetry;
+               }
        }
 
        public static void set_scanning_telemetry(int new_scanning_telemetry) {
-               scanning_telemetry = new_scanning_telemetry;
                synchronized (preferences) {
+                       scanning_telemetry = new_scanning_telemetry;
                        preferences.putInt(scanningTelemetryPreference, scanning_telemetry);
                        flush_preferences();
                }
        }
 
        public static int scanning_telemetry() {
-               return scanning_telemetry;
+               synchronized (preferences) {
+                       return scanning_telemetry;
+               }
        }
 
        public static void set_voice(boolean new_voice) {
-               voice = new_voice;
                synchronized (preferences) {
+                       voice = new_voice;
                        preferences.putBoolean(voicePreference, voice);
                        flush_preferences();
                }
        }
 
        public static boolean voice() {
-               return voice;
+               synchronized (preferences) {
+                       return voice;
+               }
        }
 
        public static void set_callsign(String new_callsign) {
-               callsign = new_callsign;
                synchronized(preferences) {
+                       callsign = new_callsign;
                        preferences.put(callsignPreference, callsign);
                        flush_preferences();
                }
        }
 
        public static String callsign() {
-               return callsign;
+               synchronized(preferences) {
+                       return callsign;
+               }
        }
 
        public static void set_firmwaredir(File new_firmwaredir) {
-               firmwaredir = new_firmwaredir;
                synchronized (preferences) {
+                       firmwaredir = new_firmwaredir;
                        preferences.put(firmwaredirPreference, firmwaredir.getPath());
                        flush_preferences();
                }
        }
 
        public static File firmwaredir() {
-               return firmwaredir;
+               synchronized (preferences) {
+                       return firmwaredir;
+               }
        }
 
        public static void set_launcher_serial(int new_launcher_serial) {
-               launcher_serial = new_launcher_serial;
                synchronized (preferences) {
+                       launcher_serial = new_launcher_serial;
                        preferences.putInt(launcherSerialPreference, launcher_serial);
                        flush_preferences();
                }
        }
 
        public static int launcher_serial() {
-               return launcher_serial;
+               synchronized (preferences) {
+                       return launcher_serial;
+               }
        }
 
        public static void set_launcher_channel(int new_launcher_channel) {
-               launcher_channel = new_launcher_channel;
                synchronized (preferences) {
+                       launcher_channel = new_launcher_channel;
                        preferences.putInt(launcherChannelPreference, launcher_channel);
                        flush_preferences();
                }
        }
 
        public static int launcher_channel() {
-               return launcher_channel;
+               synchronized (preferences) {
+                       return launcher_channel;
+               }
        }
        
        public static Preferences bt_devices() {
-               return preferences.node("bt_devices");
+               synchronized (preferences) {
+                       return preferences.node("bt_devices");
+               }
        }
 
        public static AltosFrequency[] common_frequencies() {
-               return common_frequencies;
+               synchronized (preferences) {
+                       return common_frequencies;
+               }
        }
 
        public static void set_common_frequencies(AltosFrequency[] frequencies) {
-               common_frequencies = frequencies;
                synchronized(preferences) {
+                       common_frequencies = frequencies;
                        save_common_frequencies(frequencies);
                        flush_preferences();
                }
        }
 
        public static void add_common_frequency(AltosFrequency frequency) {
-               AltosFrequency[]        new_frequencies = new AltosFrequency[common_frequencies.length + 1];
+               AltosFrequency[]        old_frequencies = common_frequencies();
+               AltosFrequency[]        new_frequencies = new AltosFrequency[old_frequencies.length + 1];
                int                     i;
 
-               for (i = 0; i < common_frequencies.length; i++) {
-                       if (frequency.frequency == common_frequencies[i].frequency)
+               for (i = 0; i < old_frequencies.length; i++) {
+                       if (frequency.frequency == old_frequencies[i].frequency)
                                return;
-                       if (frequency.frequency < common_frequencies[i].frequency)
+                       if (frequency.frequency < old_frequencies[i].frequency)
                                break;
-                       new_frequencies[i] = common_frequencies[i];
+                       new_frequencies[i] = old_frequencies[i];
                }
                new_frequencies[i] = frequency;
-               for (; i < common_frequencies.length; i++)
-                       new_frequencies[i+1] = common_frequencies[i];
+               for (; i < old_frequencies.length; i++)
+                       new_frequencies[i+1] = old_frequencies[i];
                set_common_frequencies(new_frequencies);
        }
 
        public static boolean imperial_units() {
-               return AltosConvert.imperial_units;
+               synchronized(preferences) {
+                       return AltosConvert.imperial_units;
+               }
        }
 
        public static void set_imperial_units(boolean imperial_units) {
-               AltosConvert.imperial_units = imperial_units;
                synchronized (preferences) {
+                       AltosConvert.imperial_units = imperial_units;
                        preferences.putBoolean(unitsPreference, imperial_units);
                        flush_preferences();
                }
index 324a598863fad58d8d63c371fe699cf4d8c46f9a..71d628b310c731a69eb8f25f88fdc3140efed2df 100644 (file)
@@ -74,7 +74,6 @@ public class AltosConfigTD implements ActionListener {
        string_ref      version;
        string_ref      product;
        AltosConfigTDUI config_ui;
-       boolean         serial_started;
        boolean         made_visible;
 
        boolean get_int(String line, String label, int_ref x) {
@@ -108,17 +107,7 @@ public class AltosConfigTD implements ActionListener {
                }
        }
 
-       void start_serial() throws InterruptedException, TimeoutException {
-               serial_started = true;
-       }
-
-       void stop_serial() throws InterruptedException {
-               if (!serial_started)
-                       return;
-               serial_started = false;
-       }
-
-       void update_ui() {
+       synchronized void update_ui() {
                config_ui.set_serial(serial.get());
                config_ui.set_product(product.get());
                config_ui.set_version(version.get());
@@ -131,7 +120,7 @@ public class AltosConfigTD implements ActionListener {
                }
        }
 
-       void process_line(String line) {
+       void finish_input(String line) {
                if (line == null) {
                        abort();
                        return;
@@ -141,63 +130,82 @@ public class AltosConfigTD implements ActionListener {
                                update_ui();
                        return;
                }
-               get_string(line, "Config version", config_version);
-               get_int(line, "serial-number", serial);
-               get_int(line, "Radio channel:", radio_channel);
-               get_int(line, "Radio cal:", radio_calibration);
-               get_int(line, "Frequency:", radio_frequency);
-               get_int(line, "Radio setting:", radio_setting);
-               get_string(line,"software-version", version);
-               get_string(line,"product", product);
        }
 
-       final static int        serial_mode_read = 0;
-       final static int        serial_mode_save = 1;
-       final static int        serial_mode_reboot = 2;
-
-       class SerialData implements Runnable {
-               AltosConfigTD   config;
-               int             serial_mode;
-
-               void process_line(String line) {
-                       config.process_line(line);
-               }
-               void callback(String in_line) {
-                       final String line = in_line;
+       synchronized void process_line(String line) {
+               if (line == null || line.equals("all finished")) {
+                       final String last_line = line;
                        Runnable r = new Runnable() {
                                        public void run() {
-                                               process_line(line);
+                                               finish_input(last_line);
                                        }
                                };
                        SwingUtilities.invokeLater(r);
+               } else {
+                       get_string(line, "Config version", config_version);
+                       get_int(line, "serial-number", serial);
+                       get_int(line, "Radio channel:", radio_channel);
+                       get_int(line, "Radio cal:", radio_calibration);
+                       get_int(line, "Frequency:", radio_frequency);
+                       get_int(line, "Radio setting:", radio_setting);
+                       get_string(line,"software-version", version);
+                       get_string(line,"product", product);
                }
+       }
+
+       synchronized void reset_data() {
+               serial.set(0);
+               radio_channel.set(0);
+               radio_setting.set(0);
+               radio_frequency.set(0);
+               radio_calibration.set(1186611);
+               config_version.set("0.0");
+               version.set("unknown");
+               product.set("unknown");
+       }
 
-               void reset_data() {
-                       serial.set(0);
+       synchronized double frequency() {
+               return AltosConvert.radio_to_frequency(radio_frequency.get(),
+                                                      radio_setting.get(),
+                                                      radio_calibration.get(),
+                                                      radio_channel.get());
+       }
+
+       synchronized void set_frequency(double freq) {
+               int     frequency = radio_frequency.get();
+               int     setting = radio_setting.get();
+
+               if (frequency > 0) {
+                       radio_frequency.set((int) Math.floor (freq * 1000 + 0.5));
+               } else if (setting > 0) {
+                       radio_setting.set(AltosConvert.radio_frequency_to_setting(freq,
+                                                                                 radio_calibration.get()));
                        radio_channel.set(0);
-                       radio_setting.set(0);
-                       radio_frequency.set(0);
-                       radio_calibration.set(1186611);
-                       config_version.set("0.0");
-                       version.set("unknown");
-                       product.set("unknown");
+               } else {
+                       radio_channel.set(AltosConvert.radio_frequency_to_channel(freq));
                }
+       }
+
+       final static int        serial_mode_read = 0;
+       final static int        serial_mode_save = 1;
+       final static int        serial_mode_reboot = 2;
+
+       class SerialData implements Runnable {
+               AltosConfigTD   config;
+               int             serial_mode;
 
                void get_data() {
                        try {
                                boolean been_there = false;
-                               config.start_serial();
-                               reset_data();
+                               config.reset_data();
 
                                for (;;) {
-                                       config.serial_line.printf("c s\nf\nl\nv\n");
+                                       config.serial_line.printf("c s\nf\nv\n");
                                        for (;;) {
                                                try {
                                                        String line = config.serial_line.get_reply(5000);
-                                                       if (line == null)
-                                                               stop_serial();
-                                                       callback(line);
-                                                       if (line.startsWith("software-version"))
+                                                       config.process_line(line);
+                                                       if (line != null && line.startsWith("software-version"))
                                                                break;
                                                } catch (Exception e) {
                                                        break;
@@ -212,17 +220,13 @@ public class AltosConfigTD implements ActionListener {
                                        config.serial_line.flush_input();
                                }
                        } catch (InterruptedException ie) {
-                       } catch (TimeoutException te) {
-                       } finally {
-                               try {
-                                       stop_serial();
-                               } catch (InterruptedException ie) {
-                               }
                        }
-                       double  pref_frequency = AltosPreferences.frequency(serial.get());
-                       if (pref_frequency != 0)
-                               radio_frequency.set((int) Math.floor (pref_frequency * 1000 + 0.5));
-                       callback("all finished");
+                       /*
+                        * This makes sure the displayed frequency respects the limits that the
+                        * available firmware version might place on the actual frequency
+                        */
+                       config.set_frequency(AltosPreferences.frequency(serial.get()));
+                       config.process_line("all finished");
                }
 
                void save_data() {
@@ -280,31 +284,9 @@ public class AltosConfigTD implements ActionListener {
                        update_ui();
        }
 
-       double frequency() {
-               return AltosConvert.radio_to_frequency(radio_frequency.get(),
-                                                      radio_setting.get(),
-                                                      radio_calibration.get(),
-                                                      radio_channel.get());
-       }
-
-       void set_frequency(double freq) {
-               int     frequency = radio_frequency.get();
-               int     setting = radio_setting.get();
-
-               if (frequency > 0) {
-                       radio_frequency.set((int) Math.floor (freq * 1000 + 0.5));
-               } else if (setting > 0) {
-                       radio_setting.set(AltosConvert.radio_frequency_to_setting(freq,
-                                                                                 radio_calibration.get()));
-                       radio_channel.set(0);
-               } else {
-                       radio_channel.set(AltosConvert.radio_frequency_to_channel(freq));
-               }
-       }
-
        void save_data() {
-
-               set_frequency(config_ui.radio_frequency());
+               double  freq = config_ui.radio_frequency();
+               set_frequency(freq);
                run_serial_thread(serial_mode_save);
        }
 
index da82e8e03fa3bd567caaab724777939efaa5ca9a..249fc35a17393d67537c4f6fd620d4f29c1f26d4 100644 (file)
@@ -246,7 +246,7 @@ public class AltosConfigureUI
                c.anchor = GridBagConstraints.WEST;
                pane.add(new JLabel("Imperial Units"), c);
 
-               imperial_units = new JRadioButton("Enable", AltosUIPreferences.serial_debug());
+               imperial_units = new JRadioButton("Enable", AltosUIPreferences.imperial_units());
                imperial_units.addActionListener(new ActionListener() {
                                public void actionPerformed(ActionEvent e) {
                                        JRadioButton item = (JRadioButton) e.getSource();
index ddc54cbd18a82958b4cefc1bd809a43cc7b80c1e..600d8acce428232f973e0ff4cef79c7bf13b7db7 100644 (file)
@@ -170,10 +170,6 @@ public class AltosFlightUI extends AltosFrame implements AltosFlightDisplay, Alt
 
                GridBagConstraints c = new GridBagConstraints();
 
-               java.net.URL imgURL = AltosUI.class.getResource("/altus-metrum-16x16.jpg");
-               if (imgURL != null)
-                       setIconImage(new ImageIcon(imgURL).getImage());
-
                setTitle(String.format("AltOS %s", reader.name));
 
                /* Stick channel selector at top of table for telemetry monitoring */
index 70598634f6990b4e7c0985236a9fbbf3ac3a16c1..338b363ed0bc099dd107e5eaed27c8389bbf4f35 100644 (file)
@@ -44,14 +44,37 @@ public class AltosFrame extends JFrame implements AltosUIListener {
                this.pack();
        }
 
+       static final String[] icon_names = {
+               "/altus-metrum-16.png",
+               "/altus-metrum-32.png",
+               "/altus-metrum-48.png",
+               "/altus-metrum-64.png",
+               "/altus-metrum-128.png",
+               "/altus-metrum-256.png"
+       };
+
+       public void set_icon() {
+               ArrayList<Image> icons = new ArrayList<Image>();
+               
+               for (int i = 0; i < icon_names.length; i++) {
+                       java.net.URL imgURL = AltosUI.class.getResource(icon_names[i]);
+                       if (imgURL != null)
+                               icons.add(new ImageIcon(imgURL).getImage());
+               }
+
+               setIconImages(icons);
+       }
+                       
        public AltosFrame() {
                AltosUIPreferences.register_ui_listener(this);
                addWindowListener(new AltosFrameListener());
+               set_icon();
        }
 
        public AltosFrame(String name) {
                super(name);
                AltosUIPreferences.register_ui_listener(this);
                addWindowListener(new AltosFrameListener());
+               set_icon();
        }
 }
index 46ca3e5d8785602ae2acd867f574f85a3ce293d7..510579c5973c56ab05255c9630513c89eb618856 100644 (file)
@@ -106,10 +106,6 @@ public class AltosIdleMonitorUI extends AltosFrame implements AltosFlightDisplay
 
                GridBagConstraints c = new GridBagConstraints();
 
-               java.net.URL imgURL = AltosUI.class.getResource("/altus-metrum-16x16.jpg");
-               if (imgURL != null)
-                       setIconImage(new ImageIcon(imgURL).getImage());
-
                setTitle(String.format("AltOS %s", device.toShortString()));
 
                /* Stick frequency selector at top of table for telemetry monitoring */
index 926d66f083a076c8634cbe4dc6e5a8db05542b46..9977e82b2483d83d93f4cdd63132c4bf97cb8191 100644 (file)
@@ -105,10 +105,6 @@ public class AltosUI extends AltosFrame {
 
                load_library(null);
 
-               java.net.URL imgURL = AltosUI.class.getResource("/altus-metrum-16x16.jpg");
-               if (imgURL != null)
-                       setIconImage(new ImageIcon(imgURL).getImage());
-
                AltosUIPreferences.set_component(this);
 
                pane = getContentPane();
index 10ab26c3f3ef79e2b06d11785d64bccb7fe6748e..8f1e45d93e5e48116ac077fe4ef1d8cf6f54ed90 100644 (file)
@@ -102,15 +102,17 @@ public class AltosUIPreferences extends AltosPreferences {
                }
        }
        public static int font_size() {
-               return font_size;
+               synchronized (preferences) {
+                       return font_size;
+               }
        }
 
        static void set_fonts() {
        }
 
        public static void set_font_size(int new_font_size) {
-               font_size = new_font_size;
                synchronized (preferences) {
+                       font_size = new_font_size;
                        preferences.putInt(fontSizePreference, font_size);
                        flush_preferences();
                        Altos.set_fonts(font_size);
@@ -132,12 +134,12 @@ public class AltosUIPreferences extends AltosPreferences {
        }
 
        public static void set_look_and_feel(String new_look_and_feel) {
-               look_and_feel = new_look_and_feel;
                try {
-                       UIManager.setLookAndFeel(look_and_feel);
+                       UIManager.setLookAndFeel(new_look_and_feel);
                } catch (Exception e) {
                }
                synchronized(preferences) {
+                       look_and_feel = new_look_and_feel;
                        preferences.put(lookAndFeelPreference, look_and_feel);
                        flush_preferences();
                        for (AltosUIListener l : ui_listeners)
@@ -146,7 +148,9 @@ public class AltosUIPreferences extends AltosPreferences {
        }
 
        public static String look_and_feel() {
-               return look_and_feel;
+               synchronized (preferences) {
+                       return look_and_feel;
+               }
        }
 
        public static void register_ui_listener(AltosUIListener l) {
@@ -161,16 +165,18 @@ public class AltosUIPreferences extends AltosPreferences {
                }
        }
        public static void set_serial_debug(boolean new_serial_debug) {
-               serial_debug = new_serial_debug;
-               AltosLink.set_debug(serial_debug);
+               AltosLink.set_debug(new_serial_debug);
                synchronized (preferences) {
+                       serial_debug = new_serial_debug;
                        preferences.putBoolean(serialDebugPreference, serial_debug);
                        flush_preferences();
                }
        }
 
        public static boolean serial_debug() {
-               return serial_debug;
+               synchronized (preferences) {
+                       return serial_debug;
+               }
        }
 
 }
\ No newline at end of file
index 0d9931d585ec70979a2d40e771ca0a45e89c09b4..23163e40278dbb63f68333d3df861cfc8c0b46f6 100644 (file)
@@ -44,7 +44,14 @@ CLASSFILES=\
        AltosRomconfigUI.class \
        AltosVoice.class
 
-JAVA_ICON=../icon/altus-metrum-16x16.jpg
+JAVA_ICONS=\
+       ../icon/altus-metrum-16.png \
+       ../icon/altus-metrum-32.png \
+       ../icon/altus-metrum-48.png \
+       ../icon/altus-metrum-64.png \
+       ../icon/altus-metrum-128.png \
+       ../icon/altus-metrum-256.png
+
 WINDOWS_ICON=../icon/altus-metrum.ico
 
 # where altosui.jar gets installed
@@ -109,7 +116,7 @@ classes/libaltosJNI:
 
 classes/images:
        mkdir -p classes/images
-       ln -sf ../$(JAVA_ICON) classes/images
+       ln -sf ../$(JAVA_ICONS) classes/images
 
 altosui:
        echo "#!/bin/sh" > $@
@@ -123,11 +130,11 @@ fat/altosui:
        echo 'exec java -Djava.library.path="$$DIR" -jar "$$DIR"/altosui.jar' >> $@
        chmod +x $@
 
-fat/altosui.jar: $(CLASSFILES) $(JAVA_ICON) fat/classes/Manifest.txt
+fat/altosui.jar: $(CLASSFILES) $(JAVA_ICONS) fat/classes/Manifest.txt
        mkdir -p fat/classes
        test -L fat/classes/altosui || ln -sf ../.. fat/classes/altosui
        mkdir -p fat/classes/images
-       cp $(JAVA_ICON) fat/classes/images
+       cp $(JAVA_ICONS) fat/classes/images
        test -L fat/classes/libaltosJNI || ln -sf ../../libaltos/libaltosJNI fat/classes/libaltosJNI
        cd ./fat/classes && jar cfm ../../$@ Manifest.txt images/* altosui/*.class libaltosJNI/*.class
 
index 0482029477a143f1843ba3cd64852cd99e2e6ae4..6010df58544cf5c608b58afbafc417828788907a 100644 (file)
@@ -119,14 +119,25 @@ FATJAR=altosui-fat.jar
 # Icons
 ICONDIR=$(top_srcdir)/icon
 
-JAVA_ICON=$(ICONDIR)/altus-metrum-16x16.jpg
+JAVA_ICONS=\
+       $(ICONDIR)/altus-metrum-16.png \
+       $(ICONDIR)/altus-metrum-32.png \
+       $(ICONDIR)/altus-metrum-48.png \
+       $(ICONDIR)/altus-metrum-64.png \
+       $(ICONDIR)/altus-metrum-128.png \
+       $(ICONDIR)/altus-metrum-256.png
 
 ICONS= $(ICONDIR)/redled.png $(ICONDIR)/redoff.png \
        $(ICONDIR)/greenled.png $(ICONDIR)/greenoff.png \
        $(ICONDIR)/grayled.png $(ICONDIR)/grayoff.png
 
 # icon base names for jar
-ICONJAR= -C $(ICONDIR) altus-metrum-16x16.jpg \
+ICONJAR= -C $(ICONDIR) altus-metrum-16.png \
+       -C $(ICONDIR) altus-metrum-32.png \
+       -C $(ICONDIR) altus-metrum-48.png \
+       -C $(ICONDIR) altus-metrum-64.png \
+       -C $(ICONDIR) altus-metrum-128.png \
+       -C $(ICONDIR) altus-metrum-256.png \
        -C $(ICONDIR) redled.png -C $(ICONDIR) redoff.png \
        -C $(ICONDIR) greenled.png -C $(ICONDIR) greenoff.png \
        -C $(ICONDIR) grayon.png -C $(ICONDIR) grayled.png
@@ -216,13 +227,13 @@ install-altosuiJAVA: altosui.jar
 classes/altosui:
        mkdir -p classes/altosui
 
-$(JAR): classaltosui.stamp Manifest.txt $(JAVA_ICON) $(ALTOSLIB_CLASS)
+$(JAR): classaltosui.stamp Manifest.txt $(JAVA_ICONS) $(ALTOSLIB_CLASS)
        jar cfm $@ Manifest.txt \
                $(ICONJAR) \
                -C classes altosui \
                -C libaltos libaltosJNI
 
-$(FATJAR): classaltosui.stamp Manifest-fat.txt $(ALTOSLIB_CLASS) $(FREETTS_CLASS) $(JFREECHART_CLASS) $(JCOMMON_CLASS) $(LIBALTOS) $(JAVA_ICON)
+$(FATJAR): classaltosui.stamp Manifest-fat.txt $(ALTOSLIB_CLASS) $(FREETTS_CLASS) $(JFREECHART_CLASS) $(JCOMMON_CLASS) $(LIBALTOS) $(JAVA_ICONS)
        jar cfm $@ Manifest-fat.txt \
                $(ICONJAR) \
                -C classes altosui \
@@ -230,25 +241,25 @@ $(FATJAR): classaltosui.stamp Manifest-fat.txt $(ALTOSLIB_CLASS) $(FREETTS_CLASS
 
 Manifest.txt: Makefile
        echo 'Main-Class: altosui.AltosUI' > $@
-       echo "Class-Path: AltosLib.jar $(FREETTS)/freetts.jar $(JFREECHART)/jfreechart.jar $(JCOMMON)/jcommon.jar" >> $@
+       echo "Class-Path: AltosLib.jar $(FREETTS)/freetts.jar $(JCOMMON)/jcommon.jar $(JFREECHART)/jfreechart.jar" >> $@
 
 Manifest-fat.txt:
        echo 'Main-Class: altosui.AltosUI' > $@
-       echo "Class-Path: AltosLib.jar freetts.jar jfreechart.jar jcommon.jar" >> $@
+       echo "Class-Path: AltosLib.jar freetts.jar jcommon.jar jfreechart.jar" >> $@
 
 altosui: Makefile
        echo "#!/bin/sh" > $@
-       echo 'exec java  -cp "$(FREETTS)/*:$(JFREECHART)/*:$(JCOMMON)/*" -Djava.library.path="$(altoslibdir)" -jar "$(altosuidir)/altosui.jar" "$$@"' >> $@
+       echo 'exec java  -cp "$(FREETTS)/freetts.jar:$(JCOMMON)/jcommon.jar:$(JFREECHART)/jfreechart.jar" -Djava.library.path="$(altoslibdir)" -jar "$(altosuidir)/altosui.jar" "$$@"' >> $@
        chmod +x $@
 
 altosui-test: Makefile
        echo "#!/bin/sh" > $@
-       echo 'exec java -cp "./*:$(FREETTS)/*:$(JFREECHART)/*:$(JCOMMON)/*" -Djava.library.path="libaltos/.libs" -jar altosui.jar "$$@"' >> $@
+       echo 'exec java -cp "./*:$(FREETTS)/freetts.jar:$(JCOMMON)/jcommon.jar:$(JFREECHART)/jfreechart.jar" -Djava.library.path="libaltos/.libs" -jar altosui.jar "$$@"' >> $@
        chmod +x $@
 
 altosui-jdb: Makefile
        echo "#!/bin/sh" > $@
-       echo 'exec jdb -classpath "classes:libaltos:$(FREETTS)/*:$(JFREECHART)/*:$(JCOMMON)/*" -Djava.library.path="libaltos/.libs" altosui/AltosUI "$$@"' >> $@
+       echo 'exec jdb -classpath "classes:libaltos:$(FREETTS)/freetts.jar:$(JCOMMON)/jcommon.jar:$(JFREECHART)/jfreechart.jar" -Djava.library.path="libaltos/.libs" altosui/AltosUI "$$@"' >> $@
        chmod +x $@
 
 libaltos.so: build-libaltos
index 79ea39ee95d1e2ed8f80a2d8c4971e6b61ef0bbf..519cd40c2378ae05b7b56c55ee601724a7f8de2f 100644 (file)
        Add configuration for the new apogee-lockout value. A menu provides a list of
        reasonable values, or the value can be set by hand.
       </listitem>
+      <listitem>
+       Changed how flight data are downloaded. Now there's an initial
+       dialog asking which flights to download, and after that
+       finishes, a second dialog comes up asking which flights to delete.
+      </listitem>
       <listitem>
        Re-compute time spent in each state for the flight graph; this
        figures out the actual boost and landing times instead of
diff --git a/icon/altus-metrum-128.png b/icon/altus-metrum-128.png
new file mode 100644 (file)
index 0000000..f1343d9
Binary files /dev/null and b/icon/altus-metrum-128.png differ
diff --git a/icon/altus-metrum-16.png b/icon/altus-metrum-16.png
new file mode 100644 (file)
index 0000000..5bd4599
Binary files /dev/null and b/icon/altus-metrum-16.png differ
diff --git a/icon/altus-metrum-16x16.jpg b/icon/altus-metrum-16x16.jpg
deleted file mode 100644 (file)
index 8d8bbc6..0000000
Binary files a/icon/altus-metrum-16x16.jpg and /dev/null differ
diff --git a/icon/altus-metrum-256.png b/icon/altus-metrum-256.png
new file mode 100644 (file)
index 0000000..46e1670
Binary files /dev/null and b/icon/altus-metrum-256.png differ
diff --git a/icon/altus-metrum-32.png b/icon/altus-metrum-32.png
new file mode 100644 (file)
index 0000000..c858889
Binary files /dev/null and b/icon/altus-metrum-32.png differ
diff --git a/icon/altus-metrum-48.png b/icon/altus-metrum-48.png
new file mode 100644 (file)
index 0000000..3bee98e
Binary files /dev/null and b/icon/altus-metrum-48.png differ
diff --git a/icon/altus-metrum-512.png b/icon/altus-metrum-512.png
new file mode 100644 (file)
index 0000000..47c4700
Binary files /dev/null and b/icon/altus-metrum-512.png differ
diff --git a/icon/altus-metrum-64.png b/icon/altus-metrum-64.png
new file mode 100644 (file)
index 0000000..0ee086a
Binary files /dev/null and b/icon/altus-metrum-64.png differ