- support for extra descriptor added

git-svn-id: https://svn.code.sf.net/p/libusbjava/code/trunk@243 94ad28fe-ef68-46b1-9651-e7ae4fcf1c4c
This commit is contained in:
spandi
2007-02-14 21:57:42 +00:00
parent 188aaf27f8
commit 0f627b66c6
8 changed files with 34 additions and 39 deletions

View File

@@ -49,8 +49,6 @@
</profile>
</item>
<item id="org.eclipse.cdt.core.pathentry">
<pathentry include="C:/Program Files/Java/jdk1.5.0_04/include" kind="inc" path="" system="true"/>
<pathentry include="C:/MinGW/include" kind="inc" path="" system="true"/>
<pathentry kind="src" path=""/>
<pathentry kind="out" path=""/>
<pathentry kind="con" path="org.eclipse.cdt.make.core.DISCOVERED_SCANNER_INFO"/>

View File

@@ -188,7 +188,7 @@ JNIEXPORT jobject JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1busses
usb_confDescFID_bmAttributes = env->GetFieldID(usb_confDescClazz, "bmAttributes", "B");
usb_confDescFID_MaxPower = env->GetFieldID(usb_confDescClazz, "MaxPower", "B");
usb_confDescFID_interface_ = env->GetFieldID(usb_confDescClazz, "interface_", "[Lch/ntb/usb/Usb_Interface;");
usb_confDescFID_extra = env->GetFieldID(usb_confDescClazz, "extra", "Lch/ntb/usb/Usb_Config_Descriptor;");
usb_confDescFID_extra = env->GetFieldID(usb_confDescClazz, "extra", "[B");
usb_confDescFID_extralen = env->GetFieldID(usb_confDescClazz, "extralen", "I");
// usb_interface
@@ -216,7 +216,7 @@ JNIEXPORT jobject JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1busses
usb_intDescFID_bInterfaceProtocol = env->GetFieldID(usb_intDescClazz, "bInterfaceProtocol", "B");
usb_intDescFID_iInterface = env->GetFieldID(usb_intDescClazz, "iInterface", "B");
usb_intDescFID_endpoint = env->GetFieldID(usb_intDescClazz, "endpoint", "[Lch/ntb/usb/Usb_Endpoint_Descriptor;");
usb_intDescFID_extra = env->GetFieldID(usb_intDescClazz, "extra", "Lch/ntb/usb/Usb_Interface_Descriptor;");
usb_intDescFID_extra = env->GetFieldID(usb_intDescClazz, "extra", "[B");
usb_intDescFID_extralen = env->GetFieldID(usb_intDescClazz, "extralen", "I");
// usb_endpoint_descriptor
@@ -233,7 +233,7 @@ JNIEXPORT jobject JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1busses
usb_epDescFID_bInterval = env->GetFieldID(usb_epDescClazz, "bInterval", "B");
usb_epDescFID_bRefresh = env->GetFieldID(usb_epDescClazz, "bRefresh", "B");
usb_epDescFID_bSynchAddress = env->GetFieldID(usb_epDescClazz, "bSynchAddress", "B");
usb_epDescFID_extra = env->GetFieldID(usb_epDescClazz, "extra", "Lch/ntb/usb/Usb_Endpoint_Descriptor;");
usb_epDescFID_extra = env->GetFieldID(usb_epDescClazz, "extra", "[B");
usb_epDescFID_extralen = env->GetFieldID(usb_epDescClazz, "extralen", "I");
#ifdef DEBUGON
printf("usb_get_busses: Field initialization done (1)\n");
@@ -363,11 +363,12 @@ JNIEXPORT jobject JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1busses
env->SetByteField(usb_confDescObj, usb_confDescFID_bmAttributes, dev->config[c].bmAttributes);
env->SetByteField(usb_confDescObj, usb_confDescFID_MaxPower, dev->config[c].MaxPower);
env->SetIntField(usb_confDescObj, usb_confDescFID_extralen, dev->config[c].extralen);
// extra descriptors are not interpreted!!!
env->SetObjectField(usb_confDescObj, usb_confDescFID_extra, NULL);
if (dev->config[c].extra){
printf("The Device %d contains an extra descriptor!\n", dev->devnum);
printf("Extra descriptors are not passed to java!\n");
jbyteArray jbExtraDesc = env->NewByteArray(dev->config[c].extralen);
env->SetByteArrayRegion(jbExtraDesc, 0, dev->config[c].extralen, (jbyte *) dev->config[c].extra);
env->SetObjectField(usb_confDescObj, usb_confDescFID_extra, jbExtraDesc);
} else {
env->SetObjectField(usb_confDescObj, usb_confDescFID_extra, NULL);
}
// interface
usb_intObjArray = (jobjectArray) env->NewObjectArray(dev->config[c].bNumInterfaces, usb_intClazz, NULL);
@@ -412,12 +413,13 @@ JNIEXPORT jobject JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1busses
env->SetByteField(usb_intDescObj, usb_intDescFID_bInterfaceProtocol, dev->config[c].interface[i].altsetting[a].bInterfaceProtocol);
env->SetByteField(usb_intDescObj, usb_intDescFID_iInterface, dev->config[c].interface[i].altsetting[a].iInterface);
env->SetIntField(usb_intDescObj, usb_intDescFID_extralen, dev->config[c].interface[i].altsetting[a].extralen);
// extra descriptors are not interpreted!!!
if (dev->config[c].interface[i].altsetting[a].extra){
printf("The Device %d contains an extra interface descriptor!\n", dev->devnum);
printf("Extra descriptors are not passed to java!\n");
jbyteArray jbExtraDesc = env->NewByteArray(dev->config[c].interface[i].altsetting[a].extralen);
env->SetByteArrayRegion(jbExtraDesc, 0, dev->config[c].interface[i].altsetting[a].extralen, (jbyte *) dev->config[c].interface[i].altsetting[a].extra);
env->SetObjectField(usb_intDescObj, usb_intDescFID_extra, jbExtraDesc);
} else {
env->SetObjectField(usb_intDescObj, usb_intDescFID_extra, NULL);
}
env->SetObjectField(usb_intDescObj, usb_intDescFID_extra, NULL);
// endpoint descriptor
usb_epDescObjArray = (jobjectArray) env->NewObjectArray(dev->config[c].interface[i].altsetting[a].bNumEndpoints, usb_epDescClazz, NULL);
if (!usb_epDescObjArray) { printf("Error NewObject (usb_epDescObjArray)\n"); return NULL; }
@@ -442,12 +444,13 @@ JNIEXPORT jobject JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1busses
env->SetByteField(usb_epDescObj, usb_epDescFID_bRefresh, dev->config[c].interface[i].altsetting[a].endpoint[e].bRefresh);
env->SetByteField(usb_epDescObj, usb_epDescFID_bSynchAddress, dev->config[c].interface[i].altsetting[a].endpoint[e].bSynchAddress);
env->SetIntField(usb_epDescObj, usb_epDescFID_extralen, dev->config[c].interface[i].altsetting[a].endpoint[e].extralen);
// extra descriptors are not interpreted!!!
if (dev->config[c].interface[i].altsetting[a].endpoint[e].extra){
printf("The Device %d contains an extra endpoint descriptor!\n", dev->devnum);
printf("Extra descriptors are not passed to java!\n");
jbyteArray jbExtraDesc = env->NewByteArray(dev->config[c].interface[i].altsetting[a].endpoint[e].extralen);
env->SetByteArrayRegion(jbExtraDesc, 0, dev->config[c].interface[i].altsetting[a].endpoint[e].extralen, (jbyte *) dev->config[c].interface[i].altsetting[a].endpoint[e].extra);
env->SetObjectField(usb_epDescObj, usb_epDescFID_extra, jbExtraDesc);
} else {
env->SetObjectField(usb_epDescObj, usb_epDescFID_extra, NULL);
}
env->SetObjectField(usb_epDescObj, usb_epDescFID_extra, NULL);
}
env->SetObjectField(usb_intDescObj, usb_intDescFID_endpoint, usb_epDescObjArray);
}

