- 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> </profile>
</item> </item>
<item id="org.eclipse.cdt.core.pathentry"> <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="src" path=""/>
<pathentry kind="out" path=""/> <pathentry kind="out" path=""/>
<pathentry kind="con" path="org.eclipse.cdt.make.core.DISCOVERED_SCANNER_INFO"/> <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_bmAttributes = env->GetFieldID(usb_confDescClazz, "bmAttributes", "B");
usb_confDescFID_MaxPower = env->GetFieldID(usb_confDescClazz, "MaxPower", "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_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_confDescFID_extralen = env->GetFieldID(usb_confDescClazz, "extralen", "I");
// usb_interface // 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_bInterfaceProtocol = env->GetFieldID(usb_intDescClazz, "bInterfaceProtocol", "B");
usb_intDescFID_iInterface = env->GetFieldID(usb_intDescClazz, "iInterface", "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_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_intDescFID_extralen = env->GetFieldID(usb_intDescClazz, "extralen", "I");
// usb_endpoint_descriptor // 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_bInterval = env->GetFieldID(usb_epDescClazz, "bInterval", "B");
usb_epDescFID_bRefresh = env->GetFieldID(usb_epDescClazz, "bRefresh", "B"); usb_epDescFID_bRefresh = env->GetFieldID(usb_epDescClazz, "bRefresh", "B");
usb_epDescFID_bSynchAddress = env->GetFieldID(usb_epDescClazz, "bSynchAddress", "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"); usb_epDescFID_extralen = env->GetFieldID(usb_epDescClazz, "extralen", "I");
#ifdef DEBUGON #ifdef DEBUGON
printf("usb_get_busses: Field initialization done (1)\n"); 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_bmAttributes, dev->config[c].bmAttributes);
env->SetByteField(usb_confDescObj, usb_confDescFID_MaxPower, dev->config[c].MaxPower); env->SetByteField(usb_confDescObj, usb_confDescFID_MaxPower, dev->config[c].MaxPower);
env->SetIntField(usb_confDescObj, usb_confDescFID_extralen, dev->config[c].extralen); 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){ if (dev->config[c].extra){
printf("The Device %d contains an extra descriptor!\n", dev->devnum); jbyteArray jbExtraDesc = env->NewByteArray(dev->config[c].extralen);
printf("Extra descriptors are not passed to java!\n"); 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 // interface
usb_intObjArray = (jobjectArray) env->NewObjectArray(dev->config[c].bNumInterfaces, usb_intClazz, NULL); 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_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->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); 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){ if (dev->config[c].interface[i].altsetting[a].extra){
printf("The Device %d contains an extra interface descriptor!\n", dev->devnum); jbyteArray jbExtraDesc = env->NewByteArray(dev->config[c].interface[i].altsetting[a].extralen);
printf("Extra descriptors are not passed to java!\n"); 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 // endpoint descriptor
usb_epDescObjArray = (jobjectArray) env->NewObjectArray(dev->config[c].interface[i].altsetting[a].bNumEndpoints, usb_epDescClazz, NULL); 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; } 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_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->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); 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){ if (dev->config[c].interface[i].altsetting[a].endpoint[e].extra){
printf("The Device %d contains an extra endpoint descriptor!\n", dev->devnum); jbyteArray jbExtraDesc = env->NewByteArray(dev->config[c].interface[i].altsetting[a].endpoint[e].extralen);
printf("Extra descriptors are not passed to java!\n"); 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); env->SetObjectField(usb_intDescObj, usb_intDescFID_endpoint, usb_epDescObjArray);
} }

View File

@@ -2,6 +2,6 @@
#define RC_FILE_SUB_TYPE VFT2_UNKNOWN #define RC_FILE_SUB_TYPE VFT2_UNKNOWN
#define RC_PRODUCT_STR "Java LibUsb-Win32 wrapper - DLL" #define RC_PRODUCT_STR "Java LibUsb-Win32 wrapper - DLL"
#define RC_FILE_NAME_STR "LibusbJava.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" #include "common.rc"

View File

@@ -1,5 +1,5 @@
# NOTE: if the version is changed -> change the define in resource.rc" # NOTE: if the version is changed -> change the define in resource.rc"
version.major=0 version.major=0
version.minor=1 version.minor=2
version.micro=0 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_Interface[] interface_;
private Usb_Config_Descriptor extra; /* Extra descriptors */ private byte[] extra; /* Extra descriptors */
private int extralen; 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 * Returns the data of extra descriptor(s) if available.<br>
* structure.
* *
* @return null * @return null or a byte array with the extra descriptor data
*/ */
// TODO: implementation public byte[] getExtra() {
public Usb_Config_Descriptor getExtra() {
return extra; return extra;
} }

View File

@@ -59,7 +59,7 @@ public class Usb_Endpoint_Descriptor extends Usb_Descriptor {
private byte bSynchAddress; private byte bSynchAddress;
private Usb_Endpoint_Descriptor extra; /* Extra descriptors */ private byte[] extra; /* Extra descriptors */
private int extralen; 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 * Returns the data of extra descriptor(s) if available.<br>
* structure.
* *
* @return null * @return null or a byte array with the extra descriptor data
*/ */
// TODO: implementation public byte[] getExtra() {
public Usb_Endpoint_Descriptor getExtra() {
return extra; return extra;
} }

View File

@@ -42,7 +42,7 @@ public class Usb_Interface_Descriptor extends Usb_Descriptor {
private Usb_Endpoint_Descriptor[] endpoint; private Usb_Endpoint_Descriptor[] endpoint;
private Usb_Interface_Descriptor extra; /* Extra descriptors */ private byte[] extra; /* Extra descriptors */
private int extralen; 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 * Returns the data of extra descriptor(s) if available.<br>
* structure.
* *
* @return null * @return null or a byte array with the extra descriptor data
*/ */
// TODO: implementation public byte[] getExtra() {
public Usb_Interface_Descriptor getExtra() {
return extra; return extra;
} }

View File

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