X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=ao-tools%2Faltosui%2FAltosDevice.java;h=f488174cf7677e3dc345b1a6875b78d2f5e41d7a;hp=66800c5c66da39e45964f1593ee06a99614ee943;hb=e76b9cc32bbcc5176d9bdd6f8d79778024627382;hpb=baaaac499cfbc1286ae55374cfdc796d32983b92 diff --git a/ao-tools/altosui/AltosDevice.java b/ao-tools/altosui/AltosDevice.java index 66800c5c..f488174c 100644 --- a/ao-tools/altosui/AltosDevice.java +++ b/ao-tools/altosui/AltosDevice.java @@ -18,13 +18,39 @@ package altosui; import java.lang.*; import java.util.*; +import libaltosJNI.*; -public class AltosDevice { - String tty; /* suitable to be passed to AltosSerial.connect */ - String manufacturer; - String product; - int serial; - int idProduct; - int idVendor; +public class AltosDevice extends altos_device { + public String toString() { + return String.format("%-20.20s %4d %s", + getProduct(), getSerial(), getPath()); + } + + static { + System.loadLibrary("altos"); + libaltos.altos_init(); + } + static AltosDevice[] list(String product) { + SWIGTYPE_p_altos_list list = libaltos.altos_list_start(); + + ArrayList device_list = new ArrayList(); + if (list != null) { + SWIGTYPE_p_altos_file file; + + for (;;) { + AltosDevice device = new AltosDevice(); + if (libaltos.altos_list_next(list, device) == 0) + break; + if (product == null || device.getProduct().startsWith(product)) + device_list.add(device); + } + libaltos.altos_list_finish(list); + } + + AltosDevice[] devices = new AltosDevice[device_list.size()]; + for (int i = 0; i < device_list.size(); i++) + devices[i] = device_list.get(i); + return devices; + } } \ No newline at end of file