jni: add CJNISurfaceTextureOnFrameAvailableListener
[vuplus_xbmc] / xbmc / android / activity / android_main.cpp
index bc331bf..6ee97c2 100644 (file)
@@ -23,6 +23,7 @@
 #include <android_native_app_glue.h>
 #include "EventLoop.h"
 #include "XBMCApp.h"
+#include "android/jni/SurfaceTexture.h"
 
 // copied from new android_native_app_glue.c
 static void process_input(struct android_app* app, struct android_poll_source* source) {
@@ -81,18 +82,38 @@ extern "C" JNIEXPORT jint JNI_OnLoad(JavaVM *vm, void *reserved)
   if (vm->GetEnv(reinterpret_cast<void**>(&env), version) != JNI_OK)
     return -1;
 
-  jclass cMain = env->FindClass("org/xbmc/xbmc/XBMCBroadcastReceiver");
+  jclass cMain = env->FindClass("org/xbmc/xbmc/Main");
   if(cMain)
   {
-    JNINativeMethod mOnReceive =   { "_onReceive",     "(Landroid/content/Intent;)V", (void*)&CJNIBroadcastReceiver::_onReceive};
-    env->RegisterNatives(cMain, &mOnReceive, 1);
+    JNINativeMethod mOnNewIntent = {
+      "_onNewIntent",
+      "(Landroid/content/Intent;)V",
+      (void*)&CJNIContext::_onNewIntent
+    };
+    env->RegisterNatives(cMain, &mOnNewIntent, 1);
   }
 
-  jclass cBroadcastReceiver = env->FindClass("org/xbmc/xbmc/Main");
+  jclass cBroadcastReceiver = env->FindClass("org/xbmc/xbmc/XBMCBroadcastReceiver");
   if(cBroadcastReceiver)
   {
-    JNINativeMethod mOnNewIntent = { "_onNewIntent",   "(Landroid/content/Intent;)V", (void*)&CJNIContext::_onNewIntent};
-    env->RegisterNatives(cBroadcastReceiver, &mOnNewIntent, 1);
+    JNINativeMethod mOnReceive =  {
+      "_onReceive",
+      "(Landroid/content/Intent;)V",
+      (void*)&CJNIBroadcastReceiver::_onReceive
+    };
+    env->RegisterNatives(cBroadcastReceiver, &mOnReceive, 1);
   }
+
+  jclass cFrameAvailableListener = env->FindClass("org/xbmc/xbmc/XBMCOnFrameAvailableListener");
+  if(cFrameAvailableListener)
+  {
+    JNINativeMethod mOnFrameAvailable = {
+      "_onFrameAvailable",
+      "(Landroid/graphics/SurfaceTexture;)V",
+      (void*)&CJNISurfaceTextureOnFrameAvailableListener::_onFrameAvailable
+    };
+    env->RegisterNatives(cFrameAvailableListener, &mOnFrameAvailable, 1);
+  }
+
   return version;
 }