¿Cómo modificarlos para saltar necesidad de dispositivo USB?
Archivo ControlMessage
el class:
package usb.core;
import java.io.IOException;
// Referenced classes of package usb.core:
// USBException, Device
public final class ControlMessage
{
public ControlMessage()
{
}
public byte getRequestType()
{
return requestType;
}
public void setRequestType(byte byte0)
{
requestType = byte0;
}
public byte getRequest()
{
return request;
}
public void setRequest(byte byte0)
{
request = byte0;
}
public short getValue()
{
return value;
}
public void setValue(short word0)
{
value = word0;
}
public short getIndex()
{
return index;
}
public void setIndex(short word0)
{
index = word0;
}
public void setBuffer(byte abyte0[])
{
if(abyte0 == null || abyte0.length >= 65535)
{
throw new IllegalArgumentException();
} else
{
buf = abyte0;
len = (short)abyte0.length;
return;
}
}
public byte[] getBuffer()
{
return buf;
}
public void setLength(int i)
{
len = (short)i;
}
public short getLength()
{
return len;
}
public static boolean getBit(int i, byte abyte0[], int j)
{
byte byte0 = abyte0[j + i / 8];
byte0 >>= i % 8;
return (byte0 & 1) != 0;
}
public boolean getBit(int i, int j)
{
return getBit(i, buf, j);
}
public static byte[] getStandardDescriptor(Device device, byte byte0, byte byte1, int i, int j)
throws IOException
{
return getDescriptor(device, (byte)0, byte0, byte1, i, j);
}
public static byte[] getClassDescriptor(Device device, byte byte0, byte byte1, int i, int j)
throws IOException
{
return getDescriptor(device, (byte)32, byte0, byte1, i, j);
}
public static byte[] getVendorDescriptor(Device device, byte byte0, byte byte1, int i, int j)
throws IOException
{
return getDescriptor(device, (byte)64, byte0, byte1, i, j);
}
static byte[] getDescriptor(Device device, byte byte0, byte byte1, byte byte2, int i, int j)
throws IOException
{
byte abyte0[] = new byte[j];
ControlMessage controlmessage = new ControlMessage();
ControlMessage _tmp = controlmessage;
controlmessage.setRequestType((byte)(0xffffff80 | byte0 | 0));
controlmessage.setRequest((byte)6);
controlmessage.setValue((short)(byte1 << 8 | 0xff & byte2));
controlmessage.setIndex((short)i);
controlmessage.setLength(j);
device.control(controlmessage);
return controlmessage.getBuffer();
}
public static void setDescriptor(Device device, byte byte0, byte byte1, byte byte2, int i, byte abyte0[])
throws IOException
{
if(i > 65535 || abyte0.length > 65535)
{
throw new IllegalArgumentException();
} else
{
ControlMessage controlmessage = new ControlMessage();
ControlMessage _tmp = controlmessage;
controlmessage.setRequestType((byte)(0 | byte0 | 0));
controlmessage.setRequest((byte)7);
controlmessage.setValue((short)(byte1 << 8 | 0xff & byte2));
controlmessage.setIndex((short)i);
controlmessage.setBuffer(abyte0);
device.control(controlmessage);
return;
}
}
public static int[] getLanguages(Device device)
throws IOException
{
byte abyte0[] = null;
try
{
abyte0 = getStandardDescriptor(device, (byte)3, (byte)0, 0, 256);
}
catch(USBException usbexception)
{
if(!usbexception.isStalled())
throw usbexception;
}
if(abyte0 == null || abyte0.length < 4)
return null;
int i = 0xff & abyte0[0];
i >>= 1;
if(--i <= 0)
return null;
int ai[] = new int;
for(int j = 0; j < i; j++)
{
int k = 2 + 2 * j;
ai[j] = 0xff & abyte0[k];
ai[j] += (0xff & abyte0[k + 1]) << 8;
}
return ai;
}
public static String getString(Device device, byte byte0, int i)
throws IOException
{
if(byte0 == 0)
throw new IllegalArgumentException();
byte abyte0[] = getStandardDescriptor(device, (byte)3, byte0, i, 256);
int j;
if(abyte0.length < 2 || abyte0[1] != 3 || (j = 0xff & abyte0[0]) > abyte0.length || (j -= 2) % 2 != 0)
return null;
char ac[] = new char[j >> 1];
for(int k = 0; k < ac.length; k++)
{
int l = 2 * k + 2;
ac[k] = (char)((abyte0[l + 1] << 8) + (0xff & abyte0[l]));
}
return new String(ac);
}
public static byte[] getStatus(Device device, int i, int j, int k, int l)
throws IOException
{
ControlMessage controlmessage = new ControlMessage();
controlmessage.setRequestType((byte)(i | 0xffffff80));
controlmessage.setRequest((byte)0);
controlmessage.setValue((short)j);
controlmessage.setIndex((short)k);
controlmessage.setLength(l);
device.control(controlmessage);
return controlmessage.getBuffer();
}
public static void clearFeature(Device device, int i, int j, int k)
throws IOException
{
ControlMessage controlmessage = new ControlMessage();
controlmessage.setRequestType((byte)(i & 0x7f));
controlmessage.setRequest((byte)1);
controlmessage.setValue((short)(j & 0xff));
controlmessage.setIndex((short)k);
device.control(controlmessage);
}
public static void setFeature(Device device, int i, int j, int k)
throws IOException
{
ControlMessage controlmessage = new ControlMessage();
controlmessage.setRequestType((byte)(i & 0x7f));
controlmessage.setRequest((byte)3);
controlmessage.setValue((short)(j & 0xff));
controlmessage.setIndex((short)k);
device.control(controlmessage);
}
private byte requestType;
private byte request;
private short value;
private short index;
private byte buf[];
private short len;
public static final byte DIR_TO_HOST = -128;
public static final byte DIR_TO_DEVICE = 0;
public static final byte TYPE_STANDARD = 0;
public static final byte TYPE_CLASS = 32;
public static final byte TYPE_VENDOR = 64;
public static final byte RECIPIENT_DEVICE = 0;
public static final byte RECIPIENT_INTERFACE = 1;
public static final byte RECIPIENT_ENDPOINT = 2;
public static final byte RECIPIENT_OTHER = 3;
public static final byte GET_STATUS = 0;
public static final byte CLEAR_FEATURE = 1;
public static final byte SET_FEATURE = 3;
public static final byte SET_ADDRESS = 5;
public static final byte GET_DESCRIPTOR = 6;
public static final byte SET_DESCRIPTOR = 7;
public static final byte GET_CONFIGURATION = 8;
public static final byte SET_CONFIGURATION = 9;
public static final byte GET_INTERFACE = 10;
public static final byte SET_INTERFACE = 11;
public static final byte SYNCH_FRAME = 12;
y el jad:
package usb.core;
import java.io.IOException;
// Referenced classes of package usb.core:
// USBException, Device
public final class ControlMessage
{
public ControlMessage()
{
}
public byte getRequestType()
{
return requestType;
}
public void setRequestType(byte byte0)
{
requestType = byte0;
}
public byte getRequest()
{
return request;
}
public void setRequest(byte byte0)
{
request = byte0;
}
public short getValue()
{
return value;
}
public void setValue(short word0)
{
value = word0;
}
public short getIndex()
{
return index;
}
public void setIndex(short word0)
{
index = word0;
}
public void setBuffer(byte abyte0[])
{
if(abyte0 == null || abyte0.length >= 65535)
{
throw new IllegalArgumentException();
} else
{
buf = abyte0;
len = (short)abyte0.length;
return;
}
}
public byte[] getBuffer()
{
return buf;
}
public void setLength(int i)
{
len = (short)i;
}
public short getLength()
{
return len;
}
public static boolean getBit(int i, byte abyte0[], int j)
{
byte byte0 = abyte0[j + i / 8];
byte0 >>= i % 8;
return (byte0 & 1) != 0;
}
public boolean getBit(int i, int j)
{
return getBit(i, buf, j);
}
public static byte[] getStandardDescriptor(Device device, byte byte0, byte byte1, int i, int j)
throws IOException
{
return getDescriptor(device, (byte)0, byte0, byte1, i, j);
}
public static byte[] getClassDescriptor(Device device, byte byte0, byte byte1, int i, int j)
throws IOException
{
return getDescriptor(device, (byte)32, byte0, byte1, i, j);
}
public static byte[] getVendorDescriptor(Device device, byte byte0, byte byte1, int i, int j)
throws IOException
{
return getDescriptor(device, (byte)64, byte0, byte1, i, j);
}
static byte[] getDescriptor(Device device, byte byte0, byte byte1, byte byte2, int i, int j)
throws IOException
{
byte abyte0[] = new byte[j];
ControlMessage controlmessage = new ControlMessage();
ControlMessage _tmp = controlmessage;
controlmessage.setRequestType((byte)(0xffffff80 | byte0 | 0));
controlmessage.setRequest((byte)6);
controlmessage.setValue((short)(byte1 << 8 | 0xff & byte2));
controlmessage.setIndex((short)i);
controlmessage.setLength(j);
device.control(controlmessage);
return controlmessage.getBuffer();
}
public static void setDescriptor(Device device, byte byte0, byte byte1, byte byte2, int i, byte abyte0[])
throws IOException
{
if(i > 65535 || abyte0.length > 65535)
{
throw new IllegalArgumentException();
} else
{
ControlMessage controlmessage = new ControlMessage();
ControlMessage _tmp = controlmessage;
controlmessage.setRequestType((byte)(0 | byte0 | 0));
controlmessage.setRequest((byte)7);
controlmessage.setValue((short)(byte1 << 8 | 0xff & byte2));
controlmessage.setIndex((short)i);
controlmessage.setBuffer(abyte0);
device.control(controlmessage);
return;
}
}
public static int[] getLanguages(Device device)
throws IOException
{
byte abyte0[] = null;
try
{
abyte0 = getStandardDescriptor(device, (byte)3, (byte)0, 0, 256);
}
catch(USBException usbexception)
{
if(!usbexception.isStalled())
throw usbexception;
}
if(abyte0 == null || abyte0.length < 4)
return null;
int i = 0xff & abyte0[0];
i >>= 1;
if(--i <= 0)
return null;
int ai[] = new int;
for(int j = 0; j < i; j++)
{
int k = 2 + 2 * j;
ai[j] = 0xff & abyte0[k];
ai[j] += (0xff & abyte0[k + 1]) << 8;
}
return ai;
}
public static String getString(Device device, byte byte0, int i)
throws IOException
{
if(byte0 == 0)
throw new IllegalArgumentException();
byte abyte0[] = getStandardDescriptor(device, (byte)3, byte0, i, 256);
int j;
if(abyte0.length < 2 || abyte0[1] != 3 || (j = 0xff & abyte0[0]) > abyte0.length || (j -= 2) % 2 != 0)
return null;
char ac[] = new char[j >> 1];
for(int k = 0; k < ac.length; k++)
{
int l = 2 * k + 2;
ac[k] = (char)((abyte0[l + 1] << 8) + (0xff & abyte0[l]));
}
return new String(ac);
}
public static byte[] getStatus(Device device, int i, int j, int k, int l)
throws IOException
{
ControlMessage controlmessage = new ControlMessage();
controlmessage.setRequestType((byte)(i | 0xffffff80));
controlmessage.setRequest((byte)0);
controlmessage.setValue((short)j);
controlmessage.setIndex((short)k);
controlmessage.setLength(l);
device.control(controlmessage);
return controlmessage.getBuffer();
}
public static void clearFeature(Device device, int i, int j, int k)
throws IOException
{
ControlMessage controlmessage = new ControlMessage();
controlmessage.setRequestType((byte)(i & 0x7f));
controlmessage.setRequest((byte)1);
controlmessage.setValue((short)(j & 0xff));
controlmessage.setIndex((short)k);
device.control(controlmessage);
}
public static void setFeature(Device device, int i, int j, int k)
throws IOException
{
ControlMessage controlmessage = new ControlMessage();
controlmessage.setRequestType((byte)(i & 0x7f));
controlmessage.setRequest((byte)3);
controlmessage.setValue((short)(j & 0xff));
controlmessage.setIndex((short)k);
device.control(controlmessage);
}
private byte requestType;
private byte request;
private short value;
private short index;
private byte buf[];
private short len;
public static final byte DIR_TO_HOST = -128;
public static final byte DIR_TO_DEVICE = 0;
public static final byte TYPE_STANDARD = 0;
public static final byte TYPE_CLASS = 32;
public static final byte TYPE_VENDOR = 64;
public static final byte RECIPIENT_DEVICE = 0;
public static final byte RECIPIENT_INTERFACE = 1;
public static final byte RECIPIENT_ENDPOINT = 2;
public static final byte RECIPIENT_OTHER = 3;
public static final byte GET_STATUS = 0;
public static final byte CLEAR_FEATURE = 1;
public static final byte SET_FEATURE = 3;
public static final byte SET_ADDRESS = 5;
public static final byte GET_DESCRIPTOR = 6;
public static final byte SET_DESCRIPTOR = 7;
public static final byte GET_CONFIGURATION = 8;
public static final byte SET_CONFIGURATION = 9;
public static final byte GET_INTERFACE = 10;
public static final byte SET_INTERFACE = 11;
public static final byte SYNCH_FRAME = 12;
}