- allocate and return Strings (interface changes)

- Version 00.02.00

git-svn-id: https://svn.code.sf.net/p/libusbjava/code/trunk@149 94ad28fe-ef68-46b1-9651-e7ae4fcf1c4c
This commit is contained in:
schlaepfer
2006-05-10 13:17:22 +00:00
parent 2641d0dc11
commit 43628ec1bf
3 changed files with 50 additions and 35 deletions

View File

@@ -49,6 +49,8 @@
</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"/>
@@ -57,7 +59,7 @@
<buildTargets>
<target name="dll" path="" targetID="org.eclipse.cdt.make.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments></buildArguments>
<buildArguments/>
<buildTarget>dll</buildTarget>
<stopOnError>false</stopOnError>
<useDefaultCommand>true</useDefaultCommand>

View File

@@ -4,6 +4,7 @@
* Computer Science Laboratory, inf.ntb.ch
* Andreas Schl<68>pfer, aschlaepfer@ntb.ch
*
* Version 00.02.00
*/
#include <jni.h>
@@ -586,51 +587,63 @@ JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbWin_usb_1control_1msg
/*
* Class: ch_ntb_usb_LibusbWin
* Method: usb_get_string
* Signature: (IIILjava/lang/String;I)I
* Signature: (III)Ljava/lang/String;
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbWin_usb_1get_1string
(JNIEnv *env, jobject obj, jint dev_handle, jint index, jint langid, jstring jbuf, jint buflen)
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbWin_usb_1get_1string
(JNIEnv *env, jobject obj, jint dev_handle, jint index, jint langid)
{
const jchar *buf = env->GetStringChars(jbuf, NULL);
int retVal = usb_get_string((usb_dev_handle *) dev_handle, index, langid, (char *) buf, buflen);
jbuf = env->NewString(buf, buflen);
return retVal;
char string[256];
int retVal = usb_get_string((usb_dev_handle *) dev_handle, index, langid, string, 256);
if (retVal > 0)
return env->NewStringUTF(string);
return 0;
}
/*
* Class: ch_ntb_usb_LibusbWin
* Method: usb_get_string_simple
* Signature: (IILjava/lang/String;I)I
* Signature: (II)Ljava/lang/String;
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbWin_usb_1get_1string_1simple
(JNIEnv *env, jobject obj, jint dev_handle, jint index, jstring jbuf, jint buflen)
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbWin_usb_1get_1string_1simple
(JNIEnv *env, jobject obj, jint dev_handle, jint index)
{
const jchar *buf = env->GetStringChars(jbuf, NULL);
int retVal = usb_get_string_simple((usb_dev_handle *) dev_handle, index, (char *) buf, buflen);
jbuf = env->NewString(buf, buflen);
return retVal;
char string[256];
int retVal = usb_get_string_simple((usb_dev_handle *) dev_handle, index, string, 256);
if (retVal > 0)
return env->NewStringUTF(string);
return 0;
}
/*
* Class: ch_ntb_usb_LibusbWin
* Method: usb_get_descriptor
* Signature: (IBBLjava/lang/String;I)I
* Signature: (IBBI)Ljava/lang/String;
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbWin_usb_1get_1descriptor
(JNIEnv *env, jobject obj, jint dev_handle, jbyte type, jbyte index, jstring buf, jint size)
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbWin_usb_1get_1descriptor
(JNIEnv *env, jobject obj, jint dev_handle, jbyte type, jbyte index, jint size)
{
return usb_get_descriptor((usb_dev_handle *) dev_handle, (unsigned) type, (unsigned) index, buf, size);
char *string = (char *) malloc(size * sizeof(char));
int retVal = usb_get_descriptor((usb_dev_handle *) dev_handle, (unsigned) type,
(unsigned) index, string, size);
if (retVal > 0)
return env->NewStringUTF(string);
return 0;
}
/*
* Class: ch_ntb_usb_LibusbWin
* Method: usb_get_descriptor_by_endpoint
* Signature: (IIBBLjava/lang/String;I)I
* Signature: (IIBBI)Ljava/lang/String;
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbWin_usb_1get_1descriptor_1by_1endpoint
(JNIEnv *env, jobject obj, jint dev_handle, jint ep, jbyte type, jbyte index, jstring buf, jint size)
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbWin_usb_1get_1descriptor_1by_1endpoint
(JNIEnv *env, jobject obj, jint dev_handle, jint ep, jbyte type, jbyte index, jint size)
{
return usb_get_descriptor_by_endpoint((usb_dev_handle *) dev_handle, ep, (unsigned) type, (unsigned) index, buf, size);
char *string = (char *) malloc(size * sizeof(char));
int retVal = usb_get_descriptor_by_endpoint((usb_dev_handle *) dev_handle, ep, (unsigned) type,
(unsigned) index, string, size);
if (retVal > 0)
return env->NewStringUTF(string);
return 0;
}
/*

View File

@@ -114,34 +114,34 @@ JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbWin_usb_1control_1msg
/*
* Class: ch_ntb_usb_LibusbWin
* Method: usb_get_string
* Signature: (IIILjava/lang/String;I)I
* Signature: (III)Ljava/lang/String;
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbWin_usb_1get_1string
(JNIEnv *, jobject, jint, jint, jint, jstring, jint);
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbWin_usb_1get_1string
(JNIEnv *, jobject, jint, jint, jint);
/*
* Class: ch_ntb_usb_LibusbWin
* Method: usb_get_string_simple
* Signature: (IILjava/lang/String;I)I
* Signature: (II)Ljava/lang/String;
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbWin_usb_1get_1string_1simple
(JNIEnv *, jobject, jint, jint, jstring, jint);
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbWin_usb_1get_1string_1simple
(JNIEnv *, jobject, jint, jint);
/*
* Class: ch_ntb_usb_LibusbWin
* Method: usb_get_descriptor
* Signature: (IBBLjava/lang/String;I)I
* Signature: (IBBI)Ljava/lang/String;
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbWin_usb_1get_1descriptor
(JNIEnv *, jobject, jint, jbyte, jbyte, jstring, jint);
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbWin_usb_1get_1descriptor
(JNIEnv *, jobject, jint, jbyte, jbyte, jint);
/*
* Class: ch_ntb_usb_LibusbWin
* Method: usb_get_descriptor_by_endpoint
* Signature: (IIBBLjava/lang/String;I)I
* Signature: (IIBBI)Ljava/lang/String;
*/
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbWin_usb_1get_1descriptor_1by_1endpoint
(JNIEnv *, jobject, jint, jint, jbyte, jbyte, jstring, jint);
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbWin_usb_1get_1descriptor_1by_1endpoint
(JNIEnv *, jobject, jint, jint, jbyte, jbyte, jint);
/*
* Class: ch_ntb_usb_LibusbWin