summaryrefslogtreecommitdiff
path: root/portaudio/bindings/java/c/src/jpa_tools.c
diff options
context:
space:
mode:
authorsanine <sanine.not@pm.me>2022-08-27 23:52:56 -0500
committersanine <sanine.not@pm.me>2022-08-27 23:52:56 -0500
commita4dd0ad63c00f4dee3b86dfd3075d1d61b2b3180 (patch)
tree13bd5bfa15e6fea2a12f176bae79adf9c6fd0933 /portaudio/bindings/java/c/src/jpa_tools.c
parentbde3e4f1bb7b8f8abca0884a7d994ee1c17a66b1 (diff)
add plibsys
Diffstat (limited to 'portaudio/bindings/java/c/src/jpa_tools.c')
-rw-r--r--portaudio/bindings/java/c/src/jpa_tools.c208
1 files changed, 0 insertions, 208 deletions
diff --git a/portaudio/bindings/java/c/src/jpa_tools.c b/portaudio/bindings/java/c/src/jpa_tools.c
deleted file mode 100644
index e3f903a..0000000
--- a/portaudio/bindings/java/c/src/jpa_tools.c
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * Portable Audio I/O Library
- * Java Binding for PortAudio
- *
- * Based on the Open Source API proposed by Ross Bencina
- * Copyright (c) 2008 Ross Bencina
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files
- * (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge,
- * publish, distribute, sublicense, and/or sell copies of the Software,
- * and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
- * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
- * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/*
- * The text above constitutes the entire PortAudio license; however,
- * the PortAudio community also makes the following non-binding requests:
- *
- * Any person wishing to distribute modifications to the Software is
- * requested to send the modifications to the original developer so that
- * they can be incorporated into the canonical version. It is also
- * requested that these non-binding requests be included along with the
- * license above.
- */
-
-#include "com_portaudio_PortAudio.h"
-#include "portaudio.h"
-#include "jpa_tools.h"
-
-jint jpa_GetIntField( JNIEnv *env, jclass cls, jobject obj, const char *fieldName )
-{
- /* Look for the instance field maxInputChannels in cls */
- jfieldID fid = (*env)->GetFieldID(env, cls, fieldName, "I");
- if (fid == NULL)
- {
- jpa_ThrowError( env, "Cannot find integer JNI field." );
- return 0;
- }
- else
- {
- return (*env)->GetIntField(env, obj, fid );
- }
-}
-
-void jpa_SetIntField( JNIEnv *env, jclass cls, jobject obj, const char *fieldName, jint value )
-{
- /* Look for the instance field maxInputChannels in cls */
- jfieldID fid = (*env)->GetFieldID(env, cls, fieldName, "I");
- if (fid == NULL)
- {
- jpa_ThrowError( env, "Cannot find integer JNI field." );
- }
- else
- {
- (*env)->SetIntField(env, obj, fid, value );
- }
-}
-
-jlong jpa_GetLongField( JNIEnv *env, jclass cls, jobject obj, const char *fieldName )
-{
- /* Look for the instance field maxInputChannels in cls */
- jfieldID fid = (*env)->GetFieldID(env, cls, fieldName, "J");
- if (fid == NULL)
- {
- jpa_ThrowError( env, "Cannot find long JNI field." );
- return 0L;
- }
- else
- {
- return (*env)->GetLongField(env, obj, fid );
- }
-}
-
-void jpa_SetLongField( JNIEnv *env, jclass cls, jobject obj, const char *fieldName, jlong value )
-{
- /* Look for the instance field maxInputChannels in cls */
- jfieldID fid = (*env)->GetFieldID(env, cls, fieldName, "J");
- if (fid == NULL)
- {
- jpa_ThrowError( env, "Cannot find long JNI field." );
- }
- else
- {
- (*env)->SetLongField(env, obj, fid, value );
- }
-}
-
-
-void jpa_SetDoubleField( JNIEnv *env, jclass cls, jobject obj, const char *fieldName, jdouble value )
-{
- /* Look for the instance field maxInputChannels in cls */
- jfieldID fid = (*env)->GetFieldID(env, cls, fieldName, "D");
- if (fid == NULL)
- {
- jpa_ThrowError( env, "Cannot find double JNI field." );
- }
- else
- {
- (*env)->SetDoubleField(env, obj, fid, value );
- }
-}
-
-
-jdouble jpa_GetDoubleField( JNIEnv *env, jclass cls, jobject obj, const char *fieldName )
-{
- /* Look for the instance field maxInputChannels in cls */
- jfieldID fid = (*env)->GetFieldID(env, cls, fieldName, "D");
- if (fid == NULL)
- {
- jpa_ThrowError( env, "Cannot find double JNI field." );
- return 0;
- }
- else
- {
- return (*env)->GetDoubleField(env, obj, fid );
- }
-}
-
-void jpa_SetStringField( JNIEnv *env, jclass cls, jobject obj, const char *fieldName, const char *value )
-{
- /* Look for the instance field maxInputChannels in cls */
- jfieldID fid = (*env)->GetFieldID(env, cls, fieldName, "Ljava/lang/String;");
- if (fid == NULL)
- {
- jpa_ThrowError( env, "Cannot find String JNI field." );
- }
- else
- {
- jstring jstr = (*env)->NewStringUTF(env, value);
- if (jstr == NULL)
- {
- jpa_ThrowError( env, "Cannot create new String." );
- }
- else
- {
- (*env)->SetObjectField(env, obj, fid, jstr );
- }
- }
-}
-
-PaStreamParameters *jpa_FillStreamParameters( JNIEnv *env, jobject jstreamParam, PaStreamParameters *myParams )
-{
- jclass cls;
-
- if( jstreamParam == NULL ) return NULL; // OK, not an error
-
- cls = (*env)->GetObjectClass(env, jstreamParam);
-
- myParams->channelCount = jpa_GetIntField( env, cls, jstreamParam, "channelCount" );
- myParams->device = jpa_GetIntField( env, cls, jstreamParam, "device" );
- myParams->sampleFormat = jpa_GetIntField( env, cls, jstreamParam, "sampleFormat" );
- myParams->suggestedLatency = jpa_GetDoubleField( env, cls, jstreamParam, "suggestedLatency" );
- myParams->hostApiSpecificStreamInfo = NULL;
-
- return myParams;
-}
-
-// Create an exception that will be thrown when we return from the JNI call.
-jint jpa_ThrowError( JNIEnv *env, const char *message )
-{
- return (*env)->ThrowNew(env, (*env)->FindClass( env, "java/lang/RuntimeException"),
- message );
-}
-
-// Throw an exception on error.
-jint jpa_CheckError( JNIEnv *env, PaError err )
-{
- if( err == -1 )
- {
- return jpa_ThrowError( env, "-1, possibly no available default device" );
- }
- else if( err < 0 )
- {
- if( err == paUnanticipatedHostError )
- {
- const PaHostErrorInfo *hostErrorInfo = Pa_GetLastHostErrorInfo();
- return jpa_ThrowError( env, hostErrorInfo->errorText );
- }
- else
- {
- return jpa_ThrowError( env, Pa_GetErrorText( err ) );
- }
- }
- else
- {
- return err;
- }
-}
-
-// Get the stream pointer from a BlockingStream long field.
-PaStream *jpa_GetStreamPointer( JNIEnv *env, jobject blockingStream )
-{
- jclass cls = (*env)->GetObjectClass(env, blockingStream);
- return (PaStream *) jpa_GetLongField( env, cls, blockingStream, "nativeStream" );
-}