From 0b624384cd52be20e61284551d832b499d7b7707 Mon Sep 17 00:00:00 2001 From: Jonathan McCrohan Date: Sat, 14 Apr 2012 12:56:48 +0100 Subject: Imported Upstream version 2.1.8.20120216 --- Java/com_phidgets_TextLCDPhidget.c | 97 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 Java/com_phidgets_TextLCDPhidget.c (limited to 'Java/com_phidgets_TextLCDPhidget.c') diff --git a/Java/com_phidgets_TextLCDPhidget.c b/Java/com_phidgets_TextLCDPhidget.c new file mode 100644 index 0000000..a917bfd --- /dev/null +++ b/Java/com_phidgets_TextLCDPhidget.c @@ -0,0 +1,97 @@ +#include "../stdafx.h" +#include "phidget_jni.h" +#include "com_phidgets_TextLCDPhidget.h" +#include "../cphidgettextlcd.h" + +JNI_LOAD(lcd, TextLCD) +} + +JNI_CREATE(TextLCD) +JNI_GETFUNCBOOL(TextLCD, Backlight, Backlight) +JNI_SETFUNC(TextLCD, Backlight, Backlight, jboolean) +JNI_GETFUNC(TextLCD, Contrast, Contrast, jint) +JNI_SETFUNC(TextLCD, Contrast, Contrast, jint) +JNI_GETFUNC(TextLCD, Brightness, Brightness, jint) +JNI_SETFUNC(TextLCD, Brightness, Brightness, jint) +JNI_GETFUNCBOOL(TextLCD, Cursor, CursorOn) +JNI_SETFUNC(TextLCD, Cursor, CursorOn, jboolean) +JNI_GETFUNCBOOL(TextLCD, CursorBlink, CursorBlink) +JNI_SETFUNC(TextLCD, CursorBlink, CursorBlink, jboolean) +JNI_GETFUNC(TextLCD, RowCount, RowCount, jint) +JNI_GETFUNC(TextLCD, ColumnCount, ColumnCount, jint) +JNI_GETFUNC(TextLCD, ScreenCount, ScreenCount, jint) + +JNIEXPORT void JNICALL +Java_com_phidgets_TextLCDPhidget_setDisplayString(JNIEnv *env, jobject obj, jint index, jstring v) +{ + CPhidgetTextLCDHandle h = (CPhidgetTextLCDHandle)(uintptr_t) + (*env)->GetLongField(env, obj, handle_fid); + int error, i; + jboolean iscopy; + char string[TEXTLCD_MAXCOLS+2]; + + //we can't use GetStringUTFChars here because it converts the UTF-16 to UTF-8 and this screws up the 0x80-0xFF characters + const jchar *textString = (*env)->GetStringChars(env, v, &iscopy); + + for(i=0;iReleaseStringChars(env, v, textString); +} + +JNIEXPORT void JNICALL +Java_com_phidgets_TextLCDPhidget_setDisplayCharacter(JNIEnv *env, jobject obj, jint row, jint column, jchar v) +{ + CPhidgetTextLCDHandle h = (CPhidgetTextLCDHandle)(uintptr_t) + (*env)->GetLongField(env, obj, handle_fid); + int error; + + if ((error = CPhidgetTextLCD_setDisplayCharacter(h, row, column, (char)v))) + PH_THROW(error); +} + +JNIEXPORT void JNICALL +Java_com_phidgets_TextLCDPhidget_setCustomCharacter(JNIEnv *env, jobject obj, jint index, jint v, jint v2) +{ + CPhidgetTextLCDHandle h = (CPhidgetTextLCDHandle)(uintptr_t) + (*env)->GetLongField(env, obj, handle_fid); + int error; + if ((error = CPhidgetTextLCD_setCustomCharacter(h, index, v, v2))) + PH_THROW(error); +} + +JNI_GETFUNC(TextLCD, Screen, Screen, jint) +JNI_SETFUNC(TextLCD, Screen, Screen, jint) + +JNIEXPORT jint JNICALL +Java_com_phidgets_TextLCDPhidget_getScreenSize(JNIEnv *env, jobject obj) +{ + CPhidgetTextLCDHandle h = (CPhidgetTextLCDHandle)(uintptr_t) + (*env)->GetLongField(env, obj, handle_fid); + int error; + CPhidgetTextLCD_ScreenSize v; + if ((error = CPhidgetTextLCD_getScreenSize(h, &v))) + PH_THROW(error); + return (jint)v; +} + +JNI_SETFUNC(TextLCD, ScreenSize, ScreenSize, jint) + +JNIEXPORT void JNICALL +Java_com_phidgets_TextLCDPhidget_initialize(JNIEnv *env, jobject obj) +{ + CPhidgetTextLCDHandle h = (CPhidgetTextLCDHandle)(uintptr_t) + (*env)->GetLongField(env, obj, handle_fid); + int error; + + if ((error = CPhidgetTextLCD_initialize(h))) + PH_THROW(error); +} -- cgit v1.2.3