altoslib: When flashing hardware, pull USB data from device if needed
[fw/altos] / altosuilib / AltosUSBDevice.java
index b70b5e83bd18911da0862c79c97df48dba93f53f..e4b94eeaed77efd12645dc208f57452f31fee2af 100644 (file)
@@ -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
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-package org.altusmetrum.altosuilib_2;
+package org.altusmetrum.altosuilib_13;
 
 import java.util.*;
 import libaltosJNI.*;
+import org.altusmetrum.altoslib_13.*;
 
 public class AltosUSBDevice  extends altos_device implements AltosDevice {
 
@@ -79,6 +81,7 @@ public class AltosUSBDevice  extends altos_device implements AltosDevice {
                if (want_product == AltosUILib.product_altimeter)
                        return have_product == AltosUILib.product_telemetrum ||
                                have_product == AltosUILib.product_telemega ||
+                               have_product == AltosUILib.product_easymega ||
                                have_product == AltosUILib.product_telegps ||
                                have_product == AltosUILib.product_easymini ||
                                have_product == AltosUILib.product_telemini;
@@ -92,6 +95,32 @@ public class AltosUSBDevice  extends altos_device implements AltosDevice {
                return false;
        }
 
+       public int hashCode() {
+               return getVendor() ^ getProduct() ^ getSerial() ^ getPath().hashCode();
+       }
+
+       public AltosUsbId usb_id() {
+               return new AltosUsbId(getVendor(), getProduct());
+       }
+
+       public String usb_product() {
+               return getName();
+       }
+
+       public boolean equals(Object o) {
+               if (o == null)
+                       return false;
+
+               if (!(o instanceof AltosUSBDevice))
+                       return false;
+               AltosUSBDevice other = (AltosUSBDevice) o;
+
+               return getVendor() == other.getVendor() &&
+                       getProduct() == other.getProduct() &&
+                       getSerial() == other.getSerial() &&
+                       getPath().equals(other.getPath());
+       }
+
        static public java.util.List<AltosDevice> list(int product) {
                if (!AltosUILib.load_library())
                        return null;