From e24ecbe387b994a4455aa7af6195bf411374162e Mon Sep 17 00:00:00 2001 From: tobias <tobias.ullerich@icloud.com> Date: Mon, 5 Sep 2016 22:47:08 +0200 Subject: [PATCH] Inital commit NativeAudio --- PlayWallNative/.classpath | 7 ++ PlayWallNative/.gitignore | 1 + PlayWallNative/.project | 17 ++++ .../.settings/org.eclipse.jdt.core.prefs | 11 +++ PlayWallNative/libNativeAudio.dylib | Bin 0 -> 29040 bytes .../src/de/tobias/playpad/NativeAudio.java | 22 +++++ .../src/de_tobias_playpad_NativeAudio.h | 85 ++++++++++++++++++ .../de/tobias/playpad/NativeAudioTest.java | 20 +++++ 8 files changed, 163 insertions(+) create mode 100644 PlayWallNative/.classpath create mode 100644 PlayWallNative/.gitignore create mode 100644 PlayWallNative/.project create mode 100644 PlayWallNative/.settings/org.eclipse.jdt.core.prefs create mode 100755 PlayWallNative/libNativeAudio.dylib create mode 100644 PlayWallNative/src/de/tobias/playpad/NativeAudio.java create mode 100644 PlayWallNative/src/de_tobias_playpad_NativeAudio.h create mode 100644 PlayWallNative/test/de/tobias/playpad/NativeAudioTest.java diff --git a/PlayWallNative/.classpath b/PlayWallNative/.classpath new file mode 100644 index 00000000..597b13ce --- /dev/null +++ b/PlayWallNative/.classpath @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="src" path="test"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/PlayWallNative/.gitignore b/PlayWallNative/.gitignore new file mode 100644 index 00000000..ae3c1726 --- /dev/null +++ b/PlayWallNative/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/PlayWallNative/.project b/PlayWallNative/.project new file mode 100644 index 00000000..68507fdf --- /dev/null +++ b/PlayWallNative/.project @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>PlayWallNative</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff --git a/PlayWallNative/.settings/org.eclipse.jdt.core.prefs b/PlayWallNative/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..3a215370 --- /dev/null +++ b/PlayWallNative/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/PlayWallNative/libNativeAudio.dylib b/PlayWallNative/libNativeAudio.dylib new file mode 100755 index 0000000000000000000000000000000000000000..705cbc2b351f91928644d28ffdf1c1d63ae698fa GIT binary patch literal 29040 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 literal 0 HcmV?d00001 diff --git a/PlayWallNative/src/de/tobias/playpad/NativeAudio.java b/PlayWallNative/src/de/tobias/playpad/NativeAudio.java new file mode 100644 index 00000000..9d391bfa --- /dev/null +++ b/PlayWallNative/src/de/tobias/playpad/NativeAudio.java @@ -0,0 +1,22 @@ +package de.tobias.playpad; + +public class NativeAudio { + + public static native void play(int id); + + public static native void pause(int id); + + public static native void stop(int id); + + public static native double getVolume(int id); + + public static native void setVolume(int id, double volume); + + public static native void load(int id, String path); + + public static native void dispose(int id); + + public static native double getDuration(int id); + + public static native double getPosition(int id); +} diff --git a/PlayWallNative/src/de_tobias_playpad_NativeAudio.h b/PlayWallNative/src/de_tobias_playpad_NativeAudio.h new file mode 100644 index 00000000..0d5e2ace --- /dev/null +++ b/PlayWallNative/src/de_tobias_playpad_NativeAudio.h @@ -0,0 +1,85 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> +/* Header for class de_tobias_playpad_NativeAudio */ + +#ifndef _Included_de_tobias_playpad_NativeAudio +#define _Included_de_tobias_playpad_NativeAudio +#ifdef __cplusplus +extern "C" { +#endif +/* + * Class: de_tobias_playpad_NativeAudio + * Method: play + * Signature: (I)V + */ +JNIEXPORT void JNICALL Java_de_tobias_playpad_NativeAudio_play + (JNIEnv *, jclass, jint); + +/* + * Class: de_tobias_playpad_NativeAudio + * Method: pause + * Signature: (I)V + */ +JNIEXPORT void JNICALL Java_de_tobias_playpad_NativeAudio_pause + (JNIEnv *, jclass, jint); + +/* + * Class: de_tobias_playpad_NativeAudio + * Method: stop + * Signature: (I)V + */ +JNIEXPORT void JNICALL Java_de_tobias_playpad_NativeAudio_stop + (JNIEnv *, jclass, jint); + +/* + * Class: de_tobias_playpad_NativeAudio + * Method: getVolume + * Signature: (I)D + */ +JNIEXPORT jdouble JNICALL Java_de_tobias_playpad_NativeAudio_getVolume + (JNIEnv *, jclass, jint); + +/* + * Class: de_tobias_playpad_NativeAudio + * Method: setVolume + * Signature: (ID)V + */ +JNIEXPORT void JNICALL Java_de_tobias_playpad_NativeAudio_setVolume + (JNIEnv *, jclass, jint, jdouble); + +/* + * Class: de_tobias_playpad_NativeAudio + * Method: load + * Signature: (ILjava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_de_tobias_playpad_NativeAudio_load + (JNIEnv *, jclass, jint, jstring); + +/* + * Class: de_tobias_playpad_NativeAudio + * Method: dispose + * Signature: (I)V + */ +JNIEXPORT void JNICALL Java_de_tobias_playpad_NativeAudio_dispose + (JNIEnv *, jclass, jint); + +/* + * Class: de_tobias_playpad_NativeAudio + * Method: getDuration + * Signature: (I)D + */ +JNIEXPORT jdouble JNICALL Java_de_tobias_playpad_NativeAudio_getDuration + (JNIEnv *, jclass, jint); + +/* + * Class: de_tobias_playpad_NativeAudio + * Method: getPosition + * Signature: (I)D + */ +JNIEXPORT jdouble JNICALL Java_de_tobias_playpad_NativeAudio_getPosition + (JNIEnv *, jclass, jint); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/PlayWallNative/test/de/tobias/playpad/NativeAudioTest.java b/PlayWallNative/test/de/tobias/playpad/NativeAudioTest.java new file mode 100644 index 00000000..42a6d50a --- /dev/null +++ b/PlayWallNative/test/de/tobias/playpad/NativeAudioTest.java @@ -0,0 +1,20 @@ +package de.tobias.playpad; + +public class NativeAudioTest { + + public static void main(String[] args) { + System.load("/Users/tobias/Documents/Programmieren/Java/eclipse/PlayWallNative/libNativeAudio.dylib"); + + NativeAudio.load(0, "/Users/tobias/Downloads/03%20Hymn%20For%20The%20Weekend.mp3.wav"); + System.out.println(NativeAudio.getDuration(0)); + NativeAudio.play(0); + + while (true) { + try { + Thread.sleep(100); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } +} -- GitLab