static void init_pointer_IDs (JNIEnv* env) { jclass PointerClass = NULL; #if SIZEOF_VOID_P == 8 PointerClass = JCL_FindClass (env, "gnu/classpath/Pointer64"); if (PointerClass != NULL) { pointerDataFID = (*env)->GetFieldID (env, PointerClass, "data", "J"); pointerConstructorMID = (*env)->GetMethodID (env, PointerClass, "<init>", "(J)V"); } #else # if SIZEOF_VOID_P == 4 PointerClass = JCL_FindClass (env, "gnu/classpath/Pointer32"); if (PointerClass != NULL) { pointerDataFID = (*env)->GetFieldID(env, PointerClass, "data", "I"); pointerConstructorMID = (*env)->GetMethodID(env, PointerClass, "<init>", "(I)V"); } # else # error "Pointer size is not supported." # endif /* SIZEOF_VOID_P == 4 */ #endif /* SIZEOF_VOID_P == 8 */ }
JNIEXPORT void JNICALL Java_gnu_java_nio_VMChannel_initIDs (JNIEnv *env, jclass clazz __attribute__ ((__unused__))) { jclass bufferClass = JCL_FindClass(env, "java/nio/Buffer"); jclass byteBufferClass = JCL_FindClass(env, "java/nio/ByteBuffer"); address_fid = (*env)->GetFieldID(env, bufferClass, "address", "Lgnu/classpath/Pointer;"); if (address_fid == NULL) { JCL_ThrowException(env, "java/lang/InternalError", "Unable to find internal field"); return; } get_position_mid = get_method_id(env, bufferClass, "position", "()I"); set_position_mid = get_method_id(env, bufferClass, "position", "(I)Ljava/nio/Buffer;"); get_limit_mid = get_method_id(env, bufferClass, "limit", "()I"); set_limit_mid = get_method_id(env, bufferClass, "limit", "(I)Ljava/nio/Buffer;"); has_array_mid = get_method_id(env, byteBufferClass, "hasArray", "()Z"); array_mid = get_method_id(env, byteBufferClass, "array", "()[B"); array_offset_mid = get_method_id(env, byteBufferClass, "arrayOffset", "()I"); }
JNIEXPORT void JNICALL Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_init_1id_1cache (JNIEnv *env, jclass clazz __attribute__ ((unused))) { jclass pointerClass = NULL; jclass GstHeader = NULL; GstHeader = JCL_FindClass(env, "gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer$GstHeader"); fileFID = (*env)->GetFieldID(env, GstHeader, "file", "Ljava/lang/String;"); mimetypeFID = (*env)->GetFieldID(env, GstHeader, "mimetype", "Ljava/lang/String;"); endiannessFID = (*env)->GetFieldID(env, GstHeader, "endianness", "Ljava/lang/String;"); channelsFID = (*env)->GetFieldID(env, GstHeader, "channels", "Ljava/lang/String;"); rateFID = (*env)->GetFieldID(env, GstHeader, "rate", "Ljava/lang/String;"); widthFID = (*env)->GetFieldID(env, GstHeader, "width", "Ljava/lang/String;"); depthFID = (*env)->GetFieldID(env, GstHeader, "depth", "Ljava/lang/String;"); isSignedFID = (*env)->GetFieldID(env, GstHeader, "isSigned", "Ljava/lang/String;"); nameFID = (*env)->GetFieldID(env, GstHeader, "name", "Ljava/lang/String;"); layerFID = (*env)->GetFieldID(env, GstHeader, "layer", "Ljava/lang/String;"); bitrateFID = (*env)->GetFieldID(env, GstHeader, "bitrate", "Ljava/lang/String;"); framedFID = (*env)->GetFieldID(env, GstHeader, "framed", "Ljava/lang/String;"); typeFID = (*env)->GetFieldID(env, GstHeader, "type", "Ljava/lang/String;"); #if SIZEOF_VOID_P == 8 pointerClass = JCL_FindClass (env, "gnu/classpath/Pointer64"); if (pointerClass != NULL) { pointerDataID = (*env)->GetFieldID (env, pointerClass, "data", "J"); } #else # if SIZEOF_VOID_P == 4 pointerClass = JCL_FindClass (env, "gnu/classpath/Pointer32"); if (pointerClass != NULL) { pointerDataID = (*env)->GetFieldID(env, pointerClass, "data", "I"); } # else # error "Pointer size is not supported." # endif /* SIZEOF_VOID_P == 4 */ #endif /* SIZEOF_VOID_P == 8 */ }
static gboolean set_jlist_class (JNIEnv *env) { jclass local_jlist_class = NULL; /* gets a reference to the ArrayList class */ local_jlist_class = JCL_FindClass (env, "java/util/ArrayList"); if (local_jlist_class == NULL) { return FALSE; } jlist_class = (*env)->NewGlobalRef (env, local_jlist_class); (*env)->DeleteLocalRef (env, local_jlist_class); if (jlist_class == NULL) { return FALSE; } /* and initialize it */ jlist_init_id = (*env)->GetMethodID (env, jlist_class, "<init>", "()V"); if (jlist_init_id == NULL) { return FALSE; } jlist_add_id = (*env)->GetMethodID (env, jlist_class, "add", "(Ljava/lang/Object;)Z"); if (jlist_add_id == NULL) { return FALSE; } return TRUE; }
/* * Class: java_lang_VMSystem * Method: setErr0 * Signature: (Ljava/io/PrintStream;)V */ JNIEXPORT void JNICALL Java_java_lang_VMSystem_setErr (JNIEnv * env, jclass thisClass __attribute__ ((__unused__)), jobject obj) { jclass cls; jfieldID field; cls = JCL_FindClass (env, "java/lang/System"); if (!cls) return; field = (*env)->GetStaticFieldID (env, cls, "err", "Ljava/io/PrintStream;"); if (!field) return; (*env)->SetStaticObjectField (env, cls, field, obj); }
JNIEXPORT void JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_init_1instance (JNIEnv *env, jobject pipeline) { GstNativePipeline *_pipeline = NULL; jclass localGstPipelineClass = NULL; jclass localPointerClass = NULL; jobject _pointer = NULL; _pipeline = (GstNativePipeline *) JCL_malloc (env, sizeof (GstNativePipeline)); if (_pipeline == NULL) return; _pipeline->priv = (GstNativePipelinePrivate *) JCL_malloc (env, sizeof (GstNativePipelinePrivate)); if (_pipeline->priv == NULL) { JCL_free (env, _pipeline); return; } #if SIZEOF_VOID_P == 8 localPointerClass = JCL_FindClass (env, "gnu/classpath/Pointer64"); #else # if SIZEOF_VOID_P == 4 localPointerClass = JCL_FindClass (env, "gnu/classpath/Pointer32"); # else # error "Pointer size is not supported." # endif /* SIZEOF_VOID_P == 4 */ #endif /* SIZEOF_VOID_P == 8 */ localGstPipelineClass = (*env)->GetObjectClass(env, pipeline); if (localGstPipelineClass == NULL || localGstPipelineClass == NULL) { JCL_free (env, _pipeline->priv); JCL_free (env, _pipeline); JCL_ThrowException (env, "java/lang/InternalError", "Class Initialization failed."); return; } GST_DETECTED_PIPE_CAPACITY = (long) (*env)->GetLongField(env, pipeline, capacityFID); /* fill the object */ (*env)->GetJavaVM(env, &_pipeline->priv->vm); _pipeline->priv->jni_pipeline = (*env)->NewGlobalRef(env, pipeline); _pipeline->priv->GstPipelineClass = (*env)->NewGlobalRef(env, localGstPipelineClass); _pipeline->priv->PointerClass = (*env)->NewGlobalRef(env, localPointerClass); _pipeline->priv->pipeline = NULL; _pointer = (*env)->GetObjectField(env, pipeline, pipelineFID); if (_pointer == NULL) { #if SIZEOF_VOID_P == 8 _pointer = (*env)->NewObject(env, _pipeline->priv->PointerClass, pointerConstructorMID, (jlong) _pipeline); #else _pointer = (*env)->NewObject(env, _pipeline->priv->PointerClass, pointerConstructorMID, (jint) _pipeline); #endif } else { #if SIZEOF_VOID_P == 8 (*env)->SetLongField(env, pipeline, pipelineFID, (jlong) _pipeline); #else (*env)->SetIntField(env, pipeline, pipelineFID, (jint) _pipeline); #endif } /* store back our pointer into the calling class */ (*env)->SetObjectField(env, pipeline, pipelineFID, _pointer); }