summaryrefslogtreecommitdiff
path: root/ao-tools/altosui/AltosDevice.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2010-07-28 11:20:22 -0700
committerKeith Packard <keithp@keithp.com>2010-07-28 11:20:22 -0700
commit172a2817dde6718724f2b5fad5a7761801446fa0 (patch)
tree880efde60fc468f1046307470141c773856399bd /ao-tools/altosui/AltosDevice.java
parentf2a006fd98045066bdf429cc142d033e9feb0a8f (diff)
parent81bf2042ca39eb106b789e5a08647c3114669358 (diff)
Merge branch 'macos'
Diffstat (limited to 'ao-tools/altosui/AltosDevice.java')
-rw-r--r--ao-tools/altosui/AltosDevice.java39
1 files changed, 32 insertions, 7 deletions
diff --git a/ao-tools/altosui/AltosDevice.java b/ao-tools/altosui/AltosDevice.java
index 66800c5c..0e7d01da 100644
--- a/ao-tools/altosui/AltosDevice.java
+++ b/ao-tools/altosui/AltosDevice.java
@@ -18,13 +18,38 @@
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<AltosDevice> device_list = new ArrayList<AltosDevice>();
+ if (list != null) {
+ SWIGTYPE_p_altos_file file;
+
+ for (;;) {
+ AltosDevice device = new AltosDevice();
+ if (libaltos.altos_list_next(list, device) == 0)
+ break;
+ 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