X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=micropeak%2FMicroUSB.java;h=dcc4b602c76101d53b4a083f08fda12fe7c6b33c;hb=378ebab2e70917b4182cbd840a3fa66e4e42fd92;hp=6ffdb6281ea82e0e9a14a68a588675c9101e7667;hpb=5b7ec0c69343db3793c0317939b5eff1f2d04752;p=fw%2Faltos diff --git a/micropeak/MicroUSB.java b/micropeak/MicroUSB.java index 6ffdb628..dcc4b602 100644 --- a/micropeak/MicroUSB.java +++ b/micropeak/MicroUSB.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 @@ -19,8 +20,8 @@ package org.altusmetrum.micropeak; import java.util.*; import libaltosJNI.*; -import org.altusmetrum.altoslib_5.*; -import org.altusmetrum.altosuilib_3.*; +import org.altusmetrum.altoslib_13.*; +import org.altusmetrum.altosuilib_13.*; public class MicroUSB extends altos_device implements AltosDevice { @@ -75,11 +76,17 @@ public class MicroUSB extends altos_device implements AltosDevice { return libaltos.altos_open(this); } - private boolean isMicro() { + private boolean isFTDI() { int vid = getVendor(); int pid = getProduct(); if (vid == 0x0403 && pid == 0x6015) return true; + return false; + } + + private boolean isMicro() { + int vid = getVendor(); + int pid = getProduct(); if (vid == AltosLib.vendor_altusmetrum && pid == AltosLib.product_mpusb) return true; @@ -87,16 +94,32 @@ public class MicroUSB extends altos_device implements AltosDevice { } public boolean matchProduct(int product) { - return isMicro(); + return isFTDI() || isMicro(); } static java.util.List list() { if (!load_library()) return null; - SWIGTYPE_p_altos_list list = libaltos.altos_ftdi_list_start(); - ArrayList device_list = new ArrayList(); + + SWIGTYPE_p_altos_list list; + + list = libaltos.altos_ftdi_list_start(); + + if (list != null) { + for (;;) { + MicroUSB device = new MicroUSB(); + if (libaltos.altos_list_next(list, device) == 0) + break; + if (device.isFTDI()) + device_list.add(device); + } + libaltos.altos_list_finish(list); + } + + list = libaltos.altos_list_start(); + if (list != null) { for (;;) { MicroUSB device = new MicroUSB();