CppPlugins/inc/libplugin.h

57 lines
1.4 KiB
C++

#pragma once
#include <jni.h>
#include <vector>
#define DEBUG 1
#if DEBUG == 1
#define DEB(A) std::cout << A << std::endl
#else
#define DEB(A) ;
#endif
extern jclass CPPPLUGINCLASS;
extern jclass EVENTCLASS;
extern jclass MAPCLASS;
extern jclass LISTENERCLASS;
extern jfieldID EVENTDATAF;
extern jfieldID EVENTNAMEF;
extern jfieldID PLUGINIDF;
extern jmethodID MAPGET;
extern jmethodID MAPPUT;
extern jmethodID MAPCLEAR;
extern jmethodID LISTENERCONTR;
extern jmethodID LISTENERSMALLCONTR;
void load(JNIEnv* env, long data);
enum JNIDATA : long {
JNI_PLUGINCLASS = 1,
JNI_EVENTCLASS = 2,
JNI_MAPCLASS = 4,
JNI_LISTENERCLASS = 8,
JNI_EVENTDATAFIELD = 16 | JNI_EVENTCLASS,
JNI_EVENTNAMEFIELD = 32 | JNI_EVENTCLASS,
JNI_PLUGINIDFIELD = 64 | JNI_PLUGINCLASS,
JNI_MAPGETMETH = 128 | JNI_MAPCLASS,
JNI_MAPPUTMETH = 256 | JNI_MAPCLASS,
JNI_MAPCLEARMETH = 512 | JNI_MAPCLASS,
JNI_LISTENERCONSTR = 1024 | JNI_LISTENERCLASS,
JNI_LISTENERSMALLCONSTR = 2048 | JNI_LISTENERCLASS,
JNI_EVENT = JNI_EVENTCLASS | JNI_EVENTDATAFIELD | JNI_EVENTNAMEFIELD,
JNI_MAP = JNI_MAPCLASS | JNI_MAPGETMETH | JNI_MAPPUTMETH,
JNI_LISTENER = JNI_LISTENERCLASS | JNI_LISTENERCONSTR | JNI_LISTENERSMALLCONSTR,
JNI_ALL = 0xFFFF
};
/*
long operator|(JNIDATA a, JNIDATA b);
long operator|(long a, JNIDATA b);
long operator&(long a, JNIDATA b);*/
class CppPlugin;
extern std::vector<CppPlugin*> plugins;
CppPlugin* getPlugin(JNIEnv* env = 0, jobject thisobj = 0, int id = -1);