From 5d63b1b2a6968f9c0146e1946b72ca6073370fbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Sun, 19 Jul 2009 15:56:13 +0000 Subject: updated to 0.8.5 svn path=/trunk/externals/loaders/pdj/; revision=11874 --- src/init.c | 128 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) (limited to 'src/init.c') diff --git a/src/init.c b/src/init.c index b147db4..df5851c 100644 --- a/src/init.c +++ b/src/init.c @@ -2,10 +2,12 @@ * initialization */ + #include #include #include #include "pdj.h" +#include "native_classes.h" #define MAX_PROPERTIES 40 char *properties[MAX_PROPERTIES+1][2]; @@ -209,8 +211,134 @@ static int initIDCaching(JNIEnv *env) { static int linkClasses(JNIEnv *env) { + // link native method to java classes + JNINativeMethod link; + jclass maxsystem = (*env)->FindClass(env, "com/cycling74/max/MaxSystem"); + jclass mspbuffer = (*env)->FindClass(env, "com/cycling74/msp/MSPBuffer"); jclass pdjSystem = (*env)->FindClass(env, "com/e1/pdj/PDJSystem"); jmethodID id; + + link.name = "newInlet"; + link.signature = "(I)J"; + link.fnPtr = Java_com_cycling74_max_MaxObject_newInlet; + (*env)->RegisterNatives(env, pdjCaching.cls_MaxObject, &link, 1); + + link.name = "newOutlet"; + link.signature = "(I)J"; + link.fnPtr = Java_com_cycling74_max_MaxObject_newOutlet; + (*env)->RegisterNatives(env, pdjCaching.cls_MaxObject, &link, 1); + + link.name = "doOutletBang"; + link.signature = "(J)V"; + link.fnPtr = Java_com_cycling74_max_MaxObject_doOutletBang; + (*env)->RegisterNatives(env, pdjCaching.cls_MaxObject, &link, 1); + + link.name = "doOutletFloat"; + link.signature = "(JF)V"; + link.fnPtr = Java_com_cycling74_max_MaxObject_doOutletFloat; + (*env)->RegisterNatives(env, pdjCaching.cls_MaxObject, &link, 1); + + link.name = "doOutletSymbol"; + link.signature = "(JLjava/lang/String;)V"; + link.fnPtr = Java_com_cycling74_max_MaxObject_doOutletSymbol; + (*env)->RegisterNatives(env, pdjCaching.cls_MaxObject, &link, 1); + + link.name = "doOutletAnything"; + link.signature = "(JLjava/lang/String;[Lcom/cycling74/max/Atom;)V"; + link.fnPtr = Java_com_cycling74_max_MaxObject_doOutletAnything; + (*env)->RegisterNatives(env, pdjCaching.cls_MaxObject, &link, 1); + + link.name = "getPatchPath"; + link.signature = "()Ljava/lang/String;"; + link.fnPtr = Java_com_cycling74_max_MaxObject_getPatchPath; + (*env)->RegisterNatives(env, pdjCaching.cls_MaxObject, &link, 1); + + link.name = "pushPdjPointer"; + link.signature = "(J)V"; + link.fnPtr = Java_com_cycling74_max_MaxObject_pushPdjPointer; + (*env)->RegisterNatives(env, pdjCaching.cls_MaxObject, &link, 1); + + link.name = "popPdjPointer"; + link.signature = "()J"; + link.fnPtr = Java_com_cycling74_max_MaxObject_popPdjPointer; + (*env)->RegisterNatives(env, pdjCaching.cls_MaxObject, &link, 1); + + link.name = "getTime"; + link.signature = "()D"; + link.fnPtr = Java_com_cycling74_max_MaxClock_getTime; + (*env)->RegisterNatives(env, pdjCaching.cls_MaxClock, &link, 1); + + link.name = "delay"; + link.signature = "(D)V"; + link.fnPtr = Java_com_cycling74_max_MaxClock_delay; + (*env)->RegisterNatives(env, pdjCaching.cls_MaxClock, &link, 1); + + link.name = "release"; + link.signature = "()V"; + link.fnPtr = Java_com_cycling74_max_MaxClock_release; + (*env)->RegisterNatives(env, pdjCaching.cls_MaxClock, &link, 1); + + link.name = "unset"; + link.signature = "()V"; + link.fnPtr = Java_com_cycling74_max_MaxClock_unset; + (*env)->RegisterNatives(env, pdjCaching.cls_MaxClock, &link, 1); + + link.name = "create_clock"; + link.signature = "()V"; + link.fnPtr = Java_com_cycling74_max_MaxClock_create_1clock; + (*env)->RegisterNatives(env, pdjCaching.cls_MaxClock, &link, 1); + + + link.name = "post"; + link.signature = "(Ljava/lang/String;)V"; + link.fnPtr = Java_com_cycling74_max_MaxSystem_post; + (*env)->RegisterNatives(env, maxsystem, &link, 1); + + link.name = "error"; + link.signature = "(Ljava/lang/String;)V"; + link.fnPtr = Java_com_cycling74_max_MaxSystem_error; + (*env)->RegisterNatives(env, maxsystem, &link, 1); + + link.name = "ouch"; + link.signature = "(Ljava/lang/String;)V"; + link.fnPtr = Java_com_cycling74_max_MaxSystem_ouch; + (*env)->RegisterNatives(env, maxsystem, &link, 1); + + link.name = "sendMessageToBoundObject"; + link.signature = "(Ljava/lang/String;Ljava/lang/String;[Lcom/cycling74/max/Atom;)Z"; + link.fnPtr = Java_com_cycling74_max_MaxSystem_sendMessageToBoundObject; + (*env)->RegisterNatives(env, maxsystem, &link, 1); + + link.name = "locateFile"; + link.signature = "(Ljava/lang/String;)Ljava/lang/String;"; + link.fnPtr = Java_com_cycling74_max_MaxSystem_locateFile; + (*env)->RegisterNatives(env, maxsystem, &link, 1); + + link.name = "locateFile"; + link.signature = "(Ljava/lang/String;)Ljava/lang/String;"; + link.fnPtr = Java_com_cycling74_max_MaxSystem_locateFile; + (*env)->RegisterNatives(env, maxsystem, &link, 1); + + link.name = "setSize"; + link.signature = "(Ljava/lang/String;IJ)V"; + link.fnPtr = Java_com_cycling74_msp_MSPBuffer_setSize; + (*env)->RegisterNatives(env, mspbuffer, &link, 1); + + link.name = "getSize"; + link.signature = "(Ljava/lang/String;)J"; + link.fnPtr = Java_com_cycling74_msp_MSPBuffer_getSize; + (*env)->RegisterNatives(env, mspbuffer, &link, 1); + + link.name = "getArray"; + link.signature = "(Ljava/lang/String;JJ)[F"; + link.fnPtr = Java_com_cycling74_msp_MSPBuffer_getArray; + (*env)->RegisterNatives(env, mspbuffer, &link, 1); + + link.name = "setArray"; + link.signature = "(Ljava/lang/String;J[F)V"; + link.fnPtr = Java_com_cycling74_msp_MSPBuffer_setArray; + (*env)->RegisterNatives(env, mspbuffer, &link, 1); + if ( pdjSystem == NULL ) { SHOWEXC; return 1; -- cgit v1.2.1