Imported GNU Classpath 0.19 + gcj-import-20051115.

* sources.am: Regenerated.
       * Makefile.in: Likewise.
       * scripts/makemake.tcl: Use glob -nocomplain.

From-SVN: r107049
This commit is contained in:
Mark Wielaard
2005-11-15 23:20:01 +00:00
parent 02e549bfaa
commit 8f523f3a10
1241 changed files with 97711 additions and 25284 deletions
+8 -4
View File
@@ -39,10 +39,8 @@ target_triplet = @target@
subdir = native
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../config/lead-dot.m4 \
$(top_srcdir)/../../config/no-executables.m4 \
$(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/accross.m4 \
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
$(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
@@ -83,10 +81,14 @@ CLASSPATH_MODULE = @CLASSPATH_MODULE@
CP = @CP@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -223,6 +225,7 @@ build_vendor = @build_vendor@
datadir = @datadir@
default_toolkit = @default_toolkit@
exec_prefix = @exec_prefix@
glibjdir = @glibjdir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -236,6 +239,7 @@ libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
nativelibdir = @nativelibdir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
+8 -4
View File
@@ -42,10 +42,8 @@ target_triplet = @target@
subdir = native/fdlibm
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../config/lead-dot.m4 \
$(top_srcdir)/../../config/no-executables.m4 \
$(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/accross.m4 \
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
$(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
@@ -102,10 +100,14 @@ CLASSPATH_MODULE = @CLASSPATH_MODULE@
CP = @CP@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -242,6 +244,7 @@ build_vendor = @build_vendor@
datadir = @datadir@
default_toolkit = @default_toolkit@
exec_prefix = @exec_prefix@
glibjdir = @glibjdir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -255,6 +258,7 @@ libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
nativelibdir = @nativelibdir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -1,4 +1,4 @@
// java-assert.h - Header file holding assertion definitions. -*- c++ -*-
/* java-assert.h - Header file holding assertion definitions. -*- c++ -*- */
/* Copyright (C) 1998, 1999 Free Software Foundation
@@ -11,7 +11,9 @@ details. */
#ifndef __JAVA_ASSERT_H__
#define __JAVA_ASSERT_H__
// This is a libgcj implementation header.
#include <config.h>
/* This is a libgcj implementation header. */
void _Jv_Abort (const char *, const char *, int, const char *)
__attribute__ ((__noreturn__));
+5
View File
@@ -291,7 +291,12 @@ extern double rnd_prod(double, double), rnd_quot(double, double);
#define MAX_BIGNUMS 16
#ifdef Pack_32
#define MAX_BIGNUM_WDS 32
#else
/* Note that this is a workaround for */
#define MAX_BIGNUM_WDS 128
#endif
struct _Jv_Bigint
{
+8 -4
View File
@@ -42,10 +42,8 @@ target_triplet = @target@
subdir = native/jawt
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../config/lead-dot.m4 \
$(top_srcdir)/../../config/no-executables.m4 \
$(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/accross.m4 \
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
$(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
@@ -96,10 +94,14 @@ CLASSPATH_MODULE = @CLASSPATH_MODULE@
CP = @CP@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -236,6 +238,7 @@ build_vendor = @build_vendor@
datadir = @datadir@
default_toolkit = @default_toolkit@
exec_prefix = @exec_prefix@
glibjdir = @glibjdir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -249,6 +252,7 @@ libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
nativelibdir = @nativelibdir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
+2 -2
View File
@@ -176,11 +176,11 @@ static void
static void
(JNICALL _Jv_AWTLock) (JNIEnv* env __attribute__((unused)))
{
classpath_jawt_lock ();
/* FIXME: what is this supposed to do? */
}
static void
(JNICALL _Jv_AWTUnlock) (JNIEnv* env __attribute__((unused)))
{
classpath_jawt_unlock ();
/* FIXME: what is this supposed to do? */
}
+11 -2
View File
@@ -4,6 +4,14 @@ if CREATE_CORE_JNI_LIBRARIES
JNIDIRS = java-io java-lang java-net java-nio java-util
endif
if CREATE_ALSA_LIBRARIES
ALSADIR = midi-alsa
endif
if CREATE_DSSI_LIBRARIES
DSSIDIR = midi-dssi
endif
if CREATE_GTK_PEER_LIBRARIES
GTKDIR = gtk-peer
endif
@@ -16,9 +24,10 @@ if CREATE_XMLJ_LIBRARY
XMLJDIR = xmlj
endif
SUBDIRS = classpath $(JNIDIRS) $(GTKDIR) $(CLASSPATH_QT_PEER_DIR) $(XMLJDIR)
SUBDIRS = classpath $(JNIDIRS) \
$(ALSADIR) $(DSSIDIR) $(GTKDIR) $(CLASSPATH_QT_PEER_DIR) $(XMLJDIR)
DIST_SUBDIRS = classpath java-io java-lang java-net java-nio java-util \
gtk-peer qt-peer xmlj
gtk-peer qt-peer xmlj midi-alsa midi-dssi
all-local:
cd $(top_srcdir) && $(SHELL) ./scripts/check_jni_methods.sh
+14 -6
View File
@@ -39,10 +39,8 @@ target_triplet = @target@
subdir = native/jni
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../config/lead-dot.m4 \
$(top_srcdir)/../../config/no-executables.m4 \
$(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/accross.m4 \
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
$(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
@@ -83,10 +81,14 @@ CLASSPATH_MODULE = @CLASSPATH_MODULE@
CP = @CP@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -223,6 +225,7 @@ build_vendor = @build_vendor@
datadir = @datadir@
default_toolkit = @default_toolkit@
exec_prefix = @exec_prefix@
glibjdir = @glibjdir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -236,6 +239,7 @@ libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
nativelibdir = @nativelibdir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -249,12 +253,16 @@ target_os = @target_os@
target_vendor = @target_vendor@
vm_classes = @vm_classes@
@CREATE_CORE_JNI_LIBRARIES_TRUE@JNIDIRS = java-io java-lang java-net java-nio java-util
@CREATE_ALSA_LIBRARIES_TRUE@ALSADIR = midi-alsa
@CREATE_DSSI_LIBRARIES_TRUE@DSSIDIR = midi-dssi
@CREATE_GTK_PEER_LIBRARIES_TRUE@GTKDIR = gtk-peer
@CREATE_QT_PEER_LIBRARIES_TRUE@CLASSPATH_QT_PEER_DIR = qt-peer
@CREATE_XMLJ_LIBRARY_TRUE@XMLJDIR = xmlj
SUBDIRS = classpath $(JNIDIRS) $(GTKDIR) $(CLASSPATH_QT_PEER_DIR) $(XMLJDIR)
SUBDIRS = classpath $(JNIDIRS) \
$(ALSADIR) $(DSSIDIR) $(GTKDIR) $(CLASSPATH_QT_PEER_DIR) $(XMLJDIR)
DIST_SUBDIRS = classpath java-io java-lang java-net java-nio java-util \
gtk-peer qt-peer xmlj
gtk-peer qt-peer xmlj midi-alsa midi-dssi
all: all-recursive
@@ -5,7 +5,6 @@ noinst_LTLIBRARIES = libclasspath.la
libclasspath_la_SOURCES = jcl.c jcl.h \
jnilink.c jnilink.h \
primlib.c primlib.h \
native_state.c native_state.h
AM_LDFLAGS = @CLASSPATH_MODULE@
@@ -42,10 +42,8 @@ target_triplet = @target@
subdir = native/jni/classpath
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../config/lead-dot.m4 \
$(top_srcdir)/../../config/no-executables.m4 \
$(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/accross.m4 \
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
$(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
@@ -57,8 +55,7 @@ CONFIG_HEADER = $(top_builddir)/include/config.h
CONFIG_CLEAN_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
libclasspath_la_LIBADD =
am_libclasspath_la_OBJECTS = jcl.lo jnilink.lo primlib.lo \
native_state.lo
am_libclasspath_la_OBJECTS = jcl.lo jnilink.lo native_state.lo
libclasspath_la_OBJECTS = $(am_libclasspath_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
depcomp = $(SHELL) $(top_srcdir)/depcomp
@@ -96,10 +93,14 @@ CLASSPATH_MODULE = @CLASSPATH_MODULE@
CP = @CP@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -236,6 +237,7 @@ build_vendor = @build_vendor@
datadir = @datadir@
default_toolkit = @default_toolkit@
exec_prefix = @exec_prefix@
glibjdir = @glibjdir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -249,6 +251,7 @@ libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
nativelibdir = @nativelibdir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -267,7 +270,6 @@ EXTRA_DIST = classpath_jawt.h
noinst_LTLIBRARIES = libclasspath.la
libclasspath_la_SOURCES = jcl.c jcl.h \
jnilink.c jnilink.h \
primlib.c primlib.h \
native_state.c native_state.h
AM_LDFLAGS = @CLASSPATH_MODULE@
@@ -327,7 +329,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jcl.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jnilink.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/native_state.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/primlib.Plo@am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+9 -7
View File
@@ -1,5 +1,5 @@
/* jcl.c
Copyright (C) 1998 Free Software Foundation, Inc.
Copyright (C) 1998, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -193,7 +193,8 @@ JCL_NewRawDataObject (JNIEnv * env, void *data)
{
if (rawDataClass == NULL)
{
#ifdef POINTERS_ARE_64BIT
jclass tmp;
#if SIZEOF_VOID_P == 8
rawDataClass = (*env)->FindClass (env, "gnu/classpath/Pointer64");
if (rawDataClass == NULL)
{
@@ -243,17 +244,18 @@ JCL_NewRawDataObject (JNIEnv * env, void *data)
}
#endif
(*env)->DeleteLocalRef(env, rawDataClass);
rawDataClass = (*env)->NewGlobalRef (env, rawDataClass);
if (rawDataClass == NULL)
tmp = (*env)->NewGlobalRef (env, rawDataClass);
if (tmp == NULL)
{
JCL_ThrowException (env, "java/lang/InternalError",
"unable to create an internal global ref");
return NULL;
}
(*env)->DeleteLocalRef(env, rawDataClass);
rawDataClass = tmp;
}
#ifdef POINTERS_ARE_64BIT
#if SIZEOF_VOID_P == 8
return (*env)->NewObject (env, rawDataClass, rawData_mid, (jlong) data);
#else
return (*env)->NewObject (env, rawDataClass, rawData_mid, (jint) data);
@@ -263,7 +265,7 @@ JCL_NewRawDataObject (JNIEnv * env, void *data)
JNIEXPORT void * JNICALL
JCL_GetRawData (JNIEnv * env, jobject rawdata)
{
#ifdef POINTERS_ARE_64BIT
#if SIZEOF_VOID_P == 8
return (void *) (*env)->GetLongField (env, rawdata, rawData_fid);
#else
return (void *) (*env)->GetIntField (env, rawdata, rawData_fid);
@@ -1,724 +0,0 @@
/* primlib.c
Copyright (C) 1998 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
#include <jnilink.h>
#include <primlib.h>
#include <jcl.h>
static jclass nativeWrapClass[PRIMLIB_NUMTYPES] =
{ NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL
};
static jclass nativeTypeClass[PRIMLIB_NUMTYPES] =
{ NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL
};
static jmethodID nativeWrapClassConstructor[PRIMLIB_NUMTYPES] =
{ NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL
};
static jmethodID nativeWrapClassAccessor[PRIMLIB_NUMTYPES] =
{ NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL
};
static const char *nativeWrapClassName[PRIMLIB_NUMTYPES] = {
NULL,
NULL,
"java/lang/Boolean",
"java/lang/Byte",
"java/lang/Character",
"java/lang/Short",
"java/lang/Integer",
"java/lang/Long",
"java/lang/Float",
"java/lang/Double",
"java/lang/Void",
NULL
};
static const char *nativeWrapClassConstructorSig[PRIMLIB_NUMTYPES] = {
NULL,
NULL,
"(Z)V",
"(B)V",
"(C)V",
"(S)V",
"(I)V",
"(J)V",
"(F)V",
"(D)V",
"()V",
NULL
};
static const char *nativeWrapClassAccessorName[PRIMLIB_NUMTYPES] = {
NULL,
NULL,
"booleanValue",
"byteValue",
"charValue",
"shortValue",
"intValue",
"longValue",
"floatValue",
"doubleValue",
NULL,
NULL
};
static const char *nativeWrapClassAccessorSig[PRIMLIB_NUMTYPES] = {
NULL,
NULL,
"()Z",
"()B",
"()C",
"()S",
"()I",
"()J",
"()F",
"()D",
NULL,
NULL
};
JNIEXPORT jclass JNICALL
PRIMLIB_GetNativeWrapClass (JNIEnv * env, int reflectType)
{
return LINK_LinkClass (env, nativeWrapClass[reflectType],
nativeWrapClassName[reflectType]);
}
static jclass
ActuallyGetNativeTypeClass (JNIEnv * env, int reflectType)
{
jclass wrapClass;
jfieldID typeField;
wrapClass = PRIMLIB_GetNativeWrapClass (env, reflectType);
if (wrapClass == NULL)
return NULL;
typeField =
(*env)->GetStaticFieldID (env, wrapClass, "TYPE", "Ljava/lang/Class");
if (typeField == NULL)
return NULL;
return (*env)->GetStaticObjectField (env, wrapClass, typeField);
}
JNIEXPORT jclass JNICALL
PRIMLIB_GetNativeTypeClass (JNIEnv * env, int reflectType)
{
return LINK_LinkKnownClass (env, nativeTypeClass[reflectType],
ActuallyGetNativeTypeClass (env, reflectType));
}
JNIEXPORT jmethodID JNICALL
PRIMLIB_GetNativeWrapClassConstructor (JNIEnv * env, int reflectType)
{
PRIMLIB_GetNativeWrapClass (env, reflectType);
return LINK_LinkConstructor (env, nativeWrapClassConstructor[reflectType],
nativeWrapClass[reflectType],
nativeWrapClassConstructorSig[reflectType]);
}
JNIEXPORT jmethodID JNICALL
PRIMLIB_GetNativeWrapClassAccessor (JNIEnv * env, int reflectType)
{
PRIMLIB_GetNativeWrapClass (env, reflectType);
return LINK_LinkMethod (env, nativeWrapClassAccessor[reflectType],
nativeWrapClass[reflectType],
nativeWrapClassAccessorName[reflectType],
nativeWrapClassAccessorSig[reflectType]);
}
JNIEXPORT jobject JNICALL
PRIMLIB_WrapBoolean (JNIEnv * env, jboolean b)
{
jmethodID construct =
PRIMLIB_GetNativeWrapClassConstructor (env, PRIMLIB_BOOLEAN);
JCL_RETHROW_EXCEPTION (env);
return (*env)->NewObject (env,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_BOOLEAN),
construct, b);
}
JNIEXPORT jobject JNICALL
PRIMLIB_WrapByte (JNIEnv * env, jbyte b)
{
jmethodID construct =
PRIMLIB_GetNativeWrapClassConstructor (env, PRIMLIB_BYTE);
JCL_RETHROW_EXCEPTION (env);
return (*env)->NewObject (env,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_BYTE),
construct, b);
}
JNIEXPORT jobject JNICALL
PRIMLIB_WrapChar (JNIEnv * env, jchar c)
{
jmethodID construct =
PRIMLIB_GetNativeWrapClassConstructor (env, PRIMLIB_CHAR);
JCL_RETHROW_EXCEPTION (env);
return (*env)->NewObject (env,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_CHAR),
construct, c);
}
JNIEXPORT jobject JNICALL
PRIMLIB_WrapShort (JNIEnv * env, jshort s)
{
jmethodID construct =
PRIMLIB_GetNativeWrapClassConstructor (env, PRIMLIB_SHORT);
JCL_RETHROW_EXCEPTION (env);
return (*env)->NewObject (env,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_SHORT),
construct, s);
}
JNIEXPORT jobject JNICALL
PRIMLIB_WrapInt (JNIEnv * env, jint i)
{
jmethodID construct =
PRIMLIB_GetNativeWrapClassConstructor (env, PRIMLIB_INT);
JCL_RETHROW_EXCEPTION (env);
return (*env)->NewObject (env,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_INT),
construct, i);
}
JNIEXPORT jobject JNICALL
PRIMLIB_WrapLong (JNIEnv * env, jlong l)
{
jmethodID construct =
PRIMLIB_GetNativeWrapClassConstructor (env, PRIMLIB_LONG);
JCL_RETHROW_EXCEPTION (env);
return (*env)->NewObject (env,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_LONG),
construct, l);
}
JNIEXPORT jobject JNICALL
PRIMLIB_WrapFloat (JNIEnv * env, jfloat f)
{
jmethodID construct =
PRIMLIB_GetNativeWrapClassConstructor (env, PRIMLIB_FLOAT);
JCL_RETHROW_EXCEPTION (env);
return (*env)->NewObject (env,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_FLOAT),
construct, f);
}
JNIEXPORT jobject JNICALL
PRIMLIB_WrapDouble (JNIEnv * env, jdouble d)
{
jmethodID construct =
PRIMLIB_GetNativeWrapClassConstructor (env, PRIMLIB_DOUBLE);
JCL_RETHROW_EXCEPTION (env);
return (*env)->NewObject (env,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_DOUBLE),
construct, d);
}
JNIEXPORT jboolean JNICALL
PRIMLIB_UnwrapBoolean (JNIEnv * env, jobject obj)
{
if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_BOOLEAN)))
{
return PRIMLIB_GetBooleanObjectValue (env, obj);
}
else
{
JCL_ThrowException (env, "java/lang/IllegalArgumentException",
"Argument not of correct type.");
return JNI_FALSE;
}
}
JNIEXPORT jbyte JNICALL
PRIMLIB_UnwrapByte (JNIEnv * env, jobject obj)
{
if ((*env)->
IsInstanceOf (env, obj, PRIMLIB_GetNativeWrapClass (env, PRIMLIB_BYTE)))
{
return PRIMLIB_GetByteObjectValue (env, obj);
}
else
{
JCL_ThrowException (env, "java/lang/IllegalArgumentException",
"Argument not of correct type.");
return 0;
}
}
JNIEXPORT jshort JNICALL
PRIMLIB_UnwrapShort (JNIEnv * env, jobject obj)
{
if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_SHORT)))
{
return PRIMLIB_GetShortObjectValue (env, obj);
}
else if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_BYTE)))
{
return (jshort) PRIMLIB_GetByteObjectValue (env, obj);
}
else
{
JCL_ThrowException (env, "java/lang/IllegalArgumentException",
"Argument not of correct type.");
return 0;
}
}
JNIEXPORT jchar JNICALL
PRIMLIB_UnwrapChar (JNIEnv * env, jobject obj)
{
if ((*env)->
IsInstanceOf (env, obj, PRIMLIB_GetNativeWrapClass (env, PRIMLIB_CHAR)))
{
return PRIMLIB_GetCharObjectValue (env, obj);
}
else
{
JCL_ThrowException (env, "java/lang/IllegalArgumentException",
"Argument not of correct type.");
return 0;
}
}
JNIEXPORT jint JNICALL
PRIMLIB_UnwrapInt (JNIEnv * env, jobject obj)
{
if ((*env)->
IsInstanceOf (env, obj, PRIMLIB_GetNativeWrapClass (env, PRIMLIB_INT)))
{
return PRIMLIB_GetIntObjectValue (env, obj);
}
else if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_SHORT)))
{
return (jint) PRIMLIB_GetShortObjectValue (env, obj);
}
else if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_CHAR)))
{
return (jint) PRIMLIB_GetCharObjectValue (env, obj);
}
else if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_BYTE)))
{
return (jint) PRIMLIB_GetByteObjectValue (env, obj);
}
else
{
JCL_ThrowException (env, "java/lang/IllegalArgumentException",
"Argument not of correct type.");
return 0;
}
}
JNIEXPORT jlong JNICALL
PRIMLIB_UnwrapLong (JNIEnv * env, jobject obj)
{
if ((*env)->
IsInstanceOf (env, obj, PRIMLIB_GetNativeWrapClass (env, PRIMLIB_LONG)))
{
return PRIMLIB_GetLongObjectValue (env, obj);
}
else if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_INT)))
{
return (jlong) PRIMLIB_GetIntObjectValue (env, obj);
}
else if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_SHORT)))
{
return (jlong) PRIMLIB_GetShortObjectValue (env, obj);
}
else if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_CHAR)))
{
return (jlong) PRIMLIB_GetCharObjectValue (env, obj);
}
else if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_BYTE)))
{
return (jlong) PRIMLIB_GetByteObjectValue (env, obj);
}
else
{
JCL_ThrowException (env, "java/lang/IllegalArgumentException",
"Argument not of correct type.");
return 0;
}
}
JNIEXPORT jfloat JNICALL
PRIMLIB_UnwrapFloat (JNIEnv * env, jobject obj)
{
if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_FLOAT)))
{
return PRIMLIB_GetFloatObjectValue (env, obj);
}
else if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_LONG)))
{
return (jfloat) PRIMLIB_GetLongObjectValue (env, obj);
}
else if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_INT)))
{
return (jfloat) PRIMLIB_GetIntObjectValue (env, obj);
}
else if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_SHORT)))
{
return (jfloat) PRIMLIB_GetShortObjectValue (env, obj);
}
else if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_CHAR)))
{
return (jfloat) PRIMLIB_GetCharObjectValue (env, obj);
}
else if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_BYTE)))
{
return (jfloat) PRIMLIB_GetByteObjectValue (env, obj);
}
else
{
JCL_ThrowException (env, "java/lang/IllegalArgumentException",
"Argument not of correct type.");
return 0;
}
}
JNIEXPORT jdouble JNICALL
PRIMLIB_UnwrapDouble (JNIEnv * env, jobject obj)
{
if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_DOUBLE)))
{
return PRIMLIB_GetDoubleObjectValue (env, obj);
}
else if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_FLOAT)))
{
return (jdouble) PRIMLIB_GetFloatObjectValue (env, obj);
}
else if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_LONG)))
{
return (jdouble) PRIMLIB_GetLongObjectValue (env, obj);
}
else if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_INT)))
{
return (jdouble) PRIMLIB_GetIntObjectValue (env, obj);
}
else if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_SHORT)))
{
return (jdouble) PRIMLIB_GetShortObjectValue (env, obj);
}
else if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_CHAR)))
{
return (jdouble) PRIMLIB_GetCharObjectValue (env, obj);
}
else if ((*env)->
IsInstanceOf (env, obj,
PRIMLIB_GetNativeWrapClass (env, PRIMLIB_BYTE)))
{
return (jdouble) PRIMLIB_GetByteObjectValue (env, obj);
}
else
{
JCL_ThrowException (env, "java/lang/IllegalArgumentException",
"Argument not of correct type.");
return 0;
}
}
JNIEXPORT jint JNICALL
PRIMLIB_GetReflectiveWrapperType (JNIEnv * env, jobject obj)
{
jclass typeClass;
if (obj == NULL)
{
return PRIMLIB_NULL;
}
typeClass = PRIMLIB_GetNativeWrapClass (env, PRIMLIB_DOUBLE);
if ((*env)->IsInstanceOf (env, obj, typeClass))
{
return PRIMLIB_DOUBLE;
}
typeClass = PRIMLIB_GetNativeWrapClass (env, PRIMLIB_FLOAT);
if ((*env)->IsInstanceOf (env, obj, typeClass))
{
return PRIMLIB_FLOAT;
}
typeClass = PRIMLIB_GetNativeWrapClass (env, PRIMLIB_LONG);
if ((*env)->IsInstanceOf (env, obj, typeClass))
{
return PRIMLIB_LONG;
}
typeClass = PRIMLIB_GetNativeWrapClass (env, PRIMLIB_INT);
if ((*env)->IsInstanceOf (env, obj, typeClass))
{
return PRIMLIB_INT;
}
typeClass = PRIMLIB_GetNativeWrapClass (env, PRIMLIB_CHAR);
if ((*env)->IsInstanceOf (env, obj, typeClass))
{
return PRIMLIB_CHAR;
}
typeClass = PRIMLIB_GetNativeWrapClass (env, PRIMLIB_SHORT);
if ((*env)->IsInstanceOf (env, obj, typeClass))
{
return PRIMLIB_SHORT;
}
typeClass = PRIMLIB_GetNativeWrapClass (env, PRIMLIB_BYTE);
if ((*env)->IsInstanceOf (env, obj, typeClass))
{
return PRIMLIB_BYTE;
}
typeClass = PRIMLIB_GetNativeWrapClass (env, PRIMLIB_BOOLEAN);
if ((*env)->IsInstanceOf (env, obj, typeClass))
{
return PRIMLIB_BOOLEAN;
}
typeClass = PRIMLIB_GetNativeWrapClass (env, PRIMLIB_VOID);
if ((*env)->IsInstanceOf (env, obj, typeClass))
{
return PRIMLIB_VOID;
}
return PRIMLIB_OBJECT;
}
JNIEXPORT jint JNICALL
PRIMLIB_GetReflectiveType (JNIEnv * env, jclass returnType)
{
jclass typeClass = PRIMLIB_GetNativeTypeClass (env, PRIMLIB_DOUBLE);
if ((*env)->IsAssignableFrom (env, returnType, typeClass))
{
return PRIMLIB_DOUBLE;
}
typeClass = PRIMLIB_GetNativeTypeClass (env, PRIMLIB_FLOAT);
if ((*env)->IsAssignableFrom (env, returnType, typeClass))
{
return PRIMLIB_FLOAT;
}
typeClass = PRIMLIB_GetNativeTypeClass (env, PRIMLIB_LONG);
if ((*env)->IsAssignableFrom (env, returnType, typeClass))
{
return PRIMLIB_LONG;
}
typeClass = PRIMLIB_GetNativeTypeClass (env, PRIMLIB_INT);
if ((*env)->IsAssignableFrom (env, returnType, typeClass))
{
return PRIMLIB_INT;
}
typeClass = PRIMLIB_GetNativeTypeClass (env, PRIMLIB_CHAR);
if ((*env)->IsAssignableFrom (env, returnType, typeClass))
{
return PRIMLIB_CHAR;
}
typeClass = PRIMLIB_GetNativeTypeClass (env, PRIMLIB_SHORT);
if ((*env)->IsAssignableFrom (env, returnType, typeClass))
{
return PRIMLIB_SHORT;
}
typeClass = PRIMLIB_GetNativeTypeClass (env, PRIMLIB_BYTE);
if ((*env)->IsAssignableFrom (env, returnType, typeClass))
{
return PRIMLIB_BYTE;
}
typeClass = PRIMLIB_GetNativeTypeClass (env, PRIMLIB_BOOLEAN);
if ((*env)->IsAssignableFrom (env, returnType, typeClass))
{
return PRIMLIB_BOOLEAN;
}
typeClass = PRIMLIB_GetNativeTypeClass (env, PRIMLIB_VOID);
if ((*env)->IsAssignableFrom (env, returnType, typeClass))
{
return PRIMLIB_VOID;
}
return PRIMLIB_OBJECT;
}
JNIEXPORT jboolean JNICALL
PRIMLIB_GetBooleanObjectValue (JNIEnv * env, jobject obj)
{
jmethodID acc = PRIMLIB_GetNativeWrapClassAccessor (env, PRIMLIB_BOOLEAN);
return (*env)->CallBooleanMethod (env, obj, acc);
}
JNIEXPORT jbyte JNICALL
PRIMLIB_GetByteObjectValue (JNIEnv * env, jobject obj)
{
jmethodID acc = PRIMLIB_GetNativeWrapClassAccessor (env, PRIMLIB_BYTE);
return (*env)->CallByteMethod (env, obj, acc);
}
JNIEXPORT jshort JNICALL
PRIMLIB_GetShortObjectValue (JNIEnv * env, jobject obj)
{
jmethodID acc = PRIMLIB_GetNativeWrapClassAccessor (env, PRIMLIB_SHORT);
return (*env)->CallShortMethod (env, obj, acc);
}
JNIEXPORT jchar JNICALL
PRIMLIB_GetCharObjectValue (JNIEnv * env, jobject obj)
{
jmethodID acc = PRIMLIB_GetNativeWrapClassAccessor (env, PRIMLIB_CHAR);
return (*env)->CallCharMethod (env, obj, acc);
}
JNIEXPORT jint JNICALL
PRIMLIB_GetIntObjectValue (JNIEnv * env, jobject obj)
{
jmethodID acc = PRIMLIB_GetNativeWrapClassAccessor (env, PRIMLIB_INT);
return (*env)->CallIntMethod (env, obj, acc);
}
JNIEXPORT jlong JNICALL
PRIMLIB_GetLongObjectValue (JNIEnv * env, jobject obj)
{
jmethodID acc = PRIMLIB_GetNativeWrapClassAccessor (env, PRIMLIB_LONG);
return (*env)->CallLongMethod (env, obj, acc);
}
JNIEXPORT jfloat JNICALL
PRIMLIB_GetFloatObjectValue (JNIEnv * env, jobject obj)
{
jmethodID acc = PRIMLIB_GetNativeWrapClassAccessor (env, PRIMLIB_FLOAT);
return (*env)->CallFloatMethod (env, obj, acc);
}
JNIEXPORT jdouble JNICALL
PRIMLIB_GetDoubleObjectValue (JNIEnv * env, jobject obj)
{
jmethodID acc = PRIMLIB_GetNativeWrapClassAccessor (env, PRIMLIB_DOUBLE);
return (*env)->CallDoubleMethod (env, obj, acc);
}
JNIEXPORT jvalue JNICALL
PRIMLIB_UnwrapJValue (JNIEnv * env, jobject obj, jclass classType)
{
jvalue retval;
jint objType = PRIMLIB_GetReflectiveType (env, classType);
if (objType == PRIMLIB_BOOLEAN)
{
retval.z = PRIMLIB_UnwrapBoolean (env, obj);
}
else if (objType == PRIMLIB_BYTE)
{
retval.b = PRIMLIB_UnwrapByte (env, obj);
}
else if (objType == PRIMLIB_CHAR)
{
retval.c = PRIMLIB_UnwrapChar (env, obj);
}
else if (objType == PRIMLIB_SHORT)
{
retval.s = PRIMLIB_UnwrapShort (env, obj);
}
else if (objType == PRIMLIB_INT)
{
retval.i = PRIMLIB_UnwrapInt (env, obj);
}
else if (objType == PRIMLIB_LONG)
{
retval.j = PRIMLIB_UnwrapLong (env, obj);
}
else if (objType == PRIMLIB_FLOAT)
{
retval.f = PRIMLIB_UnwrapFloat (env, obj);
}
else if (objType == PRIMLIB_DOUBLE)
{
retval.d = PRIMLIB_UnwrapDouble (env, obj);
}
else
{
if (obj != NULL && !(*env)->IsInstanceOf (env, obj, classType))
{
JCL_ThrowException (env, "java/lang/IllegalArgumentException",
"Argument not of correct object type.");
return retval;
}
retval.l = obj;
}
return retval;
}
@@ -1,119 +0,0 @@
/* primlib.h
Copyright (C) 1998 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
#ifndef __PRIMLIB_H__
#define __PRIMLIB_H__
#include <jni.h>
#define PRIMLIB_UNKNOWN 0
#define PRIMLIB_OBJECT 1
#define PRIMLIB_BOOLEAN 2
#define PRIMLIB_BYTE 3
#define PRIMLIB_CHAR 4
#define PRIMLIB_SHORT 5
#define PRIMLIB_INT 6
#define PRIMLIB_LONG 7
#define PRIMLIB_FLOAT 8
#define PRIMLIB_DOUBLE 9
#define PRIMLIB_VOID 10
#define PRIMLIB_NULL 11
#define PRIMLIB_NUMTYPES 12
/* Low-level primitive class accessor functions. */
JNIEXPORT jclass JNICALL PRIMLIB_GetNativeWrapClass (JNIEnv * env,
int reflectType);
JNIEXPORT jclass JNICALL PRIMLIB_GetNativeTypeClass (JNIEnv * env,
int reflectType);
JNIEXPORT jmethodID JNICALL PRIMLIB_GetNativeWrapClassConstructor (JNIEnv *
env,
int
reflectType);
JNIEXPORT jmethodID JNICALL PRIMLIB_GetNativeWrapClassAccessor (JNIEnv * env,
int
reflectType);
/* Type discovery functions: WrapperType finds out j.l.Boolean/Byte/etc., and
Type finds out j.l.Boolean.TYPE, etc.
*/
JNIEXPORT jint JNICALL PRIMLIB_GetReflectiveWrapperType (JNIEnv * env,
jobject obj);
JNIEXPORT jint JNICALL PRIMLIB_GetReflectiveType (JNIEnv * env,
jclass returnType);
/* Constructor functions. */
JNIEXPORT jobject JNICALL PRIMLIB_WrapBoolean (JNIEnv * env, jboolean b);
JNIEXPORT jobject JNICALL PRIMLIB_WrapByte (JNIEnv * env, jbyte b);
JNIEXPORT jobject JNICALL PRIMLIB_WrapChar (JNIEnv * env, jchar c);
JNIEXPORT jobject JNICALL PRIMLIB_WrapShort (JNIEnv * env, jshort s);
JNIEXPORT jobject JNICALL PRIMLIB_WrapInt (JNIEnv * env, jint i);
JNIEXPORT jobject JNICALL PRIMLIB_WrapLong (JNIEnv * env, jlong l);
JNIEXPORT jobject JNICALL PRIMLIB_WrapFloat (JNIEnv * env, jfloat f);
JNIEXPORT jobject JNICALL PRIMLIB_WrapDouble (JNIEnv * env, jdouble d);
/* Widening conversion unwrapping functions. */
JNIEXPORT jboolean JNICALL PRIMLIB_UnwrapBoolean (JNIEnv * env, jobject obj);
JNIEXPORT jbyte JNICALL PRIMLIB_UnwrapByte (JNIEnv * env, jobject obj);
JNIEXPORT jshort JNICALL PRIMLIB_UnwrapShort (JNIEnv * env, jobject obj);
JNIEXPORT jchar JNICALL PRIMLIB_UnwrapChar (JNIEnv * env, jobject obj);
JNIEXPORT jint JNICALL PRIMLIB_UnwrapInt (JNIEnv * env, jobject obj);
JNIEXPORT jlong JNICALL PRIMLIB_UnwrapLong (JNIEnv * env, jobject obj);
JNIEXPORT jfloat JNICALL PRIMLIB_UnwrapFloat (JNIEnv * env, jobject obj);
JNIEXPORT jdouble JNICALL PRIMLIB_UnwrapDouble (JNIEnv * env, jobject obj);
/* Simple unwrapping functions. Objects *must* be of correct type. */
JNIEXPORT jboolean JNICALL PRIMLIB_GetBooleanObjectValue (JNIEnv * env,
jobject obj);
JNIEXPORT jbyte JNICALL PRIMLIB_GetByteObjectValue (JNIEnv * env,
jobject obj);
JNIEXPORT jshort JNICALL PRIMLIB_GetShortObjectValue (JNIEnv * env,
jobject obj);
JNIEXPORT jchar JNICALL PRIMLIB_GetCharObjectValue (JNIEnv * env,
jobject obj);
JNIEXPORT jint JNICALL PRIMLIB_GetIntObjectValue (JNIEnv * env, jobject obj);
JNIEXPORT jlong JNICALL PRIMLIB_GetLongObjectValue (JNIEnv * env,
jobject obj);
JNIEXPORT jfloat JNICALL PRIMLIB_GetFloatObjectValue (JNIEnv * env,
jobject obj);
JNIEXPORT jdouble JNICALL PRIMLIB_GetDoubleObjectValue (JNIEnv * env,
jobject obj);
/* jvalue conversion: Unwrap obj to the type of classType, with widening conversion. */
JNIEXPORT jvalue JNICALL PRIMLIB_UnwrapJValue (JNIEnv * env, jobject obj,
jclass classType);
#endif
@@ -55,10 +55,12 @@ libgtkpeer_la_SOURCES = $(gtk_cairo_c_source_files) \
libgtkpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/native_state.lo \
$(top_builddir)/native/jni/classpath/jcl.lo
AM_LDFLAGS = @CLASSPATH_MODULE@ @GTK_LIBS@ @CAIRO_LIBS@ @PANGOFT2_LIBS@ @X_LIBS@ -lXtst
AM_LDFLAGS = @CLASSPATH_MODULE@ @GTK_LIBS@ @CAIRO_LIBS@ @PANGOFT2_LIBS@ \
@X_PRE_LIBS@ @X_LIBS@ @X_EXTRA_LIBS@ -lX11 -lXtst
AM_CPPFLAGS = @CLASSPATH_INCLUDES@
# Just the WARNING_CFLAGS. We cannot use the strict flags since the gtk
# headers contain broken prototypes (by design, see gtkitemfactory.h).
AM_CFLAGS = @WARNING_CFLAGS@ @ERROR_CFLAGS@ \
@GTK_CFLAGS@ @CAIRO_CFLAGS@ @PANGOFT2_CFLAGS@
@GTK_CFLAGS@ @CAIRO_CFLAGS@ @PANGOFT2_CFLAGS@ \
@X_CFLAGS@
@@ -42,10 +42,8 @@ target_triplet = @target@
subdir = native/jni/gtk-peer
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../config/lead-dot.m4 \
$(top_srcdir)/../../config/no-executables.m4 \
$(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/accross.m4 \
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
$(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
@@ -173,10 +171,14 @@ CLASSPATH_MODULE = @CLASSPATH_MODULE@
CP = @CP@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -313,6 +315,7 @@ build_vendor = @build_vendor@
datadir = @datadir@
default_toolkit = @default_toolkit@
exec_prefix = @exec_prefix@
glibjdir = @glibjdir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -326,6 +329,7 @@ libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
nativelibdir = @nativelibdir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -391,13 +395,16 @@ libgtkpeer_la_SOURCES = $(gtk_cairo_c_source_files) \
libgtkpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/native_state.lo \
$(top_builddir)/native/jni/classpath/jcl.lo
AM_LDFLAGS = @CLASSPATH_MODULE@ @GTK_LIBS@ @CAIRO_LIBS@ @PANGOFT2_LIBS@ @X_LIBS@ -lXtst
AM_LDFLAGS = @CLASSPATH_MODULE@ @GTK_LIBS@ @CAIRO_LIBS@ @PANGOFT2_LIBS@ \
@X_PRE_LIBS@ @X_LIBS@ @X_EXTRA_LIBS@ -lX11 -lXtst
AM_CPPFLAGS = @CLASSPATH_INCLUDES@
# Just the WARNING_CFLAGS. We cannot use the strict flags since the gtk
# headers contain broken prototypes (by design, see gtkitemfactory.h).
AM_CFLAGS = @WARNING_CFLAGS@ @ERROR_CFLAGS@ \
@GTK_CFLAGS@ @CAIRO_CFLAGS@ @PANGOFT2_CFLAGS@
@GTK_CFLAGS@ @CAIRO_CFLAGS@ @PANGOFT2_CFLAGS@ \
@X_CFLAGS@
all: all-am
@@ -65,6 +65,9 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_initStaticState
glyphVector_class = (*env)->FindClass
(env, "gnu/java/awt/peer/gtk/GdkGlyphVector");
glyphVector_class = (*env)->NewGlobalRef
(env, glyphVector_class);
glyphVector_ctor = (*env)->GetMethodID
(env, glyphVector_class, "<init>",
"([D[ILjava/awt/Font;Ljava/awt/font/FontRenderContext;)V");
@@ -98,7 +101,7 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_dispose
pfont = (struct peerfont *)NSA_DEL_FONT_PTR (env, self);
g_assert (pfont != NULL);
if (pfont->layout != NULL)
g_object_unref (pfont->font);
g_object_unref (pfont->layout);
if (pfont->font != NULL)
g_object_unref (pfont->font);
if (pfont->ctx != NULL)
@@ -116,11 +116,11 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_copyState
gdk_gc_copy (g->gc, g_old->gc);
if (GDK_STABLE_IS_PIXMAP (g->drawable))
gdk_pixmap_ref (g->drawable);
g_object_ref (g->drawable);
else /* GDK_IS_WINDOW (g->drawable) */
gdk_window_ref (g->drawable);
g_object_ref (g->drawable);
gdk_colormap_ref (g->cm);
g_object_ref (g->cm);
NSA_SET_G_PTR (env, obj, g);
@@ -140,8 +140,8 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_initState__II
g->drawable = (GdkDrawable *) gdk_pixmap_new (NULL, width, height,
gdk_rgb_get_visual ()->depth);
g->cm = gdk_rgb_get_cmap ();
gdk_colormap_ref (g->cm);
g->cm = gdk_rgb_get_colormap ();
g_object_ref (g->cm);
g->gc = gdk_gc_new (g->drawable);
NSA_SET_G_PTR (env, obj, g);
@@ -160,7 +160,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_initFromImage
pixmap = cp_gtk_image_get_pixmap (env, source);
g_assert(pixmap != NULL);
gdk_pixmap_ref (pixmap);
g_object_ref (pixmap);
g = (struct graphics *) g_malloc (sizeof (struct graphics));
g->x_offset = g->y_offset = 0;
@@ -168,7 +168,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_initFromImage
g->drawable = (GdkDrawable *)pixmap;
g->cm = gdk_drawable_get_colormap (g->drawable);
gdk_colormap_ref (g->cm);
g_object_ref (g->cm);
g->gc = gdk_gc_new (g->drawable);
NSA_SET_G_PTR (env, obj, g);
@@ -193,9 +193,9 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_initStateUnlocked
widget = GTK_WIDGET (ptr);
g->drawable = (GdkDrawable *) widget->window;
gdk_window_ref (g->drawable);
g_object_ref (g->drawable);
g->cm = gtk_widget_get_colormap (widget);
gdk_colormap_ref (g->cm);
g_object_ref (g->cm);
g->gc = gdk_gc_new (g->drawable);
gdk_gc_copy (g->gc, widget->style->fg_gc[GTK_STATE_NORMAL]);
color = widget->style->fg[GTK_STATE_NORMAL];
@@ -254,14 +254,14 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_dispose
XFlush (GDK_DISPLAY ());
gdk_gc_destroy (g->gc);
g_object_unref (g->gc);
if (GDK_STABLE_IS_PIXMAP (g->drawable))
gdk_pixmap_unref (g->drawable);
g_object_unref (g->drawable);
else /* GDK_IS_WINDOW (g->drawable) */
gdk_window_unref (g->drawable);
g_object_unref (g->drawable);
gdk_colormap_unref (g->cm);
g_object_unref (g->cm);
g_free (g);
@@ -388,12 +388,12 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_copyArea
g = (struct graphics *) NSA_GET_G_PTR (env, obj);
gdk_window_copy_area ((GdkWindow *)g->drawable,
g->gc,
x + g->x_offset + dx, y + g->y_offset + dy,
(GdkWindow *)g->drawable,
x + g->x_offset, y + g->y_offset,
width, height);
gdk_draw_drawable ((GdkWindow *)g->drawable,
g->gc,
(GdkWindow *)g->drawable,
x + g->x_offset, y + g->y_offset,
x + g->x_offset + dx, y + g->y_offset + dy,
width, height);
gdk_flush ();
gdk_threads_leave ();
@@ -471,8 +471,8 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_setFGColor
color.blue = blue << 8;
g = (struct graphics *) NSA_GET_G_PTR (env, obj);
gdk_color_alloc (g->cm, &color);
gdk_colormap_alloc_color (g->cm, &color, TRUE, TRUE);
gdk_gc_set_foreground (g->gc, &color);
gdk_threads_leave ();
@@ -58,9 +58,12 @@ void
cp_gtk_graphics2d_init_jni (void)
{
jclass gdkgraphics2d;
JNIEnv *env = cp_gtk_gdk_env();
gdkgraphics2d = (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(),
"gnu/java/awt/peer/gtk/GdkGraphics2D");
gdkgraphics2d = (*env)->FindClass (env,
"gnu/java/awt/peer/gtk/GdkGraphics2D");
if ((*env)->ExceptionOccurred(env))
return;
initComponentGraphics2DUnlockedID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gdkgraphics2d,
"initComponentGraphics2DUnlocked",
@@ -777,12 +780,13 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_setGradientUnlocked
if (peer_is_disposed(env, obj))
return;
if (gr->debug) printf ("setGradient (%f,%f) -> (%f,%f); (%d,%d,%d,%d) -> (%d,%d,%d,%d)\n",
x1, y1,
x2, y2,
r1, g1, b1, a1,
r2, g2, b2, a2);
if (gr->debug)
printf ("setGradientUnlocked (%f,%f) -> (%f,%f); (%d,%d,%d,%d) -> (%d,%d,%d,%d)\n",
x1, y1,
x2, y2,
r1, g1, b1, a1,
r2, g2, b2, a2);
if (cyclic)
surf = cairo_surface_create_similar (gr->surface, CAIRO_FORMAT_ARGB32, 3, 2);
else
@@ -903,8 +907,9 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_setTexturePixelsUnlocked
gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj);
g_assert (gr != NULL);
if (gr->debug) printf ("setTexturePixels (%d pixels, %dx%d, stride: %d)\n",
(*env)->GetArrayLength (env, jarr), w, h, stride);
if (gr->debug)
printf ("setTexturePixelsUnlocked (%d pixels, %dx%d, stride: %d)\n",
(*env)->GetArrayLength (env, jarr), w, h, stride);
if (gr->pattern)
cairo_pattern_destroy (gr->pattern);
@@ -931,9 +936,9 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_setTexturePixelsUnlocked
CAIRO_FORMAT_ARGB32,
w, h, stride * 4);
g_assert (gr->pattern_surface != NULL);
cairo_pattern_set_extend (gr->pattern, 1);
gr->pattern = cairo_pattern_create_for_surface (gr->pattern_surface);
g_assert (gr->pattern != NULL);
cairo_pattern_set_extend (gr->pattern, CAIRO_EXTEND_REPEAT);
cairo_set_source (gr->cr, gr->pattern);
}
@@ -957,8 +962,9 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_drawPixels
gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj);
g_assert (gr != NULL);
if (gr->debug) printf ("drawPixels (%d pixels, %dx%d, stride: %d)\n",
(*env)->GetArrayLength (env, java_pixels), w, h, stride);
if (gr->debug)
printf ("drawPixels (%d pixels, %dx%d, stride: %d)\n",
(*env)->GetArrayLength (env, java_pixels), w, h, stride);
native_pixels = (*env)->GetIntArrayElements (env, java_pixels, NULL);
native_matrix = (*env)->GetDoubleArrayElements (env, java_matrix, NULL);
@@ -1078,10 +1084,11 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetMatrixUnlocked
g_assert (native_matrix != NULL);
g_assert ((*env)->GetArrayLength (env, java_matrix) == 6);
if (gr->debug) printf ("cairo_set_matrix [ %f, %f, %f, %f, %f, %f ]\n",
native_matrix[0], native_matrix[1],
native_matrix[2], native_matrix[3],
native_matrix[4], native_matrix[5]);
if (gr->debug)
printf ("cairo_matrix_init [ %f, %f, %f, %f, %f, %f ]\n",
native_matrix[0], native_matrix[1],
native_matrix[2], native_matrix[3],
native_matrix[4], native_matrix[5]);
{
cairo_matrix_t mat;
@@ -1269,7 +1276,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoDrawGlyphVector
(*env)->ReleaseFloatArrayElements (env, java_positions, native_positions, 0);
(*env)->ReleaseIntArrayElements (env, java_codes, native_codes, 0);
begin_drawing_operation (env, gr);
begin_drawing_operation (env, gr);
cairo_show_glyphs (gr->cr, glyphs, n);
end_drawing_operation (env, gr);
@@ -1437,7 +1444,8 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetRGBAColorUnlocked
draw to a PixBuf, you must exchange the R and B components of your
color. */
if (gr->debug) printf ("cairo_set_source_rgb (%f, %f, %f)\n", r, g, b);
if (gr->debug)
printf ("cairo_set_source_rgba (%f, %f, %f, %f)\n", r, g, b, a);
if (gr->drawbuf)
cairo_set_source_rgba (gr->cr, b, g, r, a);
@@ -1728,7 +1736,9 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoCurveTo
gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj);
g_assert (gr != NULL);
if (gr->debug) printf ("cairo_curve_to (%f, %f), (%f, %f), (%f, %f)\n", x1, y1, x2, y2, x3, y3);
if (gr->debug)
printf ("cairo_curve_to (%f, %f), (%f, %f), (%f, %f)\n",
x1, y1, x2, y2, x3, y3);
cairo_curve_to (gr->cr, x1, y1, x2, y2, x3, y3);
gdk_threads_leave();
@@ -1794,7 +1804,9 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoRelCurveTo
gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj);
g_assert (gr != NULL);
if (gr->debug) printf ("cairo_rel_curve_to (%f, %f), (%f, %f), (%f, %f)\n", dx1, dy1, dx2, dy2, dx3, dy3);
if (gr->debug)
printf ("cairo_rel_curve_to (%f, %f), (%f, %f), (%f, %f)\n",
dx1, dy1, dx2, dy2, dx3, dy3);
cairo_rel_curve_to (gr->cr, dx1, dy1, dx2, dy2, dx3, dy3);
gdk_threads_leave();
@@ -1822,7 +1834,8 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoRectangle
return;
}
if (gr->debug) printf ("cairo_rectangle (%f, %f) (%f, %f)\n", x, y, width, height);
if (gr->debug)
printf ("cairo_rectangle (%f, %f) (%f, %f)\n", x, y, width, height);
cairo_rectangle (gr->cr, x, y, width, height);
gdk_threads_leave();
@@ -1952,7 +1965,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSurfaceSetFilterUnlocked
gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj);
g_assert (gr != NULL);
if (gr->debug) printf ("cairo_surface_set_filter %d\n", filter);
if (gr->debug) printf ("cairo_pattern_set_filter %d\n", filter);
switch ((enum java_awt_rendering_hints_filter) filter)
{
case java_awt_rendering_hints_VALUE_INTERPOLATION_NEAREST_NEIGHBOR:
@@ -1,5 +1,5 @@
/* gnu_java_awt_GdkTextLayout.c
Copyright (C) 2004 Free Software Foundation, Inc.
Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,12 +38,28 @@
#include <jni.h>
#include <gtk/gtk.h>
#include <string.h>
#include <pango/pango.h>
#include <pango/pangoft2.h>
#include <pango/pangofc-font.h>
#include <freetype/ftglyph.h>
#include <freetype/ftoutln.h>
#include "native_state.h"
#include "gdkfont.h"
#include "gnu_java_awt_peer_gtk_GdkTextLayout.h"
struct state_table *cp_gtk_native_text_layout_state_table;
typedef struct gp
{
JNIEnv *env;
jobject obj;
double px;
double py;
double sx;
double sy;
} generalpath ;
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GdkTextLayout_initStaticState
(JNIEnv *env, jclass clazz)
@@ -190,3 +206,219 @@ Java_gnu_java_awt_peer_gtk_GdkTextLayout_dispose
gdk_threads_leave ();
}
/* GetOutline code follows ****************************/
/********* Freetype callback functions *****************************/
static int _moveTo( FT_Vector* to,
void *p)
{
JNIEnv *env;
jobject obj;
jclass cls;
jmethodID method;
jvalue values[2];
generalpath *path = (generalpath *) p;
env = path->env;
obj = path->obj;
values[0].f = (jfloat)(to->x * path->sx + path->px);
values[1].f = (jfloat)(to->y * path->sy + path->py);
cls = (*env)->FindClass (env, "java/awt/geom/GeneralPath");
method = (*env)->GetMethodID (env, cls, "moveTo", "(FF)V");
(*env)->CallVoidMethodA(env, obj, method, values );
return 0;
}
static int _lineTo( FT_Vector* to,
void *p)
{
JNIEnv *env;
jobject obj;
jclass cls;
jmethodID method;
jvalue values[2];
generalpath *path = (generalpath *) p;
env = path->env;
obj = path->obj;
values[0].f = (jfloat)(to->x * path->sx + path->px);
values[1].f = (jfloat)(to->y * path->sy + path->py);
cls = (*env)->FindClass (env, "java/awt/geom/GeneralPath");
method = (*env)->GetMethodID (env, cls, "lineTo", "(FF)V");
(*env)->CallVoidMethodA(env, obj, method, values );
return 0;
}
static int _quadTo( FT_Vector* cp,
FT_Vector* to,
void *p)
{
JNIEnv *env;
jobject obj;
jclass cls;
jmethodID method;
jvalue values[4];
generalpath *path = (generalpath *) p;
env = path->env;
obj = path->obj;
values[0].f = (jfloat)(cp->x * path->sx + path->px);
values[1].f = (jfloat)(cp->y * path->sy + path->py);
values[2].f = (jfloat)(to->x * path->sx + path->px);
values[3].f = (jfloat)(to->y * path->sy + path->py);
cls = (*env)->FindClass (env, "java/awt/geom/GeneralPath");
method = (*env)->GetMethodID (env, cls, "quadTo", "(FFFF)V");
(*env)->CallVoidMethodA(env, obj, method, values );
return 0;
}
static int _curveTo( FT_Vector* cp1,
FT_Vector* cp2,
FT_Vector* to,
void *p)
{
JNIEnv *env;
jobject obj;
jclass cls;
jmethodID method;
jvalue values[6];
generalpath *path = (generalpath *) p;
env = path->env;
obj = path->obj;
values[0].f = (jfloat)(cp1->x * path->sx + path->px);
values[1].f = (jfloat)(cp1->y * path->sy + path->py);
values[2].f = (jfloat)(cp2->x * path->sx + path->px);
values[3].f = (jfloat)(cp2->y * path->sy + path->py);
values[4].f = (jfloat)(to->x * path->sx + path->px);
values[5].f = (jfloat)(to->y * path->sy + path->py);
cls = (*env)->FindClass (env, "java/awt/geom/GeneralPath");
method = (*env)->GetMethodID (env, cls, "curveTo", "(FFFFFF)V");
(*env)->CallVoidMethodA(env, obj, method, values );
return 0;
}
JNIEXPORT jobject JNICALL
Java_gnu_java_awt_peer_gtk_GdkTextLayout_getOutline
(JNIEnv *env, jobject obj, jobject transform)
{
struct textlayout *tl;
generalpath *path;
jobject gp;
GSList *current_run;
PangoLayoutLine *current_line;
FT_Outline_Funcs ftCallbacks =
{
_moveTo,
_lineTo,
_quadTo,
_curveTo,
0,
0
};
PangoLayoutIter* layoutIterator;
gdk_threads_enter ();
tl = (struct textlayout *)NSA_GET_TEXT_LAYOUT_PTR (env, obj);
g_assert(tl != NULL);
g_assert(tl->pango_layout != NULL);
path = g_malloc0 (sizeof (generalpath));
g_assert(path != NULL);
path->env = env;
/* Scaling factors */
path->sx = PANGO_SCALE/65536.0;
path->sy = -PANGO_SCALE/65536.0;
{ /* create a GeneralPath instance */
jclass cls;
jmethodID method;
cls = (*env)->FindClass (env, "java/awt/geom/GeneralPath");
method = (*env)->GetMethodID (env, cls, "<init>", "()V");
gp = path->obj = (*env)->NewObject (env, cls, method);
}
layoutIterator = pango_layout_get_iter (tl->pango_layout);
g_assert (layoutIterator != NULL);
if (pango_layout_iter_get_line (layoutIterator))
do
{
PangoRectangle line_logical_rect;
current_line = pango_layout_iter_get_line (layoutIterator);
pango_layout_iter_get_line_extents (layoutIterator,
NULL,
&line_logical_rect);
path->px = line_logical_rect.x/(double)PANGO_SCALE;
path->py = line_logical_rect.y/(double)PANGO_SCALE;
current_run = current_line->runs;
while (current_run)
{
FT_Face ft_face;
int index;
PangoGlyphItem *run = current_run->data;
PangoGlyphString *glyphs = run->glyphs;
PangoAnalysis *analysis = &run->item->analysis;
g_assert (analysis != NULL);
g_assert (analysis->font != NULL);
ft_face = pango_fc_font_lock_face ((PangoFcFont *)analysis->font);
g_assert (ft_face != NULL);
for (index = 0; index < glyphs->num_glyphs; index++)
{
FT_Glyph glyph;
FT_Error fterror;
PangoGlyphGeometry pgg = glyphs->glyphs[index].geometry;
fterror = FT_Load_Glyph(ft_face,
(FT_UInt)(glyphs->glyphs[index].glyph),
FT_LOAD_DEFAULT | FT_LOAD_NO_BITMAP);
g_assert(fterror == 0);
FT_Get_Glyph (ft_face->glyph, &glyph);
FT_Outline_Decompose (&(((FT_OutlineGlyph)glyph)->outline),
&ftCallbacks, path);
FT_Done_Glyph (glyph);
path->px += pgg.width/(double)PANGO_SCALE;
}
pango_fc_font_unlock_face ((PangoFcFont *)analysis->font);
current_run = current_run->next;
}
} while (pango_layout_iter_next_line (layoutIterator));
g_free(path);
gdk_threads_leave ();
if (transform != NULL)
{
jclass cls;
jmethodID method;
cls = (*env)->FindClass (env, "java/awt/geom/GeneralPath");
method = (*env)->GetMethodID (env, cls, "transform",
"(Ljava/awt/geom/AffineTransform;)V");
(*env)->CallVoidMethod(env, gp, method, transform );
}
return gp;
}
@@ -46,11 +46,11 @@ Java_gnu_java_awt_peer_gtk_GtkCanvasPeer_create
gpointer widget;
gdk_threads_enter ();
/* Create global reference and save it for future use */
NSA_SET_GLOBAL_REF (env, obj);
widget = gtk_type_new (gtk_drawing_area_get_type ());
widget = gtk_drawing_area_new ();
NSA_SET_PTR (env, obj, widget);
@@ -64,7 +64,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer_remove
/* Update the group to point to some other widget in the group. We
have to do this because Gtk doesn't have a separate object to
represent a radio button's group. */
for (list = gtk_radio_button_group (button); list != NULL;
for (list = gtk_radio_button_get_group (button); list != NULL;
list = list->next)
{
if (list->data != button)
@@ -130,7 +130,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_nativeSetCheckboxGroup
gtk_radio_button_set_group (button, NULL);
else
gtk_radio_button_set_group (button,
gtk_radio_button_group
gtk_radio_button_get_group
(GTK_RADIO_BUTTON (native_group)));
/* If the native group wasn't set on the new CheckboxGroup, then set
@@ -53,7 +53,11 @@ jstring cp_gtk_imageTarget;
jstring cp_gtk_filesTarget;
/* Simple id to keep track of the selection we are currently managing. */
#if SIZEOF_VOID_P == 8
static long current_selection = 0;
#else
static int current_selection = 0;
#endif
/* Whether we "own" the clipboard. And may clear it. */
static int owner = 0;
@@ -261,7 +265,11 @@ static void
clipboard_clear_func (GtkClipboard *clipboard __attribute__((unused)),
gpointer user_data)
{
#if SIZEOF_VOID_P == 8
if (owner && (long) user_data == current_selection)
#else
if (owner && (int) user_data == current_selection)
#endif
{
JNIEnv *env = cp_gtk_gdk_env();
owner = 0;
@@ -56,10 +56,6 @@ exception statement from your version. */
#define AWT_HAND_CURSOR 12
#define AWT_MOVE_CURSOR 13
#define AWT_BUTTON1_DOWN_MASK (1 << 10)
#define AWT_BUTTON2_DOWN_MASK (1 << 11)
#define AWT_BUTTON3_DOWN_MASK (1 << 12)
/* FIXME: use gtk-double-click-time, gtk-double-click-distance */
#define MULTI_CLICK_TIME 250
/* as opposed to a MULTI_PASS_TIME :) */
@@ -135,11 +131,11 @@ button_to_awt_mods (int button)
switch (button)
{
case 1:
return AWT_BUTTON1_MASK;
return AWT_BUTTON1_DOWN_MASK | AWT_BUTTON1_MASK;
case 2:
return AWT_BUTTON2_MASK;
return AWT_BUTTON2_DOWN_MASK | AWT_BUTTON2_MASK;
case 3:
return AWT_BUTTON3_MASK;
return AWT_BUTTON3_DOWN_MASK | AWT_BUTTON3_MASK;
}
return 0;
@@ -151,11 +147,11 @@ cp_gtk_state_to_awt_mods (guint state)
jint result = 0;
if (state & GDK_SHIFT_MASK)
result |= AWT_SHIFT_DOWN_MASK;
result |= (AWT_SHIFT_DOWN_MASK | AWT_SHIFT_MASK);
if (state & GDK_CONTROL_MASK)
result |= AWT_CTRL_DOWN_MASK;
result |= (AWT_CTRL_DOWN_MASK | AWT_CTRL_MASK);
if (state & GDK_MOD1_MASK)
result |= AWT_ALT_DOWN_MASK;
result |= (AWT_ALT_DOWN_MASK | AWT_ALT_MASK);
return result;
}
@@ -166,13 +162,13 @@ state_to_awt_mods_with_button_states (guint state)
jint result = 0;
if (state & GDK_SHIFT_MASK)
result |= AWT_SHIFT_DOWN_MASK;
result |= AWT_SHIFT_DOWN_MASK | AWT_SHIFT_MASK;
if (state & GDK_CONTROL_MASK)
result |= AWT_CTRL_DOWN_MASK;
result |= AWT_CTRL_DOWN_MASK | AWT_CTRL_MASK;
if (state & GDK_MOD1_MASK)
result |= AWT_ALT_DOWN_MASK;
result |= AWT_ALT_DOWN_MASK | AWT_ALT_MASK;
if (state & GDK_BUTTON1_MASK)
result |= AWT_BUTTON1_DOWN_MASK;
result |= AWT_BUTTON1_DOWN_MASK | AWT_BUTTON1_MASK;
if (state & GDK_BUTTON2_MASK)
result |= AWT_BUTTON2_DOWN_MASK;
if (state & GDK_BUTTON3_MASK)
@@ -253,7 +249,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursorUnlocked
gdk_cursor = gdk_cursor_new (gdk_cursor_type);
gdk_window_set_cursor (widget->window, gdk_cursor);
gdk_cursor_destroy (gdk_cursor);
gdk_cursor_unref (gdk_cursor);
}
JNIEXPORT void JNICALL
@@ -276,9 +272,9 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetParent
if (widget->parent == NULL)
{
if (GTK_IS_WINDOW (parent_widget))
{
GList *children = gtk_container_children
(GTK_CONTAINER (parent_widget));
{
GList *children = gtk_container_get_children
(GTK_CONTAINER (parent_widget));
if (GTK_IS_MENU_BAR (children->data))
gtk_fixed_put (GTK_FIXED (children->next->data), widget, 0, 0);
@@ -458,7 +454,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetDispatchKeyEvent
* Find the origin of a widget's window.
*/
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreen
(JNIEnv * env, jobject obj, jintArray jpoint)
{
void *ptr;
@@ -469,13 +465,36 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen
ptr = NSA_GET_PTR (env, obj);
point = (*env)->GetIntArrayElements (env, jpoint, 0);
gdk_window_get_origin (GTK_WIDGET (ptr)->window, point, point+1);
gdk_window_get_root_origin (GTK_WIDGET (ptr)->window, point, point+1);
if (!GTK_IS_CONTAINER (ptr))
{
*point += GTK_WIDGET(ptr)->allocation.x;
*(point+1) += GTK_WIDGET(ptr)->allocation.y;
}
(*env)->ReleaseIntArrayElements(env, jpoint, point, 0);
gdk_threads_leave ();
}
/*
* Find the origin of a widget
*/
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen
(JNIEnv * env, jobject obj, jintArray jpoint)
{
void *ptr;
jint *point;
GtkWidget *widget;
gdk_threads_enter ();
ptr = NSA_GET_PTR (env, obj);
point = (*env)->GetIntArrayElements (env, jpoint, 0);
widget = GTK_WIDGET(ptr);
while(gtk_widget_get_parent(widget) != NULL)
widget = gtk_widget_get_parent(widget);
gdk_window_get_position (GTK_WIDGET(widget)->window, point, point+1);
*point += GTK_WIDGET(ptr)->allocation.x;
*(point+1) += GTK_WIDGET(ptr)->allocation.y;
(*env)->ReleaseIntArrayElements(env, jpoint, point, 0);
@@ -766,7 +785,10 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_isRealized
ptr = NSA_GET_PTR (env, obj);
if (ptr == NULL)
return FALSE;
{
gdk_threads_leave ();
return FALSE;
}
ret_val = GTK_WIDGET_REALIZED (GTK_WIDGET (ptr));
@@ -844,7 +866,7 @@ find_fg_color_widget (GtkWidget *widget)
if (GTK_IS_EVENT_BOX (widget)
|| (GTK_IS_BUTTON (widget)
&& !GTK_IS_OPTION_MENU (widget)))
&& !GTK_IS_COMBO_BOX (widget)))
fg_color_widget = gtk_bin_get_child (GTK_BIN(widget));
else
fg_color_widget = widget;
@@ -974,7 +996,7 @@ component_button_release_cb (GtkWidget *widget __attribute__((unused)),
/* Generate an AWT click event only if the release occured in the
window it was pressed in, and the mouse has not been dragged since
the last time it was pressed. */
gdk_window_get_size (event->window, &width, &height);
gdk_drawable_get_size (event->window, &width, &height);
if (! hasBeenDragged
&& event->x >= 0
&& event->y >= 0
@@ -299,7 +299,7 @@ Java_gnu_java_awt_peer_gtk_GtkImage_freePixmap(JNIEnv *env, jobject obj)
if (offScreen (env, obj) == JNI_FALSE)
gdk_pixbuf_unref ((GdkPixbuf *)getData (env, obj));
else
gdk_pixmap_unref ((GdkPixmap *)getData (env, obj));
g_object_unref ((GdkPixmap *)getData (env, obj));
gdk_threads_leave ();
}
@@ -88,7 +88,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_nativeSetHelpMenu
if (helpmenu != NULL)
{
list = gtk_container_children (GTK_CONTAINER (mbar));
list = gtk_container_get_children (GTK_CONTAINER (mbar));
while (list != NULL && list->data != helpmenu)
list = list->next;
if (list != NULL && list->data == helpmenu)
@@ -110,7 +110,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_delMenu
ptr = NSA_GET_PTR (env, obj);
list = gtk_container_children (GTK_CONTAINER (ptr));
list = gtk_container_get_children (GTK_CONTAINER (ptr));
list = g_list_nth (list, index);
gtk_container_remove (GTK_CONTAINER (ptr), GTK_WIDGET (list->data));
@@ -165,7 +165,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuPeer_delItem
ptr = NSA_GET_PTR (env, obj);
list = gtk_container_children (GTK_CONTAINER (ptr));
list = gtk_container_get_children (GTK_CONTAINER (ptr));
list = g_list_nth (list, index);
gtk_container_remove (GTK_CONTAINER (ptr), GTK_WIDGET (list->data));
@@ -160,9 +160,7 @@ Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit (JNIEnv *env,
XSynchronize (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), True);
#endif
gdk_rgb_init ();
gtk_widget_set_default_colormap (gdk_rgb_get_cmap ());
gtk_widget_set_default_visual (gdk_rgb_get_visual ());
gtk_widget_set_default_colormap (gdk_rgb_get_colormap ());
/* Make sure queued calls don't get sent to GTK/GDK while
we're shutting down. */
@@ -952,29 +952,29 @@ keyevent_state_to_awt_mods (GdkEventKey *event)
if (event->keyval == GDK_Shift_L
|| event->keyval == GDK_Shift_R)
result |= AWT_SHIFT_DOWN_MASK;
result |= AWT_SHIFT_DOWN_MASK | AWT_SHIFT_MASK;
else
{
if (state & GDK_SHIFT_MASK)
result |= AWT_SHIFT_DOWN_MASK;
result |= AWT_SHIFT_DOWN_MASK | AWT_SHIFT_MASK;
}
if (event->keyval == GDK_Control_L
|| event->keyval == GDK_Control_R)
result |= AWT_CTRL_DOWN_MASK;
result |= AWT_CTRL_DOWN_MASK | AWT_CTRL_MASK;
else
{
if (state & GDK_CONTROL_MASK)
result |= AWT_CTRL_DOWN_MASK;
result |= AWT_CTRL_DOWN_MASK | AWT_CTRL_MASK;
}
if (event->keyval == GDK_Alt_L
|| event->keyval == GDK_Alt_R)
result |= AWT_ALT_DOWN_MASK;
result |= AWT_ALT_DOWN_MASK | AWT_ALT_MASK;
else
{
if (state & GDK_MOD1_MASK)
result |= AWT_ALT_DOWN_MASK;
result |= AWT_ALT_DOWN_MASK | AWT_ALT_MASK;
}
}
else if (event->type == GDK_KEY_RELEASE)
@@ -985,20 +985,20 @@ keyevent_state_to_awt_mods (GdkEventKey *event)
&& event->keyval != GDK_Shift_R)
{
if (state & GDK_SHIFT_MASK)
result |= AWT_SHIFT_DOWN_MASK;
result |= AWT_SHIFT_DOWN_MASK | AWT_SHIFT_MASK;
}
if (event->keyval != GDK_Control_L
&& event->keyval != GDK_Control_R)
{
if (state & GDK_CONTROL_MASK)
result |= AWT_CTRL_DOWN_MASK;
result |= AWT_CTRL_DOWN_MASK | AWT_CTRL_MASK;
}
if (event->keyval != GDK_Alt_L
&& event->keyval != GDK_Alt_R)
{
if (state & GDK_MOD1_MASK)
result |= AWT_ALT_DOWN_MASK;
result |= AWT_ALT_DOWN_MASK | AWT_ALT_MASK;
}
}
@@ -1028,9 +1028,6 @@ static gboolean window_delete_cb (GtkWidget *widget, GdkEvent *event,
static void window_destroy_cb (GtkWidget *widget, GdkEvent *event,
jobject peer);
static void window_show_cb (GtkWidget *widget, jobject peer);
static void window_active_state_change_cb (GtkWidget *widget,
GParamSpec *pspec,
jobject peer);
static void window_focus_state_change_cb (GtkWidget *widget,
GParamSpec *pspec,
jobject peer);
@@ -1043,7 +1040,6 @@ static gboolean window_focus_out_cb (GtkWidget * widget,
static gboolean window_window_state_cb (GtkWidget *widget,
GdkEvent *event,
jobject peer);
static jint window_get_new_state (GtkWidget *widget);
static gboolean window_property_changed_cb (GtkWidget *widget,
GdkEventProperty *event,
jobject peer);
@@ -1209,7 +1205,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetResizable
ptr = NSA_GET_PTR (env, obj);
gtk_window_set_policy (GTK_WINDOW (ptr), resizable, resizable, FALSE);
gtk_window_set_resizable (GTK_WINDOW (ptr), resizable);
gdk_threads_leave ();
}
@@ -1278,9 +1274,6 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_connectSignals
g_signal_connect (G_OBJECT (ptr), "show",
G_CALLBACK (window_show_cb), *gref);
g_signal_connect (G_OBJECT (ptr), "notify::is-active",
G_CALLBACK (window_active_state_change_cb), *gref);
g_signal_connect (G_OBJECT (ptr), "notify::has-toplevel-focus",
G_CALLBACK (window_focus_state_change_cb), *gref);
@@ -1591,31 +1584,6 @@ window_show_cb (GtkWidget *widget __attribute__((unused)),
(jobject) NULL, (jint) 0);
}
static void
window_active_state_change_cb (GtkWidget *widget __attribute__((unused)),
GParamSpec *pspec __attribute__((unused)),
jobject peer __attribute__((unused)))
{
/* FIXME: not sure if this is needed or not. */
/* Remove the unused attributes if you fix the below. */
#if 0
gdk_threads_leave ();
if (GTK_WINDOW (widget)->is_active)
(*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
postWindowEventID,
(jint) AWT_WINDOW_GAINED_FOCUS,
(jobject) NULL, (jint) 0);
else
(*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
postWindowEventID,
(jint) AWT_WINDOW_DEACTIVATED,
(jobject) NULL, (jint) 0);
gdk_threads_enter ();
#endif
}
static void
window_focus_state_change_cb (GtkWidget *widget,
GParamSpec *pspec __attribute__((unused)),
@@ -1660,7 +1628,7 @@ window_focus_out_cb (GtkWidget * widget __attribute__((unused)),
}
static gboolean
window_window_state_cb (GtkWidget *widget,
window_window_state_cb (GtkWidget *widget __attribute__((unused)),
GdkEvent *event,
jobject peer)
{
@@ -1695,8 +1663,6 @@ window_window_state_cb (GtkWidget *widget,
if (event->window_state.new_window_state & GDK_WINDOW_STATE_ICONIFIED)
new_state |= AWT_FRAME_STATE_ICONIFIED;
new_state |= window_get_new_state (widget);
(*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
postWindowEventID,
(jint) AWT_WINDOW_STATE_CHANGED,
@@ -1705,47 +1671,6 @@ window_window_state_cb (GtkWidget *widget,
return TRUE;
}
static jint
window_get_new_state (GtkWidget *widget)
{
GdkDisplay *display = gtk_widget_get_display(widget);
jint new_state = AWT_FRAME_STATE_NORMAL;
Atom type;
gint format;
gulong atom_count;
gulong bytes_after;
Atom *atom_list = NULL;
union atom_list_union alu;
gulong i;
alu.atom_list = &atom_list;
XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display),
GDK_WINDOW_XID (widget->window),
gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_STATE"),
0, G_MAXLONG, False, XA_ATOM, &type, &format, &atom_count,
&bytes_after, alu.gu_extents);
if (type != None)
{
Atom maxvert = gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_STATE_MAXIMIZED_VERT");
Atom maxhorz = gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_STATE_MAXIMIZED_HORZ");
i = 0;
while (i < atom_count)
{
if (atom_list[i] == maxhorz)
new_state |= AWT_FRAME_STATE_MAXIMIZED_HORIZ;
else if (atom_list[i] == maxvert)
new_state |= AWT_FRAME_STATE_MAXIMIZED_VERT;
++i;
}
XFree (atom_list);
}
return new_state;
}
static gboolean
window_property_changed_cb (GtkWidget *widget __attribute__((unused)),
GdkEventProperty *event,
@@ -111,15 +111,26 @@ struct graphics
jint x_offset, y_offset;
};
/* New-style event masks. */
#define AWT_BUTTON1_DOWN_MASK (1 << 10)
#define AWT_BUTTON2_DOWN_MASK (1 << 11)
#define AWT_BUTTON3_DOWN_MASK (1 << 12)
#define AWT_SHIFT_DOWN_MASK (1 << 6)
#define AWT_CTRL_DOWN_MASK (1 << 7)
#define AWT_META_DOWN_MASK (1 << 8)
#define AWT_ALT_DOWN_MASK (1 << 9)
/* Old-style event masks. */
#define AWT_BUTTON1_MASK (1 << 4)
#define AWT_BUTTON2_MASK (1 << 3)
#define AWT_BUTTON3_MASK (1 << 2)
#define AWT_SHIFT_MASK (1 << 0)
#define AWT_CTRL_MASK (1 << 1)
#define AWT_META_MASK (1 << 2)
#define AWT_ALT_MASK (1 << 3)
#define AWT_ITEM_SELECTED 1
#define AWT_ITEM_DESELECTED 2
@@ -1,4 +1,4 @@
pkglib_LTLIBRARIES = libjavaio.la
nativelib_LTLIBRARIES = libjavaio.la
libjavaio_la_SOURCES = javaio.h \
javaio.c \
@@ -42,10 +42,8 @@ target_triplet = @target@
subdir = native/jni/java-io
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../config/lead-dot.m4 \
$(top_srcdir)/../../config/no-executables.m4 \
$(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/accross.m4 \
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
$(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
@@ -61,9 +59,9 @@ am__vpath_adj = case $$p in \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(pkglibdir)"
pkglibLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(pkglib_LTLIBRARIES)
am__installdirs = "$(DESTDIR)$(nativelibdir)"
nativelibLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(nativelib_LTLIBRARIES)
libjavaio_la_DEPENDENCIES = \
$(top_builddir)/native/jni/classpath/jcl.lo
am_libjavaio_la_OBJECTS = javaio.lo java_io_VMFile.lo \
@@ -105,10 +103,14 @@ CLASSPATH_MODULE = @CLASSPATH_MODULE@
CP = @CP@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -245,6 +247,7 @@ build_vendor = @build_vendor@
datadir = @datadir@
default_toolkit = @default_toolkit@
exec_prefix = @exec_prefix@
glibjdir = @glibjdir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -258,6 +261,7 @@ libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
nativelibdir = @nativelibdir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -270,7 +274,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
vm_classes = @vm_classes@
pkglib_LTLIBRARIES = libjavaio.la
nativelib_LTLIBRARIES = libjavaio.la
libjavaio_la_SOURCES = javaio.h \
javaio.c \
java_io_VMFile.c \
@@ -314,35 +318,35 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
install-nativelibLTLIBRARIES: $(nativelib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)"
@list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
test -z "$(nativelibdir)" || $(mkdir_p) "$(DESTDIR)$(nativelibdir)"
@list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
$(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
echo " $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativelibdir)/$$f'"; \
$(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativelibdir)/$$f"; \
else :; fi; \
done
uninstall-pkglibLTLIBRARIES:
uninstall-nativelibLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@set -x; list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
@set -x; list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$p"; \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativelibdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativelibdir)/$$p"; \
done
clean-pkglibLTLIBRARIES:
-test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
@list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
clean-nativelibLTLIBRARIES:
-test -z "$(nativelib_LTLIBRARIES)" || rm -f $(nativelib_LTLIBRARIES)
@list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libjavaio.la: $(libjavaio_la_OBJECTS) $(libjavaio_la_DEPENDENCIES)
$(LINK) -rpath $(pkglibdir) $(libjavaio_la_LDFLAGS) $(libjavaio_la_OBJECTS) $(libjavaio_la_LIBADD) $(LIBS)
$(LINK) -rpath $(nativelibdir) $(libjavaio_la_LDFLAGS) $(libjavaio_la_OBJECTS) $(libjavaio_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -465,7 +469,7 @@ check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES)
installdirs:
for dir in "$(DESTDIR)$(pkglibdir)"; do \
for dir in "$(DESTDIR)$(nativelibdir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
@@ -494,7 +498,7 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool clean-pkglibLTLIBRARIES \
clean-am: clean-generic clean-libtool clean-nativelibLTLIBRARIES \
mostlyclean-am
distclean: distclean-am
@@ -513,9 +517,9 @@ info: info-am
info-am:
install-data-am:
install-data-am: install-nativelibLTLIBRARIES
install-exec-am: install-pkglibLTLIBRARIES
install-exec-am:
install-info: install-info-am
@@ -541,20 +545,20 @@ ps: ps-am
ps-am:
uninstall-am: uninstall-info-am uninstall-pkglibLTLIBRARIES
uninstall-am: uninstall-info-am uninstall-nativelibLTLIBRARIES
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-libtool clean-pkglibLTLIBRARIES ctags distclean \
clean-libtool clean-nativelibLTLIBRARIES ctags distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-pkglibLTLIBRARIES install-strip installcheck \
install-nativelibLTLIBRARIES install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-info-am \
uninstall-pkglibLTLIBRARIES
uninstall-nativelibLTLIBRARIES
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
@@ -1,4 +1,4 @@
pkglib_LTLIBRARIES = libjavalang.la libjavalangreflect.la
nativelib_LTLIBRARIES = libjavalang.la libjavalangreflect.la
libjavalang_la_SOURCES = java_lang_VMSystem.c \
java_lang_VMFloat.c \
@@ -42,10 +42,8 @@ target_triplet = @target@
subdir = native/jni/java-lang
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../config/lead-dot.m4 \
$(top_srcdir)/../../config/no-executables.m4 \
$(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/accross.m4 \
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
$(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
@@ -61,9 +59,9 @@ am__vpath_adj = case $$p in \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(pkglibdir)"
pkglibLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(pkglib_LTLIBRARIES)
am__installdirs = "$(DESTDIR)$(nativelibdir)"
nativelibLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(nativelib_LTLIBRARIES)
libjavalang_la_DEPENDENCIES = $(wildcard \
$(top_builddir)/native/fdlibm/*.lo) \
$(top_builddir)/native/jni/classpath/jcl.lo
@@ -110,10 +108,14 @@ CLASSPATH_MODULE = @CLASSPATH_MODULE@
CP = @CP@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -250,6 +252,7 @@ build_vendor = @build_vendor@
datadir = @datadir@
default_toolkit = @default_toolkit@
exec_prefix = @exec_prefix@
glibjdir = @glibjdir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -263,6 +266,7 @@ libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
nativelibdir = @nativelibdir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -275,7 +279,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
vm_classes = @vm_classes@
pkglib_LTLIBRARIES = libjavalang.la libjavalangreflect.la
nativelib_LTLIBRARIES = libjavalang.la libjavalangreflect.la
libjavalang_la_SOURCES = java_lang_VMSystem.c \
java_lang_VMFloat.c \
java_lang_VMDouble.c \
@@ -322,37 +326,37 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
install-nativelibLTLIBRARIES: $(nativelib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)"
@list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
test -z "$(nativelibdir)" || $(mkdir_p) "$(DESTDIR)$(nativelibdir)"
@list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
$(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
echo " $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativelibdir)/$$f'"; \
$(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativelibdir)/$$f"; \
else :; fi; \
done
uninstall-pkglibLTLIBRARIES:
uninstall-nativelibLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@set -x; list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
@set -x; list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$p"; \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativelibdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativelibdir)/$$p"; \
done
clean-pkglibLTLIBRARIES:
-test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
@list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
clean-nativelibLTLIBRARIES:
-test -z "$(nativelib_LTLIBRARIES)" || rm -f $(nativelib_LTLIBRARIES)
@list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libjavalang.la: $(libjavalang_la_OBJECTS) $(libjavalang_la_DEPENDENCIES)
$(LINK) -rpath $(pkglibdir) $(libjavalang_la_LDFLAGS) $(libjavalang_la_OBJECTS) $(libjavalang_la_LIBADD) $(LIBS)
$(LINK) -rpath $(nativelibdir) $(libjavalang_la_LDFLAGS) $(libjavalang_la_OBJECTS) $(libjavalang_la_LIBADD) $(LIBS)
libjavalangreflect.la: $(libjavalangreflect_la_OBJECTS) $(libjavalangreflect_la_DEPENDENCIES)
$(LINK) -rpath $(pkglibdir) $(libjavalangreflect_la_LDFLAGS) $(libjavalangreflect_la_OBJECTS) $(libjavalangreflect_la_LIBADD) $(LIBS)
$(LINK) -rpath $(nativelibdir) $(libjavalangreflect_la_LDFLAGS) $(libjavalangreflect_la_OBJECTS) $(libjavalangreflect_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -477,7 +481,7 @@ check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES)
installdirs:
for dir in "$(DESTDIR)$(pkglibdir)"; do \
for dir in "$(DESTDIR)$(nativelibdir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
@@ -506,7 +510,7 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool clean-pkglibLTLIBRARIES \
clean-am: clean-generic clean-libtool clean-nativelibLTLIBRARIES \
mostlyclean-am
distclean: distclean-am
@@ -525,9 +529,9 @@ info: info-am
info-am:
install-data-am:
install-data-am: install-nativelibLTLIBRARIES
install-exec-am: install-pkglibLTLIBRARIES
install-exec-am:
install-info: install-info-am
@@ -553,20 +557,20 @@ ps: ps-am
ps-am:
uninstall-am: uninstall-info-am uninstall-pkglibLTLIBRARIES
uninstall-am: uninstall-info-am uninstall-nativelibLTLIBRARIES
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-libtool clean-pkglibLTLIBRARIES ctags distclean \
clean-libtool clean-nativelibLTLIBRARIES ctags distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-pkglibLTLIBRARIES install-strip installcheck \
install-nativelibLTLIBRARIES install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-info-am \
uninstall-pkglibLTLIBRARIES
uninstall-nativelibLTLIBRARIES
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
@@ -1,5 +1,5 @@
/* java_lang_VMProcess.c -- native code for java.lang.VMProcess
Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -351,7 +351,6 @@ Java_java_lang_VMProcess_nativeSpawn (JNIEnv * env, jobject this,
streams[0], streams[1], streams[2], (jlong) pid);
if ((*env)->ExceptionOccurred (env))
goto done;
(*env)->DeleteLocalRef (env, clazz);
done:
/*
@@ -42,6 +42,7 @@ exception statement from your version. */
* Date: 2 Jun 1998
*/
#include <config.h>
#include <stddef.h>
#include "java_lang_reflect_Array.h"
@@ -1,4 +1,4 @@
pkglib_LTLIBRARIES = libjavanet.la
nativelib_LTLIBRARIES = libjavanet.la
libjavanet_la_SOURCES = javanet.c \
javanet.h \
@@ -42,10 +42,8 @@ target_triplet = @target@
subdir = native/jni/java-net
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../config/lead-dot.m4 \
$(top_srcdir)/../../config/no-executables.m4 \
$(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/accross.m4 \
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
$(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
@@ -61,9 +59,9 @@ am__vpath_adj = case $$p in \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(pkglibdir)"
pkglibLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(pkglib_LTLIBRARIES)
am__installdirs = "$(DESTDIR)$(nativelibdir)"
nativelibLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(nativelib_LTLIBRARIES)
libjavanet_la_DEPENDENCIES = \
$(top_builddir)/native/jni/classpath/jcl.lo
am_libjavanet_la_OBJECTS = javanet.lo java_net_VMInetAddress.lo \
@@ -107,10 +105,14 @@ CLASSPATH_MODULE = @CLASSPATH_MODULE@
CP = @CP@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -247,6 +249,7 @@ build_vendor = @build_vendor@
datadir = @datadir@
default_toolkit = @default_toolkit@
exec_prefix = @exec_prefix@
glibjdir = @glibjdir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -260,6 +263,7 @@ libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
nativelibdir = @nativelibdir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -272,7 +276,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
vm_classes = @vm_classes@
pkglib_LTLIBRARIES = libjavanet.la
nativelib_LTLIBRARIES = libjavanet.la
libjavanet_la_SOURCES = javanet.c \
javanet.h \
java_net_VMInetAddress.c \
@@ -317,35 +321,35 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
install-nativelibLTLIBRARIES: $(nativelib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)"
@list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
test -z "$(nativelibdir)" || $(mkdir_p) "$(DESTDIR)$(nativelibdir)"
@list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
$(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
echo " $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativelibdir)/$$f'"; \
$(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativelibdir)/$$f"; \
else :; fi; \
done
uninstall-pkglibLTLIBRARIES:
uninstall-nativelibLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@set -x; list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
@set -x; list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$p"; \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativelibdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativelibdir)/$$p"; \
done
clean-pkglibLTLIBRARIES:
-test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
@list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
clean-nativelibLTLIBRARIES:
-test -z "$(nativelib_LTLIBRARIES)" || rm -f $(nativelib_LTLIBRARIES)
@list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libjavanet.la: $(libjavanet_la_OBJECTS) $(libjavanet_la_DEPENDENCIES)
$(LINK) -rpath $(pkglibdir) $(libjavanet_la_LDFLAGS) $(libjavanet_la_OBJECTS) $(libjavanet_la_LIBADD) $(LIBS)
$(LINK) -rpath $(nativelibdir) $(libjavanet_la_LDFLAGS) $(libjavanet_la_OBJECTS) $(libjavanet_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -469,7 +473,7 @@ check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES)
installdirs:
for dir in "$(DESTDIR)$(pkglibdir)"; do \
for dir in "$(DESTDIR)$(nativelibdir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
@@ -498,7 +502,7 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool clean-pkglibLTLIBRARIES \
clean-am: clean-generic clean-libtool clean-nativelibLTLIBRARIES \
mostlyclean-am
distclean: distclean-am
@@ -517,9 +521,9 @@ info: info-am
info-am:
install-data-am:
install-data-am: install-nativelibLTLIBRARIES
install-exec-am: install-pkglibLTLIBRARIES
install-exec-am:
install-info: install-info-am
@@ -545,20 +549,20 @@ ps: ps-am
ps-am:
uninstall-am: uninstall-info-am uninstall-pkglibLTLIBRARIES
uninstall-am: uninstall-info-am uninstall-nativelibLTLIBRARIES
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-libtool clean-pkglibLTLIBRARIES ctags distclean \
clean-libtool clean-nativelibLTLIBRARIES ctags distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-pkglibLTLIBRARIES install-strip installcheck \
install-nativelibLTLIBRARIES install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-info-am \
uninstall-pkglibLTLIBRARIES
uninstall-nativelibLTLIBRARIES
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
@@ -181,7 +181,8 @@ Java_java_net_VMInetAddress_getHostByAddr (JNIEnv * env,
sizeof (hostname), result);
if (result != TARGET_NATIVE_OK)
{
JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Bad IP address");
JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION,
TARGET_NATIVE_LAST_ERROR_STRING ());
return (jstring) NULL;
}
@@ -856,8 +856,12 @@ _javanet_accept (JNIEnv * env, jobject this, jobject impl)
&& (TARGET_NATIVE_LAST_ERROR ()
!= TARGET_NATIVE_ERROR_INTERRUPT_FUNCTION_CALL))
{
JCL_ThrowException (env, IO_EXCEPTION,
"Internal error: _javanet_accept(): ");
if (TARGET_NATIVE_LAST_ERROR () == EAGAIN)
JCL_ThrowException (env, "java/net/SocketTimeoutException",
"Timeout");
else
JCL_ThrowException (env, IO_EXCEPTION,
TARGET_NATIVE_LAST_ERROR_STRING ());
return;
}
}
@@ -1542,8 +1546,7 @@ _javanet_shutdownInput (JNIEnv * env, jobject this)
/* Shutdown input stream of socket. */
if (shutdown (fd, SHUT_RD) == -1)
{
JCL_ThrowException (env, SOCKET_EXCEPTION,
"Can't shutdown input of socket");
JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno));
return;
}
}
@@ -1568,8 +1571,7 @@ _javanet_shutdownOutput (JNIEnv * env, jobject this)
/* Shutdown output stream of socket. */
if (shutdown (fd, SHUT_WR) == -1)
{
JCL_ThrowException (env, SOCKET_EXCEPTION,
"Can't shutdown output of socket");
JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno));
return;
}
}
@@ -1,4 +1,4 @@
pkglib_LTLIBRARIES = libjavanio.la
nativelib_LTLIBRARIES = libjavanio.la
libjavanio_la_SOURCES = gnu_java_nio_VMPipe.c \
gnu_java_nio_VMSelector.c \
@@ -42,10 +42,8 @@ target_triplet = @target@
subdir = native/jni/java-nio
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../config/lead-dot.m4 \
$(top_srcdir)/../../config/no-executables.m4 \
$(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/accross.m4 \
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
$(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
@@ -61,9 +59,9 @@ am__vpath_adj = case $$p in \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(pkglibdir)"
pkglibLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(pkglib_LTLIBRARIES)
am__installdirs = "$(DESTDIR)$(nativelibdir)"
nativelibLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(nativelib_LTLIBRARIES)
am__DEPENDENCIES_1 =
libjavanio_la_DEPENDENCIES = \
$(top_builddir)/native/jni/classpath/jcl.lo \
@@ -112,10 +110,14 @@ CLASSPATH_MODULE = @CLASSPATH_MODULE@
CP = @CP@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -252,6 +254,7 @@ build_vendor = @build_vendor@
datadir = @datadir@
default_toolkit = @default_toolkit@
exec_prefix = @exec_prefix@
glibjdir = @glibjdir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -265,6 +268,7 @@ libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
nativelibdir = @nativelibdir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -277,7 +281,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
vm_classes = @vm_classes@
pkglib_LTLIBRARIES = libjavanio.la
nativelib_LTLIBRARIES = libjavanio.la
libjavanio_la_SOURCES = gnu_java_nio_VMPipe.c \
gnu_java_nio_VMSelector.c \
gnu_java_nio_channels_FileChannelImpl.c \
@@ -325,35 +329,35 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
install-nativelibLTLIBRARIES: $(nativelib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)"
@list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
test -z "$(nativelibdir)" || $(mkdir_p) "$(DESTDIR)$(nativelibdir)"
@list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
$(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
echo " $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativelibdir)/$$f'"; \
$(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativelibdir)/$$f"; \
else :; fi; \
done
uninstall-pkglibLTLIBRARIES:
uninstall-nativelibLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@set -x; list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
@set -x; list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$p"; \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativelibdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativelibdir)/$$p"; \
done
clean-pkglibLTLIBRARIES:
-test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
@list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
clean-nativelibLTLIBRARIES:
-test -z "$(nativelib_LTLIBRARIES)" || rm -f $(nativelib_LTLIBRARIES)
@list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libjavanio.la: $(libjavanio_la_OBJECTS) $(libjavanio_la_DEPENDENCIES)
$(LINK) -rpath $(pkglibdir) $(libjavanio_la_LDFLAGS) $(libjavanio_la_OBJECTS) $(libjavanio_la_LIBADD) $(LIBS)
$(LINK) -rpath $(nativelibdir) $(libjavanio_la_LDFLAGS) $(libjavanio_la_OBJECTS) $(libjavanio_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -479,7 +483,7 @@ check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES)
installdirs:
for dir in "$(DESTDIR)$(pkglibdir)"; do \
for dir in "$(DESTDIR)$(nativelibdir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
@@ -508,7 +512,7 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool clean-pkglibLTLIBRARIES \
clean-am: clean-generic clean-libtool clean-nativelibLTLIBRARIES \
mostlyclean-am
distclean: distclean-am
@@ -527,9 +531,9 @@ info: info-am
info-am:
install-data-am:
install-data-am: install-nativelibLTLIBRARIES
install-exec-am: install-pkglibLTLIBRARIES
install-exec-am:
install-info: install-info-am
@@ -555,20 +559,20 @@ ps: ps-am
ps-am:
uninstall-am: uninstall-info-am uninstall-pkglibLTLIBRARIES
uninstall-am: uninstall-info-am uninstall-nativelibLTLIBRARIES
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-libtool clean-pkglibLTLIBRARIES ctags distclean \
clean-libtool clean-nativelibLTLIBRARIES ctags distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-pkglibLTLIBRARIES install-strip installcheck \
install-nativelibLTLIBRARIES install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-info-am \
uninstall-pkglibLTLIBRARIES
uninstall-nativelibLTLIBRARIES
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
@@ -140,7 +140,7 @@ Java_gnu_java_nio_charset_iconv_IconvDecoder_decode (JNIEnv * env,
if (retval == (size_t) (-1))
{
if (errno == EILSEQ || errno == EINVAL)
if (errno == EILSEQ)
retval = 1;
else
retval = 0;
@@ -1,4 +1,4 @@
pkglib_LTLIBRARIES = libjavautil.la
nativelib_LTLIBRARIES = libjavautil.la
libjavautil_la_SOURCES = java_util_VMTimeZone.c
@@ -42,10 +42,8 @@ target_triplet = @target@
subdir = native/jni/java-util
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../config/lead-dot.m4 \
$(top_srcdir)/../../config/no-executables.m4 \
$(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/accross.m4 \
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
$(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
@@ -61,9 +59,9 @@ am__vpath_adj = case $$p in \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(pkglibdir)"
pkglibLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(pkglib_LTLIBRARIES)
am__installdirs = "$(DESTDIR)$(nativelibdir)"
nativelibLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(nativelib_LTLIBRARIES)
libjavautil_la_LIBADD =
am_libjavautil_la_OBJECTS = java_util_VMTimeZone.lo
libjavautil_la_OBJECTS = $(am_libjavautil_la_OBJECTS)
@@ -103,10 +101,14 @@ CLASSPATH_MODULE = @CLASSPATH_MODULE@
CP = @CP@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -243,6 +245,7 @@ build_vendor = @build_vendor@
datadir = @datadir@
default_toolkit = @default_toolkit@
exec_prefix = @exec_prefix@
glibjdir = @glibjdir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -256,6 +259,7 @@ libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
nativelibdir = @nativelibdir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -268,7 +272,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
vm_classes = @vm_classes@
pkglib_LTLIBRARIES = libjavautil.la
nativelib_LTLIBRARIES = libjavautil.la
libjavautil_la_SOURCES = java_util_VMTimeZone.c
AM_LDFLAGS = @CLASSPATH_MODULE@
AM_CPPFLAGS = @CLASSPATH_INCLUDES@
@@ -306,35 +310,35 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
install-nativelibLTLIBRARIES: $(nativelib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)"
@list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
test -z "$(nativelibdir)" || $(mkdir_p) "$(DESTDIR)$(nativelibdir)"
@list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
$(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
echo " $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativelibdir)/$$f'"; \
$(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativelibdir)/$$f"; \
else :; fi; \
done
uninstall-pkglibLTLIBRARIES:
uninstall-nativelibLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@set -x; list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
@set -x; list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$p"; \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativelibdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativelibdir)/$$p"; \
done
clean-pkglibLTLIBRARIES:
-test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
@list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
clean-nativelibLTLIBRARIES:
-test -z "$(nativelib_LTLIBRARIES)" || rm -f $(nativelib_LTLIBRARIES)
@list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libjavautil.la: $(libjavautil_la_OBJECTS) $(libjavautil_la_DEPENDENCIES)
$(LINK) -rpath $(pkglibdir) $(libjavautil_la_LDFLAGS) $(libjavautil_la_OBJECTS) $(libjavautil_la_LIBADD) $(LIBS)
$(LINK) -rpath $(nativelibdir) $(libjavautil_la_LDFLAGS) $(libjavautil_la_OBJECTS) $(libjavautil_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -454,7 +458,7 @@ check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES)
installdirs:
for dir in "$(DESTDIR)$(pkglibdir)"; do \
for dir in "$(DESTDIR)$(nativelibdir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
@@ -483,7 +487,7 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool clean-pkglibLTLIBRARIES \
clean-am: clean-generic clean-libtool clean-nativelibLTLIBRARIES \
mostlyclean-am
distclean: distclean-am
@@ -502,9 +506,9 @@ info: info-am
info-am:
install-data-am:
install-data-am: install-nativelibLTLIBRARIES
install-exec-am: install-pkglibLTLIBRARIES
install-exec-am:
install-info: install-info-am
@@ -530,20 +534,20 @@ ps: ps-am
ps-am:
uninstall-am: uninstall-info-am uninstall-pkglibLTLIBRARIES
uninstall-am: uninstall-info-am uninstall-nativelibLTLIBRARIES
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-libtool clean-pkglibLTLIBRARIES ctags distclean \
clean-libtool clean-nativelibLTLIBRARIES ctags distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-pkglibLTLIBRARIES install-strip installcheck \
install-nativelibLTLIBRARIES install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-info-am \
uninstall-pkglibLTLIBRARIES
uninstall-nativelibLTLIBRARIES
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
@@ -0,0 +1,9 @@
*.o
*.a
*.lo
*.la
.libs
.depsMakefile
Makefile.in
Makefile
.deps
@@ -0,0 +1,11 @@
nativelib_LTLIBRARIES = libgjsmalsa.la
libgjsmalsa_la_SOURCES = gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.c \
gnu_javax_sound_midi_alsa_AlsaPortDevice.c \
gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.c
libgjsmalsa_la_LIBADD = -lasound
AM_LDFLAGS = @CLASSPATH_MODULE@
AM_CPPFLAGS = @CLASSPATH_INCLUDES@ `pkg-config --cflags-only-I alsa`
AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ `pkg-config --cflags-only-other alsa`
@@ -0,0 +1,563 @@
# Makefile.in generated by automake 1.9.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SOURCES = $(libgjsmalsa_la_SOURCES)
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../../..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
subdir = native/jni/midi-alsa
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
$(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/include/config.h
CONFIG_CLEAN_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(nativelibdir)"
nativelibLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(nativelib_LTLIBRARIES)
libgjsmalsa_la_DEPENDENCIES =
am_libgjsmalsa_la_OBJECTS = \
gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.lo \
gnu_javax_sound_midi_alsa_AlsaPortDevice.lo \
gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.lo
libgjsmalsa_la_OBJECTS = $(am_libgjsmalsa_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(libgjsmalsa_la_SOURCES)
DIST_SOURCES = $(libgjsmalsa_la_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_CLASS_FILES_FALSE = @BUILD_CLASS_FILES_FALSE@
BUILD_CLASS_FILES_TRUE = @BUILD_CLASS_FILES_TRUE@
CAIRO_CFLAGS = @CAIRO_CFLAGS@
CAIRO_LIBS = @CAIRO_LIBS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@
CLASSPATH_MODULE = @CLASSPATH_MODULE@
CP = @CP@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
CREATE_JNI_HEADERS_TRUE = @CREATE_JNI_HEADERS_TRUE@
CREATE_JNI_LIBRARIES_FALSE = @CREATE_JNI_LIBRARIES_FALSE@
CREATE_JNI_LIBRARIES_TRUE = @CREATE_JNI_LIBRARIES_TRUE@
CREATE_QT_PEER_LIBRARIES_FALSE = @CREATE_QT_PEER_LIBRARIES_FALSE@
CREATE_QT_PEER_LIBRARIES_TRUE = @CREATE_QT_PEER_LIBRARIES_TRUE@
CREATE_XMLJ_LIBRARY_FALSE = @CREATE_XMLJ_LIBRARY_FALSE@
CREATE_XMLJ_LIBRARY_TRUE = @CREATE_XMLJ_LIBRARY_TRUE@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DATE = @DATE@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
ECJ = @ECJ@
EGREP = @EGREP@
ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
FIND = @FIND@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJX_FALSE = @FOUND_GCJX_FALSE@
FOUND_GCJX_TRUE = @FOUND_GCJX_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
GCJ = @GCJ@
GCJX = @GCJX@
GJDOC = @GJDOC@
GTK_CAIRO_ENABLED = @GTK_CAIRO_ENABLED@
GTK_CAIRO_FALSE = @GTK_CAIRO_FALSE@
GTK_CAIRO_TRUE = @GTK_CAIRO_TRUE@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
INSTALL_CLASS_FILES_FALSE = @INSTALL_CLASS_FILES_FALSE@
INSTALL_CLASS_FILES_TRUE = @INSTALL_CLASS_FILES_TRUE@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_GLIBJ_ZIP_FALSE = @INSTALL_GLIBJ_ZIP_FALSE@
INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAY = @JAY@
JAY_SKELETON = @JAY_SKELETON@
JIKES = @JIKES@
JIKESENCODING = @JIKESENCODING@
KJC = @KJC@
LDFLAGS = @LDFLAGS@
LIBDEBUG = @LIBDEBUG@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIBVERSION = @LIBVERSION@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKDIR = @MKDIR@
MOC = @MOC@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
PANGOFT2_LIBS = @PANGOFT2_LIBS@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
QT_CFLAGS = @QT_CFLAGS@
QT_LIBS = @QT_LIBS@
RANLIB = @RANLIB@
REGEN_PARSERS_FALSE = @REGEN_PARSERS_FALSE@
REGEN_PARSERS_TRUE = @REGEN_PARSERS_TRUE@
REMOVE = @REMOVE@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
STRIP = @STRIP@
USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
VERSION = @VERSION@
WARNING_CFLAGS = @WARNING_CFLAGS@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
XSLT_LIBS = @XSLT_LIBS@
X_CFLAGS = @X_CFLAGS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
default_toolkit = @default_toolkit@
exec_prefix = @exec_prefix@
glibjdir = @glibjdir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
nativelibdir = @nativelibdir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
vm_classes = @vm_classes@
nativelib_LTLIBRARIES = libgjsmalsa.la
libgjsmalsa_la_SOURCES = gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.c \
gnu_javax_sound_midi_alsa_AlsaPortDevice.c \
gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.c
libgjsmalsa_la_LIBADD = -lasound
AM_LDFLAGS = @CLASSPATH_MODULE@
AM_CPPFLAGS = @CLASSPATH_INCLUDES@ `pkg-config --cflags-only-I alsa`
AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ `pkg-config --cflags-only-other alsa`
all: all-am
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu native/jni/midi-alsa/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu native/jni/midi-alsa/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
install-nativelibLTLIBRARIES: $(nativelib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(nativelibdir)" || $(mkdir_p) "$(DESTDIR)$(nativelibdir)"
@list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativelibdir)/$$f'"; \
$(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativelibdir)/$$f"; \
else :; fi; \
done
uninstall-nativelibLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@set -x; list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativelibdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativelibdir)/$$p"; \
done
clean-nativelibLTLIBRARIES:
-test -z "$(nativelib_LTLIBRARIES)" || rm -f $(nativelib_LTLIBRARIES)
@list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libgjsmalsa.la: $(libgjsmalsa_la_OBJECTS) $(libgjsmalsa_la_DEPENDENCIES)
$(LINK) -rpath $(nativelibdir) $(libgjsmalsa_la_LDFLAGS) $(libgjsmalsa_la_OBJECTS) $(libgjsmalsa_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_javax_sound_midi_alsa_AlsaPortDevice.Plo@am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES)
installdirs:
for dir in "$(DESTDIR)$(nativelibdir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool clean-nativelibLTLIBRARIES \
mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-libtool distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am: install-nativelibLTLIBRARIES
install-exec-am:
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-info-am uninstall-nativelibLTLIBRARIES
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-libtool clean-nativelibLTLIBRARIES ctags distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-nativelibLTLIBRARIES install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-info-am \
uninstall-nativelibLTLIBRARIES
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
@@ -0,0 +1,148 @@
/* gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.c
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
#include <config.h>
#include <gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h>
#include <alsa/asoundlib.h>
static snd_seq_t *seq;
JNIEXPORT void JNICALL
Java_gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider_init_1
(JNIEnv *env __attribute__((unused)), jobject this __attribute__((unused)))
{
int rc = snd_seq_open (&seq, "default", SND_SEQ_OPEN_DUPLEX, SND_SEQ_NONBLOCK);
if (rc < 0)
abort ();
snd_seq_set_client_name(seq, "gnu.javax.sound.midi.alsa");
}
/**
* Return a CLAZZ[] filled with ports matching TYPE.
*/
static jobjectArray
getPortDeviceInfo (JNIEnv *env, unsigned type, const char *clazz)
{
jobjectArray rarray;
snd_seq_client_info_t *cinfo;
snd_seq_port_info_t *pinfo;
int client;
int count = 0;
jclass icls;
jmethodID mid;
snd_seq_client_info_alloca(&cinfo);
snd_seq_port_info_alloca(&pinfo);
/* First, count the number of input devices. */
snd_seq_client_info_set_client (cinfo, -1);
while (snd_seq_query_next_client (seq, cinfo) >= 0)
{
client = snd_seq_client_info_get_client (cinfo);
if (client == 0)
continue;
snd_seq_port_info_set_client (pinfo, client);
snd_seq_port_info_set_port (pinfo, -1);
while (snd_seq_query_next_port (seq, pinfo) >= 0)
{
if ((snd_seq_port_info_get_capability (pinfo) & type) != type)
continue;
count++;
}
}
icls = (*env)->FindClass(env, clazz);
mid = (*env)->GetMethodID(env, icls, "<init>",
"(Ljava/lang/String;Ljava/lang/String;JJ)V");
rarray = (jobjectArray) (*env)->NewObjectArray(env, count, icls, NULL);
/* Now, populate our array. */
count = 0;
snd_seq_client_info_set_client (cinfo, -1);
while (snd_seq_query_next_client (seq, cinfo) >= 0)
{
const char *client_name;
client = snd_seq_client_info_get_client (cinfo);
if (client == 0)
continue;
snd_seq_port_info_set_client (pinfo, client);
snd_seq_port_info_set_port (pinfo, -1);
client_name = snd_seq_client_info_get_name (cinfo);
while (snd_seq_query_next_port (seq, pinfo) >= 0)
{
const char *port_name;
if ((snd_seq_port_info_get_capability (pinfo) & type) != type)
continue;
port_name = snd_seq_port_info_get_name (pinfo);
(*env)->SetObjectArrayElement(env, rarray, count,
(*env)->NewObject (env, icls, mid,
(*env)->NewStringUTF (env, client_name),
(*env)->NewStringUTF (env, port_name),
(jlong) snd_seq_port_info_get_client(pinfo),
(jlong) snd_seq_port_info_get_port(pinfo)));
count++;
}
}
return rarray;
}
JNIEXPORT jobjectArray JNICALL
Java_gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider_getInputDeviceInfo_1
(JNIEnv *env, jobject this __attribute__((unused)))
{
return getPortDeviceInfo (env,
(SND_SEQ_PORT_CAP_READ | SND_SEQ_PORT_CAP_SUBS_READ),
"gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaInputPortInfo");
}
JNIEXPORT jobjectArray JNICALL
Java_gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider_getOutputDeviceInfo_1
(JNIEnv *env, jobject this __attribute__((unused)))
{
return getPortDeviceInfo (env,
(SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_SUBS_WRITE),
"gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaOutputPortInfo");
}
@@ -0,0 +1,59 @@
/* gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.c
Copyright (C) 2005
Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
#include <config.h>
#include <gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h>
JNIEXPORT jlong JNICALL
Java_gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice_open_1
(JNIEnv *env __attribute__((unused)), jobject this __attribute__((unused)))
{
/* Nothing yet. */
return 555;
}
JNIEXPORT void JNICALL
Java_gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice_close_1
(JNIEnv *env __attribute__((unused)),
jobject this __attribute__((unused)), jlong s __attribute__((unused)))
{
/* Nothing. */
}
@@ -0,0 +1,150 @@
/* gnu_javax_sound_midi_alsa_AlsaPortDevice.c - Native support
Copyright (C) 2005
Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
#include <config.h>
#include <gnu_javax_sound_midi_alsa_AlsaPortDevice.h>
#include <unistd.h>
#include <alsa/asoundlib.h>
JNIEXPORT void JNICALL
Java_gnu_javax_sound_midi_alsa_AlsaPortDevice_run_1receiver_1thread_1
(JNIEnv *env, jobject this __attribute__((unused)),
jlong client, jlong port, jobject receiver)
{
int rc;
snd_seq_port_info_t *pinfo, *sinfo;
snd_seq_port_subscribe_t *subs;
snd_seq_addr_t sender, dest;
snd_seq_t *seq;
snd_seq_port_info_alloca (&pinfo);
snd_seq_port_info_alloca (&sinfo);
snd_seq_port_subscribe_alloca (&subs);
rc = snd_seq_open (&seq, "default", SND_SEQ_OPEN_DUPLEX, SND_SEQ_NONBLOCK);
snd_seq_port_info_set_capability (pinfo, SND_SEQ_PORT_CAP_WRITE);
snd_seq_port_info_set_type (pinfo, SND_SEQ_PORT_TYPE_MIDI_GENERIC);
rc = snd_seq_create_port (seq, pinfo);
sender.client = (int) client;
sender.port = (int) port;
dest.client = snd_seq_port_info_get_client(pinfo);
dest.port = snd_seq_port_info_get_port(pinfo);
snd_seq_port_subscribe_set_sender (subs, &sender);
snd_seq_port_subscribe_set_dest (subs, &dest);
rc = snd_seq_subscribe_port(seq, subs);
{
int npfd;
struct pollfd *pfd;
jclass smcls, rcls;
jmethodID sminit, rsend;
jbyteArray mba;
jbyte *ba;
jobject msg;
jlong jtimestamp;
npfd = snd_seq_poll_descriptors_count (seq, POLLIN);
pfd = (struct pollfd *) alloca (npfd * sizeof (struct pollfd));
snd_seq_poll_descriptors (seq, pfd, npfd, POLLIN);
smcls = (*env)->FindClass(env, "javax/sound/midi/ShortMessage");
sminit = (*env)->GetMethodID(env, smcls, "<init>", "([B)V");
rcls = (*env)->FindClass(env, "javax/sound/midi/Receiver");
rsend = (*env)->GetMethodID(env, rcls, "send", "(Ljavax/sound/midi/MidiMessage;J)V");
while (1)
{
if (poll (pfd, npfd, 100000) > 0)
{
snd_seq_event_t *ev;
do
{
snd_seq_event_input (seq, &ev);
if ((ev->flags & SND_SEQ_TIME_STAMP_MASK) == SND_SEQ_TIME_STAMP_TICK)
jtimestamp = (jlong) ev->time.tick;
else
jtimestamp = (jlong) ev->time.time.tv_sec * (jlong) 1000000000
+ (jlong) ev->time.time.tv_nsec;
switch (ev->type)
{
case SND_SEQ_EVENT_NOTEON:
mba = (*env)->NewByteArray (env, 3);
ba = (*env)->GetByteArrayElements (env, mba, 0);
ba[0] = 0x90 + ev->data.control.channel;
ba[1] = ev->data.note.note;
ba[2] = ev->data.note.velocity;
(*env)->ReleaseByteArrayElements (env, mba, ba, 0);
msg = (*env)->NewObject(env, smcls, sminit, mba);
(*env)->CallObjectMethod(env, receiver,
rsend, msg, jtimestamp);
break;
case SND_SEQ_EVENT_CONTROLLER:
mba = (*env)->NewByteArray (env, 3);
ba = (*env)->GetByteArrayElements (env, mba, 0);
ba[0] = 0xB0 + ev->data.control.channel;
ba[1] = ev->data.control.param;
ba[2] = ev->data.control.value;
(*env)->ReleaseByteArrayElements (env, mba, ba, 0);
msg = (*env)->NewObject(env, smcls, sminit, mba);
(*env)->CallObjectMethod(env, receiver,
rsend, msg, jtimestamp);
break;
default:
printf ("UNKNOWN EVENT 0x%x\n", ev->type);
break;
}
snd_seq_free_event(ev);
}
while (snd_seq_event_input_pending (seq, 0) > 0);
}
}
}
}
@@ -0,0 +1,9 @@
*.o
*.a
*.lo
*.la
.libs
.depsMakefile
Makefile.in
.deps
Makefile
@@ -0,0 +1,11 @@
nativelib_LTLIBRARIES = libgjsmdssi.la
libgjsmdssi_la_SOURCES = gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.c \
gnu_javax_sound_midi_dssi_DSSISynthesizer.c \
dssi_data.h
libgjsmdssi_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo -ljack
AM_LDFLAGS = @CLASSPATH_MODULE@
AM_CPPFLAGS = @CLASSPATH_INCLUDES@
AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@
@@ -0,0 +1,562 @@
# Makefile.in generated by automake 1.9.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SOURCES = $(libgjsmdssi_la_SOURCES)
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../../..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
subdir = native/jni/midi-dssi
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
$(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/include/config.h
CONFIG_CLEAN_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(nativelibdir)"
nativelibLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(nativelib_LTLIBRARIES)
libgjsmdssi_la_DEPENDENCIES = \
$(top_builddir)/native/jni/classpath/jcl.lo
am_libgjsmdssi_la_OBJECTS = \
gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.lo \
gnu_javax_sound_midi_dssi_DSSISynthesizer.lo
libgjsmdssi_la_OBJECTS = $(am_libgjsmdssi_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(libgjsmdssi_la_SOURCES)
DIST_SOURCES = $(libgjsmdssi_la_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_CLASS_FILES_FALSE = @BUILD_CLASS_FILES_FALSE@
BUILD_CLASS_FILES_TRUE = @BUILD_CLASS_FILES_TRUE@
CAIRO_CFLAGS = @CAIRO_CFLAGS@
CAIRO_LIBS = @CAIRO_LIBS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@
CLASSPATH_MODULE = @CLASSPATH_MODULE@
CP = @CP@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
CREATE_JNI_HEADERS_TRUE = @CREATE_JNI_HEADERS_TRUE@
CREATE_JNI_LIBRARIES_FALSE = @CREATE_JNI_LIBRARIES_FALSE@
CREATE_JNI_LIBRARIES_TRUE = @CREATE_JNI_LIBRARIES_TRUE@
CREATE_QT_PEER_LIBRARIES_FALSE = @CREATE_QT_PEER_LIBRARIES_FALSE@
CREATE_QT_PEER_LIBRARIES_TRUE = @CREATE_QT_PEER_LIBRARIES_TRUE@
CREATE_XMLJ_LIBRARY_FALSE = @CREATE_XMLJ_LIBRARY_FALSE@
CREATE_XMLJ_LIBRARY_TRUE = @CREATE_XMLJ_LIBRARY_TRUE@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DATE = @DATE@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
ECJ = @ECJ@
EGREP = @EGREP@
ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
FIND = @FIND@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJX_FALSE = @FOUND_GCJX_FALSE@
FOUND_GCJX_TRUE = @FOUND_GCJX_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
GCJ = @GCJ@
GCJX = @GCJX@
GJDOC = @GJDOC@
GTK_CAIRO_ENABLED = @GTK_CAIRO_ENABLED@
GTK_CAIRO_FALSE = @GTK_CAIRO_FALSE@
GTK_CAIRO_TRUE = @GTK_CAIRO_TRUE@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
INSTALL_CLASS_FILES_FALSE = @INSTALL_CLASS_FILES_FALSE@
INSTALL_CLASS_FILES_TRUE = @INSTALL_CLASS_FILES_TRUE@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_GLIBJ_ZIP_FALSE = @INSTALL_GLIBJ_ZIP_FALSE@
INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAY = @JAY@
JAY_SKELETON = @JAY_SKELETON@
JIKES = @JIKES@
JIKESENCODING = @JIKESENCODING@
KJC = @KJC@
LDFLAGS = @LDFLAGS@
LIBDEBUG = @LIBDEBUG@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIBVERSION = @LIBVERSION@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKDIR = @MKDIR@
MOC = @MOC@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
PANGOFT2_LIBS = @PANGOFT2_LIBS@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
QT_CFLAGS = @QT_CFLAGS@
QT_LIBS = @QT_LIBS@
RANLIB = @RANLIB@
REGEN_PARSERS_FALSE = @REGEN_PARSERS_FALSE@
REGEN_PARSERS_TRUE = @REGEN_PARSERS_TRUE@
REMOVE = @REMOVE@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
STRIP = @STRIP@
USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
VERSION = @VERSION@
WARNING_CFLAGS = @WARNING_CFLAGS@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
XSLT_LIBS = @XSLT_LIBS@
X_CFLAGS = @X_CFLAGS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
default_toolkit = @default_toolkit@
exec_prefix = @exec_prefix@
glibjdir = @glibjdir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
nativelibdir = @nativelibdir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
vm_classes = @vm_classes@
nativelib_LTLIBRARIES = libgjsmdssi.la
libgjsmdssi_la_SOURCES = gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.c \
gnu_javax_sound_midi_dssi_DSSISynthesizer.c \
dssi_data.h
libgjsmdssi_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo -ljack
AM_LDFLAGS = @CLASSPATH_MODULE@
AM_CPPFLAGS = @CLASSPATH_INCLUDES@
AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@
all: all-am
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu native/jni/midi-dssi/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu native/jni/midi-dssi/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
install-nativelibLTLIBRARIES: $(nativelib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(nativelibdir)" || $(mkdir_p) "$(DESTDIR)$(nativelibdir)"
@list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativelibdir)/$$f'"; \
$(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativelibdir)/$$f"; \
else :; fi; \
done
uninstall-nativelibLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@set -x; list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativelibdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativelibdir)/$$p"; \
done
clean-nativelibLTLIBRARIES:
-test -z "$(nativelib_LTLIBRARIES)" || rm -f $(nativelib_LTLIBRARIES)
@list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libgjsmdssi.la: $(libgjsmdssi_la_OBJECTS) $(libgjsmdssi_la_DEPENDENCIES)
$(LINK) -rpath $(nativelibdir) $(libgjsmdssi_la_LDFLAGS) $(libgjsmdssi_la_OBJECTS) $(libgjsmdssi_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_javax_sound_midi_dssi_DSSISynthesizer.Plo@am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES)
installdirs:
for dir in "$(DESTDIR)$(nativelibdir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool clean-nativelibLTLIBRARIES \
mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-libtool distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am: install-nativelibLTLIBRARIES
install-exec-am:
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-info-am uninstall-nativelibLTLIBRARIES
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-libtool clean-nativelibLTLIBRARIES ctags distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-nativelibLTLIBRARIES install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-info-am \
uninstall-nativelibLTLIBRARIES
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
@@ -0,0 +1,134 @@
The file native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c
contains two functions (get_port_default and set_control) derived from
example code in the DSSI distribution (http://dssi.sourceforge.net).
The original DSSI example code is distributed under the following
terms:
Copyright 2004 Chris Cannam, Steve Harris and Sean Bolton.
Permission to use, copy, modify, distribute, and sell this software
for any purpose is hereby granted without fee, provided that the
above copyright notice and this permission notice are included in
all copies or substantial portions of the software.
The rest of this file contain the original versions of these
functions.
LADSPA_Data get_port_default(const LADSPA_Descriptor *plugin, int port)
{
LADSPA_PortRangeHint hint = plugin->PortRangeHints[port];
float lower = hint.LowerBound *
(LADSPA_IS_HINT_SAMPLE_RATE(hint.HintDescriptor) ? sample_rate : 1.0f);
float upper = hint.UpperBound *
(LADSPA_IS_HINT_SAMPLE_RATE(hint.HintDescriptor) ? sample_rate : 1.0f);
if (!LADSPA_IS_HINT_HAS_DEFAULT(hint.HintDescriptor)) {
if (!LADSPA_IS_HINT_BOUNDED_BELOW(hint.HintDescriptor) ||
!LADSPA_IS_HINT_BOUNDED_ABOVE(hint.HintDescriptor)) {
/* No hint, its not bounded, wild guess */
return 0.0f;
}
if (lower <= 0.0f && upper >= 0.0f) {
/* It spans 0.0, 0.0 is often a good guess */
return 0.0f;
}
/* No clues, return minimum */
return lower;
}
/* Try all the easy ones */
if (LADSPA_IS_HINT_DEFAULT_0(hint.HintDescriptor)) {
return 0.0f;
} else if (LADSPA_IS_HINT_DEFAULT_1(hint.HintDescriptor)) {
return 1.0f;
} else if (LADSPA_IS_HINT_DEFAULT_100(hint.HintDescriptor)) {
return 100.0f;
} else if (LADSPA_IS_HINT_DEFAULT_440(hint.HintDescriptor)) {
return 440.0f;
}
/* All the others require some bounds */
if (LADSPA_IS_HINT_BOUNDED_BELOW(hint.HintDescriptor)) {
if (LADSPA_IS_HINT_DEFAULT_MINIMUM(hint.HintDescriptor)) {
return lower;
}
}
if (LADSPA_IS_HINT_BOUNDED_ABOVE(hint.HintDescriptor)) {
if (LADSPA_IS_HINT_DEFAULT_MAXIMUM(hint.HintDescriptor)) {
return upper;
}
if (LADSPA_IS_HINT_BOUNDED_BELOW(hint.HintDescriptor)) {
if (LADSPA_IS_HINT_DEFAULT_LOW(hint.HintDescriptor)) {
return lower * 0.75f + upper * 0.25f;
} else if (LADSPA_IS_HINT_DEFAULT_MIDDLE(hint.HintDescriptor)) {
return lower * 0.5f + upper * 0.5f;
} else if (LADSPA_IS_HINT_DEFAULT_HIGH(hint.HintDescriptor)) {
return lower * 0.25f + upper * 0.75f;
}
}
}
/* fallback */
return 0.0f;
}
void
setControl(d3h_instance_t *instance, long controlIn, snd_seq_event_t *event)
{
long port = pluginControlInPortNumbers[controlIn];
const LADSPA_Descriptor *p = instance->plugin->descriptor->LADSPA_Plugin;
LADSPA_PortRangeHintDescriptor d = p->PortRangeHints[port].HintDescriptor;
LADSPA_Data lb = p->PortRangeHints[port].LowerBound *
(LADSPA_IS_HINT_SAMPLE_RATE(p->PortRangeHints[port].HintDescriptor) ?
sample_rate : 1.0f);
LADSPA_Data ub = p->PortRangeHints[port].UpperBound *
(LADSPA_IS_HINT_SAMPLE_RATE(p->PortRangeHints[port].HintDescriptor) ?
sample_rate : 1.0f);
float value = (float)event->data.control.value;
if (!LADSPA_IS_HINT_BOUNDED_BELOW(d)) {
if (!LADSPA_IS_HINT_BOUNDED_ABOVE(d)) {
/* unbounded: might as well leave the value alone. */
} else {
/* bounded above only. just shift the range. */
value = ub - 127.0f + value;
}
} else {
if (!LADSPA_IS_HINT_BOUNDED_ABOVE(d)) {
/* bounded below only. just shift the range. */
value = lb + value;
} else {
/* bounded both ends. more interesting. */
if (LADSPA_IS_HINT_LOGARITHMIC(d)) {
const float llb = logf(lb);
const float lub = logf(ub);
value = expf(llb + ((lub - llb) * value / 127.0f));
} else {
value = lb + ((ub - lb) * value / 127.0f);
}
}
}
if (verbose) {
printf("%s: %s MIDI controller %d=%d -> control in %ld=%f\n", myName,
instance->friendly_name, event->data.control.param,
event->data.control.value, controlIn, value);
}
pluginControlIns[controlIn] = value;
pluginPortUpdated[controlIn] = 1;
}
@@ -0,0 +1,121 @@
/* dssi_data.h - DSSI data
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
#include <stdlib.h>
#include <dlfcn.h>
#include <sys/time.h>
#include <jni.h>
#include <dssi.h>
#include <jack/jack.h>
#include <alsa/asoundlib.h>
#include <alsa/seq.h>
#include <stdio.h>
#include "target_native.h"
#include "target_native_misc.h"
#include "../classpath/jcl.h"
/* Specify the size of the circular buffer. It only needs to be big
enough to hold the events that happen between jack callbacks (~
1/40th of a second). */
#define EVENT_BUFFER_SIZE 1024
/* Helper macros for going between pointers and jlongs. */
#define JLONG_TO_PTR(T,P) ((T *)(long)P)
#define PTR_TO_JLONG(P) ((jlong)(long)P)
/* Every DSSI Synthesizer has one of these associated with it. The
Java class sees it as a "long" handle. */
typedef struct
{
/* This is a handle to the dlopen'ed .so file containing the DSSI
synthesizer. */
void *dlhandle;
/* The function to call to get the DSS_Descriptor. */
DSSI_Descriptor_Function fn;
/* The descriptor for this synthesizer. See the dssi.h system
header. */
const DSSI_Descriptor *desc;
/* We currently open a jack client connection for every
synthesizer. */
jack_client_t *jack_client;
/* We currently only handle stereo jack connections. Output from
mono synthesizers is sent to both left and right ports. */
jack_port_t *jack_left_output_port;
jack_port_t *jack_right_output_port;
/* We use a circular buffer to hold MIDI events before processing
them in the jack audio processing callback function. */
snd_seq_event_t midiEventBuffer[EVENT_BUFFER_SIZE];
int midiEventReadIndex;
int midiEventWriteIndex;
/* This is a handle the synthesizers underlying LADSPA structure.
See the ladspa.h system header for details. */
LADSPA_Handle plugin_handle;
/* These are buffers we pass to the DSSI Synthesizer for
filling. */
float *left_buffer;
float *right_buffer;
/* The number of input controls for this synth. */
unsigned control_count;
/* An array of control values, control_count in length. */
LADSPA_Data *control_values;
/* A mapping of MIDI controllers to control values. There are a
maximum of 128 MIDI controllers. */
unsigned control_value_map[128];
/* A mapping of MIDI controllers to LADSPA ports. There are a
maximum of 128 MIDI controllers. */
unsigned control_port_map[128];
/* The sample rate. */
jack_nframes_t sample_rate;
} dssi_data;
@@ -0,0 +1,139 @@
/* gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.c - DSSI Provider
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
#include <config.h>
#include <gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h>
#include "dssi_data.h"
void
Java_gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider_dlclose_1
(JNIEnv *env, jclass clazz __attribute__((unused)), jlong sohandle)
{
dssi_data *data = (dssi_data *) (long) sohandle;
dlclose (data->dlhandle);
JCL_free (env, data);
}
jlong
Java_gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider_dlopen_1
(JNIEnv *env, jclass clazz __attribute__((unused)), jstring name)
{
const char *filename;
void *handle;
DSSI_Descriptor_Function fn;
dssi_data *data = 0;
filename = JCL_jstring_to_cstring (env, name);
if (filename == NULL)
return (0);
handle = dlopen(filename, RTLD_NOW);
if (handle == 0)
goto done;
fn = (DSSI_Descriptor_Function) dlsym(handle, "dssi_descriptor");
if (fn == 0)
{
dlclose(handle);
goto done;
}
data = (dssi_data *) JCL_malloc(env, sizeof(dssi_data));
data->dlhandle = handle;
data->fn = fn;
data->midiEventReadIndex = 0;
data->midiEventWriteIndex = 0;
done:
JCL_free_cstring (env, name, filename);
return PTR_TO_JLONG(data);
}
jlong
Java_gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider_getDSSIHandle_1
(JNIEnv *env __attribute__((unused)),
jclass clazz __attribute__((unused)), jlong handle, jlong index)
{
dssi_data *data = JLONG_TO_PTR(dssi_data,handle);
data->desc = (data->fn)(index);
return PTR_TO_JLONG(data->desc);
}
jstring
Java_gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider_getDSSIName_1
(JNIEnv *env, jclass clazz __attribute__((unused)), jlong handle)
{
DSSI_Descriptor *desc = JLONG_TO_PTR(DSSI_Descriptor,handle);
const char *str = desc->LADSPA_Plugin->Name;
return (*env)->NewStringUTF (env, str);
}
jstring
Java_gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider_getDSSICopyright_1
(JNIEnv *env, jclass clazz __attribute__((unused)), jlong handle)
{
DSSI_Descriptor *desc = JLONG_TO_PTR(DSSI_Descriptor,handle);
const char *str = desc->LADSPA_Plugin->Copyright;
return (*env)->NewStringUTF (env, str);
}
jstring
Java_gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider_getDSSIVendor_1
(JNIEnv *env, jclass clazz __attribute__((unused)), jlong handle)
{
DSSI_Descriptor *desc = JLONG_TO_PTR(DSSI_Descriptor,handle);
const char *str = desc->LADSPA_Plugin->Maker;
return (*env)->NewStringUTF (env, str);
}
jstring
Java_gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider_getDSSILabel_1
(JNIEnv *env, jclass clazz __attribute__((unused)), jlong handle)
{
DSSI_Descriptor *desc = JLONG_TO_PTR(DSSI_Descriptor,handle);
const char *str = desc->LADSPA_Plugin->Label;
return (*env)->NewStringUTF (env, str);
}
@@ -0,0 +1,584 @@
/* gnu_javax_sound_midi_dssi_DSSISynthesizer.c - DSSI Synth
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
/* The original get_port_default() and set_control() routines were
* copied from the DSSI source distribution and are covered by the
* following copyright and license...
*
* Copyright 2004 Chris Cannam, Steve Harris and Sean Bolton.
*
* Permission to use, copy, modify, distribute, and sell this software
* for any purpose is hereby granted without fee, provided that the
* above copyright notice and this permission notice are included in
* all copies or substantial portions of the software.
*/
#include <config.h>
#include <gnu_javax_sound_midi_dssi_DSSISynthesizer.h>
#include <math.h>
#include "dssi_data.h"
/* Define this for debug output. */
#undef DEBUG_DSSI_PROVIDER
static void set_control (dssi_data *data, snd_seq_event_t *event);
/**
* The jack callback routine.
*
* This function is called by the jack audio system in its own thread
* whenever it needs new audio data.
*
*/
static int
process (jack_nframes_t nframes, void *arg)
{
dssi_data *data = (dssi_data *) arg;
int index;
jack_default_audio_sample_t *buffer;
/* Look through the event buffer to see if any control values
need changing. */
for ( index = data->midiEventReadIndex;
index != data->midiEventWriteIndex;
index = (index + 1) % EVENT_BUFFER_SIZE)
{
if (data->midiEventBuffer[index].type == SND_SEQ_EVENT_CONTROLLER)
set_control (data, & data->midiEventBuffer[index]);
}
if (data->desc->run_synth)
{
/* Call the synth audio processing routine. */
data->desc->run_synth
(data->plugin_handle,
nframes,
&data->midiEventBuffer[data->midiEventReadIndex],
data->midiEventWriteIndex - data->midiEventReadIndex);
}
else
if (data->desc->run_multiple_synths)
{
snd_seq_event_t *events =
&data->midiEventBuffer[data->midiEventReadIndex];
unsigned long event_count =
data->midiEventWriteIndex - data->midiEventReadIndex;
/* Call the synth audio processing routine. */
data->desc->run_multiple_synths
(1,
& (data->plugin_handle),
nframes,
&events,
&event_count);
}
/* Update the read index on our circular buffer. */
data->midiEventReadIndex = data->midiEventWriteIndex;
/* Copy output from the synth to jack.
FIXME: This is hack that only gets one channel from the synth and
send that to both jack ports (until we handle stero synths
properly).
FIXME: Can we avoid this copying? */
buffer = jack_port_get_buffer(data->jack_left_output_port, nframes);
memcpy (buffer, data->left_buffer, nframes * sizeof(LADSPA_Data));
buffer = jack_port_get_buffer(data->jack_right_output_port, nframes);
memcpy (buffer, data->left_buffer, nframes * sizeof(LADSPA_Data));
return 0;
}
/**
* Calculate a reasonable default value for a specific control port.
* This is mostly copied from the DSSI example code. Copyright info
* is found at the top of this file.
*
*/
static LADSPA_Data
get_port_default (const LADSPA_Descriptor *plugin,
int port, jack_nframes_t sample_rate)
{
LADSPA_PortRangeHint hint = plugin->PortRangeHints[port];
float lower = hint.LowerBound *
(LADSPA_IS_HINT_SAMPLE_RATE(hint.HintDescriptor) ? sample_rate : 1.0f);
float upper = hint.UpperBound *
(LADSPA_IS_HINT_SAMPLE_RATE(hint.HintDescriptor) ? sample_rate : 1.0f);
if (!LADSPA_IS_HINT_HAS_DEFAULT(hint.HintDescriptor))
{
if (!LADSPA_IS_HINT_BOUNDED_BELOW(hint.HintDescriptor) ||
!LADSPA_IS_HINT_BOUNDED_ABOVE(hint.HintDescriptor))
{
/* No hint, its not bounded, wild guess */
return 0.0f;
}
if (lower <= 0.0f && upper >= 0.0f)
{
/* It spans 0.0, 0.0 is often a good guess */
return 0.0f;
}
/* No clues, return minimum */
return lower;
}
/* Try all the easy ones */
if (LADSPA_IS_HINT_DEFAULT_0(hint.HintDescriptor))
return 0.0f;
else if (LADSPA_IS_HINT_DEFAULT_1(hint.HintDescriptor))
return 1.0f;
else if (LADSPA_IS_HINT_DEFAULT_100(hint.HintDescriptor))
return 100.0f;
else if (LADSPA_IS_HINT_DEFAULT_440(hint.HintDescriptor))
return 440.0f;
/* All the others require some bounds */
if (LADSPA_IS_HINT_BOUNDED_BELOW(hint.HintDescriptor)
&& (LADSPA_IS_HINT_DEFAULT_MINIMUM(hint.HintDescriptor)))
return lower;
if (LADSPA_IS_HINT_BOUNDED_ABOVE(hint.HintDescriptor))
{
if (LADSPA_IS_HINT_DEFAULT_MAXIMUM(hint.HintDescriptor))
return upper;
if (LADSPA_IS_HINT_BOUNDED_BELOW(hint.HintDescriptor))
{
if (LADSPA_IS_HINT_DEFAULT_LOW(hint.HintDescriptor))
return lower * 0.75f + upper * 0.25f;
else if (LADSPA_IS_HINT_DEFAULT_MIDDLE(hint.HintDescriptor))
return lower * 0.5f + upper * 0.5f;
else if (LADSPA_IS_HINT_DEFAULT_HIGH(hint.HintDescriptor))
return lower * 0.25f + upper * 0.75f;
}
}
/* fallback */
return 0.0f;
}
/**
* Set a control value by mapping the MIDI event to a suitable value
* for this control.
* This is mostly copied from the DSSI example code. Copyright info
* is found at the top of this file.
*
*/
static void
set_control(dssi_data *data, snd_seq_event_t *event)
{
unsigned control = event->data.control.param;
unsigned port = data->control_port_map[control];
const LADSPA_Descriptor *p = data->desc->LADSPA_Plugin;
LADSPA_PortRangeHintDescriptor d = p->PortRangeHints[port].HintDescriptor;
LADSPA_Data lb = p->PortRangeHints[port].LowerBound *
(LADSPA_IS_HINT_SAMPLE_RATE(p->PortRangeHints[port].HintDescriptor) ?
data->sample_rate : 1.0f);
LADSPA_Data ub = p->PortRangeHints[port].UpperBound *
(LADSPA_IS_HINT_SAMPLE_RATE(p->PortRangeHints[port].HintDescriptor) ?
data->sample_rate : 1.0f);
float value = (float)event->data.control.value;
if (!LADSPA_IS_HINT_BOUNDED_BELOW(d))
{
if (!LADSPA_IS_HINT_BOUNDED_ABOVE(d))
{
/* unbounded: might as well leave the value alone. */
}
else
{
/* bounded above only. just shift the range. */
value = ub - 127.0f + value;
}
}
else
{
if (!LADSPA_IS_HINT_BOUNDED_ABOVE(d))
{
/* bounded below only. just shift the range. */
value = lb + value;
}
else
{
/* bounded both ends. more interesting. */
if (LADSPA_IS_HINT_LOGARITHMIC(d))
{
const float llb = logf(lb);
const float lub = logf(ub);
value = expf(llb + ((lub - llb) * value / 127.0f));
}
else
{
value = lb + ((ub - lb) * value / 127.0f);
}
}
}
#ifdef DEBUG_DSSI_PROVIDER
printf("MIDI controller %d=%d -> control in %u=%f\n",
event->data.control.param,
event->data.control.value,
data->control_value_map[control], value);
#endif
data->control_values[data->control_value_map[control]] = value;
}
/**
* Open a new synthesizer. This currently involves instantiating a
* new synth, creating a new jack client connection, and activating
* both.
*
*/
JNIEXPORT void JNICALL
Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_open_1
(JNIEnv *env, jclass clazz __attribute__((unused)), jlong handle)
{
unsigned int port_count, j, cindex;
const char **ports;
int controller = 0;
dssi_data *data = (dssi_data *) (long) handle;
if ((data->jack_client = jack_client_new (data->desc->LADSPA_Plugin->Label)) == 0)
{
/* JCL_ThrowException (env, "javax/sound/midi/MidiUnavailableException", */
JCL_ThrowException (env, "java/io/IOException",
"can't create jack client");
return;
}
/* Get the jack sample rate, which may be used in default control port
value calculations. */
data->sample_rate = jack_get_sample_rate (data->jack_client);
data->plugin_handle =
(data->desc->LADSPA_Plugin->instantiate)(data->desc->LADSPA_Plugin,
data->sample_rate);
if (jack_set_process_callback (data->jack_client, process, data) != 0)
{
JCL_ThrowException (env, "java/io/IOException",
"can't set jack process callback");
return;
}
data->jack_left_output_port =
jack_port_register (data->jack_client, "output_left",
JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0);
data->jack_right_output_port =
jack_port_register (data->jack_client, "output_right",
JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0);
/* Count the number of controls and audio ouput ports. */
port_count = data->control_count = 0;
for (j = 0; j < data->desc->LADSPA_Plugin->PortCount; j++)
{
LADSPA_PortDescriptor pod =
data->desc->LADSPA_Plugin->PortDescriptors[j];
if (LADSPA_IS_PORT_AUDIO(pod) && LADSPA_IS_PORT_OUTPUT(pod))
port_count++;
else if (LADSPA_IS_PORT_CONTROL(pod) && LADSPA_IS_PORT_INPUT(pod))
data->control_count++;
}
/* Allocate the array of control values. */
data->control_values =
(LADSPA_Data *) JCL_malloc (env,
data->control_count * sizeof (LADSPA_Data));
/* Initialize the MIDI control map. */
memset (data->control_value_map, 0, data->control_count * sizeof(unsigned));
/* Create buffers for each port. */
for (cindex = 0, j = 0; j < data->desc->LADSPA_Plugin->PortCount; j++)
{
LADSPA_PortDescriptor pod =
data->desc->LADSPA_Plugin->PortDescriptors[j];
if (LADSPA_IS_PORT_AUDIO(pod) && LADSPA_IS_PORT_OUTPUT(pod))
{
data->left_buffer =
(float *) calloc(jack_get_buffer_size(data->jack_client),
sizeof(float));
(data->desc->LADSPA_Plugin->connect_port)(data->plugin_handle, j,
data->left_buffer);
}
else
if (LADSPA_IS_PORT_CONTROL(pod) && LADSPA_IS_PORT_INPUT(pod))
{
/* This is an input control port. Connect it to a properly
initialized value in our controller value array. */
(data->desc->LADSPA_Plugin->connect_port)
(data->plugin_handle, j, &(data->control_values[cindex]));
data->control_values[cindex] =
get_port_default (data->desc->LADSPA_Plugin,
j, data->sample_rate);
/* Set up the mapping between MIDI controllers and this
contoller value. */
if (data->desc->get_midi_controller_for_port)
{
controller = data->desc->
get_midi_controller_for_port(data->plugin_handle, j);
if ((controller != DSSI_NONE) && DSSI_IS_CC(controller))
{
data->control_value_map[DSSI_CC_NUMBER(controller)] = cindex;
data->control_port_map[DSSI_CC_NUMBER(controller)] = j;
#ifdef DEBUG_DSSI_PROVIDER
printf ("MIDI Controller 0x%x [%s] = %g\n",
DSSI_CC_NUMBER(controller),
data->desc->LADSPA_Plugin->PortNames[j],
data->control_values[cindex]);
#endif
}
}
cindex++;
}
}
(data->desc->LADSPA_Plugin->activate)(data->plugin_handle);
if (jack_activate (data->jack_client))
JCL_ThrowException (env, "java/io/IOException",
"can't activate jack client");
/* Try to connect the synth output to hardware audio ports. */
ports = jack_get_ports (data->jack_client, NULL, NULL,
JackPortIsPhysical | JackPortIsInput);
if (ports)
{
if (ports[0] && ports[1])
{
/* Don't bother checking return values. Failing is OK. */
jack_connect (data->jack_client,
jack_port_name (data->jack_left_output_port),
ports[0]);
jack_connect (data->jack_client,
jack_port_name (data->jack_right_output_port),
ports[1]);
}
free(ports);
}
}
/**
* This is called when we receive a new MIDI CONTROL CHANGE message.
* Simply stick an appropriate event in the event buffer. This will
* get processed in the jack callback function.
*/
JNIEXPORT void JNICALL
Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_controlChange_1
(JNIEnv *env __attribute__((unused)), jclass clazz __attribute__((unused)),
jlong handle, jint channel, jint control, jint value)
{
dssi_data *data = JLONG_TO_PTR(dssi_data,handle);
/* Insert this event in the event buffer. */
snd_seq_event_t *ev = & data->midiEventBuffer[data->midiEventWriteIndex];
/* Set the event value. */
snd_seq_ev_set_controller (ev, channel, control, value);
data->midiEventWriteIndex =
(data->midiEventWriteIndex + 1) % EVENT_BUFFER_SIZE;
}
/**
* This is called when we receive a new MIDI NOTE ON message. Simply
* stick an appropriate event in the event buffer. This will get
* processed in the jack callback function.
*/
JNIEXPORT void JNICALL
Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_noteOn_1
(JNIEnv *env __attribute__((unused)), jclass clazz __attribute__((unused)),
jlong handle, jint channel, jint note, jint velocity)
{
dssi_data *data = JLONG_TO_PTR(dssi_data,handle);
/* Insert this event in the event buffer. */
snd_seq_event_t *ev = & data->midiEventBuffer[data->midiEventWriteIndex];
ev->type = SND_SEQ_EVENT_NOTEON;
ev->data.control.channel = channel;
ev->data.note.note = note;
ev->data.note.velocity = velocity;
data->midiEventWriteIndex =
(data->midiEventWriteIndex + 1) % EVENT_BUFFER_SIZE;
}
/**
* This is called when we receive a new MIDI NOTE OFF message. Simply
* stick an appropriate event in the event buffer. This will get
* processed in the jack callback function.
*/
JNIEXPORT void JNICALL
Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_noteOff_1
(JNIEnv *env __attribute__((unused)),
jclass clazz __attribute__((unused)),
jlong handle, jint channel, jint note, jint velocity)
{
dssi_data *data = JLONG_TO_PTR(dssi_data,handle);
/* Insert this event in the event buffer. */
snd_seq_event_t *ev = & data->midiEventBuffer[data->midiEventWriteIndex];
ev->type = SND_SEQ_EVENT_NOTEOFF;
ev->data.control.channel = channel;
ev->data.note.note = note;
ev->data.note.velocity = velocity;
data->midiEventWriteIndex =
(data->midiEventWriteIndex + 1) % EVENT_BUFFER_SIZE;
}
JNIEXPORT void JNICALL
Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_setPolyPressure_1
(JNIEnv *env __attribute__((unused)), jclass clazz __attribute__((unused)),
jlong handle __attribute__((unused)), jint channel __attribute__((unused)),
jint note __attribute__((unused)), jint velocity __attribute__((unused)))
{
}
JNIEXPORT jint JNICALL
Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_getPolyPressure_1
(JNIEnv *env __attribute__((unused)), jclass clazz __attribute__((unused)),
jlong handle __attribute__((unused)), jint channel __attribute__((unused)),
jint note __attribute__((unused)))
{
return 0;
}
JNIEXPORT void JNICALL
Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_close_1
(JNIEnv *env __attribute__((unused)), jclass clazz __attribute__((unused)),
jlong handle __attribute__((unused)))
{
}
/* FIXME: These next three functions are really inefficient because
we're instantiating and cleaning up plugin instances just to query
values. */
JNIEXPORT jstring JNICALL
Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_getProgramName_1
(JNIEnv *env, jclass clazz __attribute__((unused)),
jlong handle, jint index)
{
LADSPA_Handle lhandle;
jstring name = (jstring) NULL;
dssi_data *data = JLONG_TO_PTR(dssi_data, handle);
if (data->desc->get_program == NULL)
return NULL;
lhandle =
(data->desc->LADSPA_Plugin->instantiate)(data->desc->LADSPA_Plugin,
48000);
const DSSI_Program_Descriptor *program =
(data->desc->get_program)(lhandle, (unsigned long) index);
if (program)
name = (*env)->NewStringUTF (env, program->Name);
(data->desc->LADSPA_Plugin->cleanup)(lhandle);
return name;
}
JNIEXPORT jint JNICALL
Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_getProgramBank_1
(JNIEnv *env __attribute__((unused)), jclass clazz __attribute__((unused)),
jlong handle, jint index)
{
LADSPA_Handle lhandle;
jint result = -1;
dssi_data *data = JLONG_TO_PTR(dssi_data, handle);
lhandle =
(data->desc->LADSPA_Plugin->instantiate)(data->desc->LADSPA_Plugin,
48000);
const DSSI_Program_Descriptor *program =
(data->desc->get_program)(lhandle, (unsigned long) index);
if (program)
result = (jint) program->Bank;
(data->desc->LADSPA_Plugin->cleanup)(lhandle);
return result;
}
JNIEXPORT jint JNICALL
Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_getProgramProgram_1
(JNIEnv *env __attribute__((unused)), jclass clazz __attribute__((unused)),
jlong handle, jint index)
{
LADSPA_Handle lhandle;
jint result = -1;
dssi_data *data = JLONG_TO_PTR(dssi_data, handle);
lhandle =
(data->desc->LADSPA_Plugin->instantiate)(data->desc->LADSPA_Plugin,
48000);
const DSSI_Program_Descriptor *program =
(data->desc->get_program)(lhandle, (unsigned long) index);
if (program)
result = (jint) program->Program;
(data->desc->LADSPA_Plugin->cleanup)(lhandle);
return result;
}
JNIEXPORT void JNICALL
Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_selectProgram_1
(JNIEnv *env __attribute__((unused)), jclass clazz __attribute__((unused)),
jlong handle, jint bank, jint program)
{
dssi_data *data = JLONG_TO_PTR(dssi_data, handle);
(data->desc->select_program)(data->plugin_handle,
(unsigned) bank, (unsigned) program);
}
@@ -45,10 +45,8 @@ target_triplet = @target@
subdir = native/jni/qt-peer
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../config/lead-dot.m4 \
$(top_srcdir)/../../config/no-executables.m4 \
$(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/accross.m4 \
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
$(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
@@ -121,10 +119,14 @@ CLASSPATH_MODULE = @CLASSPATH_MODULE@
CP = @CP@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -261,6 +263,7 @@ build_vendor = @build_vendor@
datadir = @datadir@
default_toolkit = @default_toolkit@
exec_prefix = @exec_prefix@
glibjdir = @glibjdir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -274,6 +277,7 @@ libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
nativelibdir = @nativelibdir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -35,6 +35,7 @@ this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
#include <assert.h>
#include <QWidget>
#include <QPoint>
@@ -42,10 +42,8 @@ target_triplet = @target@
subdir = native/jni/xmlj
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../config/lead-dot.m4 \
$(top_srcdir)/../../config/no-executables.m4 \
$(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/accross.m4 \
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
$(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
@@ -97,10 +95,14 @@ CLASSPATH_MODULE = @CLASSPATH_MODULE@
CP = @CP@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -237,6 +239,7 @@ build_vendor = @build_vendor@
datadir = @datadir@
default_toolkit = @default_toolkit@
exec_prefix = @exec_prefix@
glibjdir = @glibjdir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -250,6 +253,7 @@ libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
nativelibdir = @nativelibdir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -39,10 +39,8 @@ target_triplet = @target@
subdir = native/target/Linux
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../config/lead-dot.m4 \
$(top_srcdir)/../../config/no-executables.m4 \
$(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/accross.m4 \
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
$(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
@@ -75,10 +73,14 @@ CLASSPATH_MODULE = @CLASSPATH_MODULE@
CP = @CP@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -215,6 +217,7 @@ build_vendor = @build_vendor@
datadir = @datadir@
default_toolkit = @default_toolkit@
exec_prefix = @exec_prefix@
glibjdir = @glibjdir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -228,6 +231,7 @@ libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
nativelibdir = @nativelibdir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
+8 -4
View File
@@ -39,10 +39,8 @@ target_triplet = @target@
subdir = native/target
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../config/lead-dot.m4 \
$(top_srcdir)/../../config/no-executables.m4 \
$(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/accross.m4 \
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
$(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
@@ -84,10 +82,14 @@ CLASSPATH_MODULE = @CLASSPATH_MODULE@
CP = @CP@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -224,6 +226,7 @@ build_vendor = @build_vendor@
datadir = @datadir@
default_toolkit = @default_toolkit@
exec_prefix = @exec_prefix@
glibjdir = @glibjdir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -237,6 +240,7 @@ libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
nativelibdir = @nativelibdir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -39,10 +39,8 @@ target_triplet = @target@
subdir = native/target/generic
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../config/lead-dot.m4 \
$(top_srcdir)/../../config/no-executables.m4 \
$(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/accross.m4 \
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
$(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
@@ -75,10 +73,14 @@ CLASSPATH_MODULE = @CLASSPATH_MODULE@
CP = @CP@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -215,6 +217,7 @@ build_vendor = @build_vendor@
datadir = @datadir@
default_toolkit = @default_toolkit@
exec_prefix = @exec_prefix@
glibjdir = @glibjdir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -228,6 +231,7 @@ libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
nativelibdir = @nativelibdir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@