Files
templates/c/set-protocol/ports/android/set_plot_jni.c

23 lines
790 B
C

#include <jni.h>
#include "set_plot.h"
JNIEXPORT jdoubleArray JNICALL
Java_ru_setcorp_setprotocol_trends_NativePlot_evaluate(JNIEnv *env, jobject self,
jint operation, jdoubleArray input) {
double values[10], result[4];
jsize n;
size_t count;
jdoubleArray output;
(void)self;
if (!input) return NULL;
n = (*env)->GetArrayLength(env, input);
if (n < 0 || n > 10) return NULL;
(*env)->GetDoubleArrayRegion(env, input, 0, n, values);
if ((*env)->ExceptionCheck(env)) return NULL;
count = set_plot_eval((uint32_t)operation, values, (size_t)n, result, 4);
if (!count) return NULL;
output = (*env)->NewDoubleArray(env, (jsize)count);
if (output) (*env)->SetDoubleArrayRegion(env, output, 0, (jsize)count, result);
return output;
}