altosui: Remove some debug printfs.
[fw/altos] / ao-tools / altosui / AltosDevice.java
index e62a0a7aa31f6b9e610c2c2d06372aae8ce44af3..f646305b3dc178da98433012ef24adabe1cb8136 100644 (file)
@@ -22,22 +22,76 @@ import libaltosJNI.*;
 
 public class AltosDevice extends altos_device {
 
-       static boolean initialized = false;
-       static {
-               try {
-                       System.loadLibrary("altos");
-                       libaltos.altos_init();
+       static public boolean initialized = false;
+       static public boolean loaded_library = false;
+
+       public static boolean load_library() {
+               if (!initialized) {
+                       try {
+                               System.loadLibrary("altos");
+                               libaltos.altos_init();
+                               loaded_library = true;
+                       } catch (UnsatisfiedLinkError e) {
+                               loaded_library = false;
+                       }
                        initialized = true;
-               } catch (UnsatisfiedLinkError e) {
-                       System.err.println("Native library failed to load.\n" + e);
                }
+               return loaded_library;
+       }
+
+       static int usb_vendor_altusmetrum() {
+               if (load_library())
+                       return libaltosConstants.USB_VENDOR_ALTUSMETRUM;
+               return 0x000a;
+       }
+
+       static int usb_product_altusmetrum() {
+               if (load_library())
+                       return libaltosConstants.USB_PRODUCT_ALTUSMETRUM;
+               return 0x000a;
+       }
+
+       static int usb_product_altusmetrum_min() {
+               if (load_library())
+                       return libaltosConstants.USB_PRODUCT_ALTUSMETRUM_MIN;
+               return 0x000a;
+       }
+
+       static int usb_product_altusmetrum_max() {
+               if (load_library())
+                       return libaltosConstants.USB_PRODUCT_ALTUSMETRUM_MAX;
+               return 0x000d;
        }
-       public final static int AltusMetrum = libaltosConstants.USB_PRODUCT_ALTUSMETRUM;
-       public final static int TeleMetrum = libaltosConstants.USB_PRODUCT_TELEMETRUM;
-       public final static int TeleDongle = libaltosConstants.USB_PRODUCT_TELEDONGLE;
-       public final static int TeleTerra = libaltosConstants.USB_PRODUCT_TELETERRA;
-       public final static int Any = 0x10000;
-       public final static int BaseStation = 0x10000 + 1;
+
+       static int usb_product_telemetrum() {
+               if (load_library())
+                       return libaltosConstants.USB_PRODUCT_TELEMETRUM;
+               return 0x000b;
+       }
+
+       static int usb_product_teledongle() {
+               if (load_library())
+                       return libaltosConstants.USB_PRODUCT_TELEDONGLE;
+               return 0x000c;
+       }
+
+       static int usb_product_teleterra() {
+               if (load_library())
+                       return libaltosConstants.USB_PRODUCT_TELETERRA;
+               return 0x000d;
+       }
+
+       public final static int vendor_altusmetrum = usb_vendor_altusmetrum();
+       public final static int product_altusmetrum = usb_product_altusmetrum();
+       public final static int product_telemetrum = usb_product_telemetrum();
+       public final static int product_teledongle = usb_product_teledongle();
+       public final static int product_teleterra = usb_product_teleterra();
+       public final static int product_altusmetrum_min = usb_product_altusmetrum_min();
+       public final static int product_altusmetrum_max = usb_product_altusmetrum_max();
+
+
+       public final static int product_any = 0x10000;
+       public final static int product_basestation = 0x10000 + 1;
 
        public String toString() {
                String  name = getName();
@@ -48,11 +102,11 @@ public class AltosDevice extends altos_device {
        }
 
        public boolean isAltusMetrum() {
-               if (getVendor() != libaltosConstants.USB_VENDOR_ALTUSMETRUM)
+               if (getVendor() != vendor_altusmetrum)
                        return false;
-               if (getProduct() < libaltosConstants.USB_PRODUCT_ALTUSMETRUM_MIN)
+               if (getProduct() < product_altusmetrum_min)
                        return false;
-               if (getProduct() > libaltosConstants.USB_PRODUCT_ALTUSMETRUM_MAX)
+               if (getProduct() > product_altusmetrum_max)
                        return false;
                return true;
        }
@@ -62,15 +116,15 @@ public class AltosDevice extends altos_device {
                if (!isAltusMetrum())
                        return false;
 
-               if (want_product == Any)
+               if (want_product == product_any)
                        return true;
 
-               if (want_product == BaseStation)
-                       return matchProduct(TeleDongle) || matchProduct(TeleTerra);
+               if (want_product == product_basestation)
+                       return matchProduct(product_teledongle) || matchProduct(product_teleterra);
 
                int have_product = getProduct();
 
-               if (have_product == AltusMetrum)        /* old devices match any request */
+               if (have_product == product_altusmetrum)        /* old devices match any request */
                        return true;
 
                if (want_product == have_product)
@@ -80,7 +134,7 @@ public class AltosDevice extends altos_device {
        }
 
        static AltosDevice[] list(int product) {
-               if (!initialized)
+               if (!load_library())
                        return null;
 
                SWIGTYPE_p_altos_list list = libaltos.altos_list_start();