View File

@@ -2,6 +2,6 @@
#define RC_FILE_SUB_TYPE VFT2_UNKNOWN
#define RC_PRODUCT_STR "Java LibUsb-Win32 wrapper - DLL"
#define RC_FILE_NAME_STR "LibusbJava.dll"
#define RC_VERSION_STR "0.1.0.1"
#define RC_VERSION_STR "0.1.1.0"
#include "common.rc"

View File

@@ -1,5 +1,5 @@
# NOTE: if the version is changed -> change the define in resource.rc"
version.major=0
version.minor=1
version.minor=2
version.micro=0
version.nano=1
version.nano=0

View File

@@ -39,7 +39,7 @@ public class Usb_Config_Descriptor extends Usb_Descriptor {
private Usb_Interface[] interface_;
private Usb_Config_Descriptor extra; /* Extra descriptors */
private byte[] extra; /* Extra descriptors */
private int extralen;
@@ -76,13 +76,11 @@ public class Usb_Config_Descriptor extends Usb_Descriptor {
}
/**
* Extra descriptors are currently not interpreted because of their unknown
* structure.
* Returns the data of extra descriptor(s) if available.<br>
*
* @return null
* @return null or a byte array with the extra descriptor data
*/
// TODO: implementation
public Usb_Config_Descriptor getExtra() {
public byte[] getExtra() {
return extra;
}

View File

@@ -59,7 +59,7 @@ public class Usb_Endpoint_Descriptor extends Usb_Descriptor {
private byte bSynchAddress;
private Usb_Endpoint_Descriptor extra; /* Extra descriptors */
private byte[] extra; /* Extra descriptors */
private int extralen;
@@ -123,13 +123,11 @@ public class Usb_Endpoint_Descriptor extends Usb_Descriptor {
}
/**
* Extra descriptors are currently not interpreted because of their unknown
* structure.
* Returns the data of extra descriptor(s) if available.<br>
*
* @return null
* @return null or a byte array with the extra descriptor data
*/
// TODO: implementation
public Usb_Endpoint_Descriptor getExtra() {
public byte[] getExtra() {
return extra;
}

View File

@@ -42,7 +42,7 @@ public class Usb_Interface_Descriptor extends Usb_Descriptor {
private Usb_Endpoint_Descriptor[] endpoint;
private Usb_Interface_Descriptor extra; /* Extra descriptors */
private byte[] extra; /* Extra descriptors */
private int extralen;
@@ -119,13 +119,11 @@ public class Usb_Interface_Descriptor extends Usb_Descriptor {
}
/**
* Extra descriptors are currently not interpreted because of their unknown
* structure.
* Returns the data of extra descriptor(s) if available.<br>
*
* @return null
* @return null or a byte array with the extra descriptor data
*/
// TODO: implementation
public Usb_Interface_Descriptor getExtra() {
public byte[] getExtra() {
return extra;
}

View File

@@ -1,4 +1,4 @@
#Thu Aug 24 14:28:28 CEST 2006
version.major=0
version.minor=4
version.minor=5
version.release=2