X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosuilib%2FAltosUSBDevice.java;h=e4b94eeaed77efd12645dc208f57452f31fee2af;hp=bab16fb039a06342b2f4bd630ad754af649a76f5;hb=48e221cca00c9f925ff57588dd782842705f7a23;hpb=670034eef48d63cdaec8d271fa93da984ffe2ea9 diff --git a/altosuilib/AltosUSBDevice.java b/altosuilib/AltosUSBDevice.java index bab16fb0..e4b94eea 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,10 +16,11 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib; +package org.altusmetrum.altosuilib_13; import java.util.*; import libaltosJNI.*; +import org.altusmetrum.altoslib_13.*; public class AltosUSBDevice extends altos_device implements AltosDevice { @@ -68,17 +70,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 +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 list(int product) { if (!AltosUILib.load_library()) return null; @@ -109,4 +141,4 @@ public class AltosUSBDevice extends altos_device implements AltosDevice { return device_list; } -} \ No newline at end of file +}