X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosuilib%2FAltosUSBDevice.java;h=f43d6befda46e57ec9ee26f0d105452308afe9b9;hb=2bcbd39a37cf1fa0002345d5c401869a387dc84f;hp=bab16fb039a06342b2f4bd630ad754af649a76f5;hpb=eb670e9b7576563d747ae5c9416371f145455ec1;p=fw%2Faltos diff --git a/altosuilib/AltosUSBDevice.java b/altosuilib/AltosUSBDevice.java index bab16fb0..f43d6bef 100644 --- a/altosuilib/AltosUSBDevice.java +++ b/altosuilib/AltosUSBDevice.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,7 +16,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib; +package org.altusmetrum.altosuilib_13; import java.util.*; import libaltosJNI.*; @@ -68,17 +69,21 @@ public class AltosUSBDevice extends altos_device implements AltosDevice { if (want_product == AltosUILib.product_any) return true; + int have_product = getProduct(); + if (want_product == AltosUILib.product_basestation) - return matchProduct(AltosUILib.product_teledongle) || - matchProduct(AltosUILib.product_teleterra) || - matchProduct(AltosUILib.product_telebt) || - matchProduct(AltosUILib.product_megadongle); + return have_product == AltosUILib.product_teledongle || + have_product == AltosUILib.product_teleterra || + have_product == AltosUILib.product_telebt || + have_product == AltosUILib.product_megadongle; if (want_product == AltosUILib.product_altimeter) - return matchProduct(AltosUILib.product_telemetrum) || - matchProduct(AltosUILib.product_megametrum); - - int have_product = getProduct(); + 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; if (have_product == AltosUILib.product_altusmetrum) /* old devices match any request */ return true; @@ -89,6 +94,24 @@ public class AltosUSBDevice extends altos_device implements AltosDevice { return false; } + public int hashCode() { + return getVendor() ^ getProduct() ^ getSerial() ^ getPath().hashCode(); + } + + 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 list(int product) { if (!AltosUILib.load_library()) return null; @@ -109,4 +132,4 @@ public class AltosUSBDevice extends altos_device implements AltosDevice { return device_list; } -} \ No newline at end of file +}