View Javadoc

1   package org.minetti.astrodevice.server.usb.jni;
2   
3   /**
4    * Builder of device tree.
5    * @author Jean-Philippe MINETTI
6    */
7   public interface UsbDeviceTreeBuilder {
8   
9   	/**
10  	 * Downs from the device tree.
11  	 */
12  	void down ();
13  
14  	/**
15  	 * Ups from the device tree.
16  	 */
17  	void up ();
18  
19  	/**
20  	 * Adds a new USB host controller.
21  	 * @param description Description of USB host controller.
22  	 */
23  	void addHostController (String description);
24  
25  	/**
26  	 * Adds a new root hub in the tree.
27  	 */
28  	void addRootHub ();
29  
30  	/**
31  	 * Adds a new hub in the tree.
32  	 * @param vendorId Vendor ID of USB hub (must be between 0 and 65535). This corresponds to
33  	 *            <code>idVendor</code> field of USB specification (assigned by the USB-IF).
34  	 * @param productId Product ID of USB hub (must be between 0 and 65535). This corresponds to
35  	 *            <code>idProduct</code> field of USB specification (assigned by the manufacturer).
36  	 * @param manufacturerName Manufacturer name of USB hub (must be less or equal than 127
37  	 *            characters). This corresponds to string indexed by the <code>iManufacturer</code>
38  	 *            field of USB specification.
39  	 * @param productDescription Product description of USB hub (must be less or equal than 127
40  	 *            characters). This corresponds to string indexed by the <code>iProduct</code> field
41  	 *            of USB specification.
42  	 * @param productVersion Product version of USB hub (must be between 0 and 65535). This
43  	 *            corresponds to <code>bcdDevice</code> field of USB specification (assigned by the
44  	 *            manufacturer).
45  	 * @param serialNumber Serial number of USB hub (must be less or equal than 127 characters).
46  	 *            This corresponds to string indexed by the <code>iSerialNumber</code> field of USB
47  	 *            specification.
48  	 * @param deviceClass Class code of USB hub (must be between 0 and 255). This corresponds to
49  	 *            <code>bDeviceClass</code> field of USB specification (assigned by the USB-IF).
50  	 * @param deviceSubClass Subclass code of USB hub (must be between 0 and 255). This corresponds
51  	 *            to <code>bDeviceSubClass</code> field of USB specification (assigned by the
52  	 *            USB-IF).
53  	 * @param deviceProtocol Protocol code of USB hub (must be between 0 and 255). This corresponds
54  	 *            to <code>bDeviceProtocol</code> field of USB specification (assigned by the
55  	 *            USB-IF).
56  	 */
57  	void addHub (int vendorId, int productId, String manufacturerName, String productDescription, int productVersion, String serialNumber, short deviceClass,
58  			short deviceSubClass, short deviceProtocol);
59  
60  	/**
61  	 * Adds a new device in the tree.
62  	 * @param vendorId Vendor ID of USB device (must be between 0 and 65535). This corresponds to
63  	 *            <code>idVendor</code> field of USB specification (assigned by the USB-IF).
64  	 * @param productId Product ID of USB device (must be between 0 and 65535). This corresponds to
65  	 *            <code>idProduct</code> field of USB specification (assigned by the manufacturer).
66  	 * @param manufacturerName Manufacturer name of USB device (must be less or equal than 127
67  	 *            characters). This corresponds to string indexed by the <code>iManufacturer</code>
68  	 *            field of USB specification.
69  	 * @param productDescription Product description of USB device (must be less or equal than 127
70  	 *            characters). This corresponds to string indexed by the <code>iProduct</code> field
71  	 *            of USB specification.
72  	 * @param productVersion Product version of USB device (must be between 0 and 65535). This
73  	 *            corresponds to <code>bcdDevice</code> field of USB specification (assigned by the
74  	 *            manufacturer).
75  	 * @param serialNumber Serial number of USB device (must be less or equal than 127 characters).
76  	 *            This corresponds to string indexed by the <code>iSerialNumber</code> field of USB
77  	 *            specification.
78  	 * @param deviceClass Class code of USB device (must be between 0 and 255). This corresponds to
79  	 *            <code>bDeviceClass</code> field of USB specification (assigned by the USB-IF).
80  	 * @param deviceSubClass Subclass code of USB device (must be between 0 and 255). This
81  	 *            corresponds to <code>bDeviceSubClass</code> field of USB specification (assigned
82  	 *            by the USB-IF).
83  	 * @param deviceProtocol Protocol code of USB device (must be between 0 and 255). This
84  	 *            corresponds to <code>bDeviceProtocol</code> field of USB specification (assigned
85  	 *            by the USB-IF).
86  	 */
87  	void add (int vendorId, int productId, String manufacturerName, String productDescription, int productVersion, String serialNumber, short deviceClass,
88  			short deviceSubClass, short deviceProtocol);
89  
90  }