Пример #1
0
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 */
}
Пример #2
0
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");
}
Пример #3
0
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 */

}
Пример #4
0
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);
}
Пример #6
0
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);
}