updating sample plugin to use lifecycle events.
diff --git a/samples/SampleBrowserPlugin/jni/main.cpp b/samples/SampleBrowserPlugin/jni/main.cpp
index ab95ce6..b851fff 100644
--- a/samples/SampleBrowserPlugin/jni/main.cpp
+++ b/samples/SampleBrowserPlugin/jni/main.cpp
@@ -34,20 +34,20 @@
NPNetscapeFuncs* browser;
#define EXPORT __attribute__((visibility("default")))
-NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc,
+NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc,
char* argn[], char* argv[], NPSavedData* saved);
NPError NPP_Destroy(NPP instance, NPSavedData** save);
NPError NPP_SetWindow(NPP instance, NPWindow* window);
-NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream* stream,
+NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream* stream,
NPBool seekable, uint16* stype);
NPError NPP_DestroyStream(NPP instance, NPStream* stream, NPReason reason);
int32 NPP_WriteReady(NPP instance, NPStream* stream);
-int32 NPP_Write(NPP instance, NPStream* stream, int32 offset, int32 len,
+int32 NPP_Write(NPP instance, NPStream* stream, int32 offset, int32 len,
void* buffer);
void NPP_StreamAsFile(NPP instance, NPStream* stream, const char* fname);
void NPP_Print(NPP instance, NPPrint* platformPrint);
int16 NPP_HandleEvent(NPP instance, void* event);
-void NPP_URLNotify(NPP instance, const char* URL, NPReason reason,
+void NPP_URLNotify(NPP instance, const char* URL, NPReason reason,
void* notifyData);
NPError NPP_GetValue(NPP instance, NPPVariable variable, void *value);
NPError NPP_SetValue(NPP instance, NPNVariable variable, void *value);
@@ -56,7 +56,7 @@
EXPORT NPError NP_Initialize(NPNetscapeFuncs* browserFuncs, NPPluginFuncs* pluginFuncs, void *java_env, void *application_context);
EXPORT NPError NP_GetValue(NPP instance, NPPVariable variable, void *value);
EXPORT const char* NP_GetMIMEDescription(void);
-EXPORT void NP_Shutdown(void);
+EXPORT void NP_Shutdown(void);
};
ANPAudioTrackInterfaceV0 gSoundI;
@@ -74,11 +74,11 @@
if (browserFuncs->size < sizeof(NPNetscapeFuncs)) {
return NPERR_GENERIC_ERROR;
}
-
+
// Copy the function table (structure)
browser = (NPNetscapeFuncs*) malloc(sizeof(NPNetscapeFuncs));
memcpy(browser, browserFuncs, sizeof(NPNetscapeFuncs));
-
+
// Build the plugin function table
pluginFuncs->version = 11;
pluginFuncs->size = sizeof(pluginFuncs);
@@ -115,7 +115,7 @@
return err;
}
}
-
+
return NPERR_NO_ERROR;
}
@@ -124,7 +124,7 @@
}
-const char *NP_GetMIMEDescription(void)
+const char *NP_GetMIMEDescription(void)
{
return "application/x-testplugin:tst:Test plugin mimetype is application/x-testplugin";
}
@@ -140,14 +140,14 @@
obj = static_cast<PluginObject*>(instance->pdata);
bzero(obj, sizeof(*obj));
}
-
+
uint32_t bits;
NPError err = browser->getvalue(instance, kSupportedDrawingModel_ANPGetValue, &bits);
if (err) {
gLogI.log(instance, kError_ANPLogType, "supported model err %d", err);
return err;
}
-
+
ANPDrawingModel model = kBitmap_ANPDrawingModel;
int count = argc;
@@ -188,7 +188,7 @@
static int gTimerRepeatCount;
static void timer_repeat(NPP instance, uint32 timerID) {
-
+
gLogI.log(instance, kDebug_ANPLogType, "-------- repeat timer %d\n",
gTimerRepeatCount);
if (--gTimerRepeatCount == 0) {
@@ -214,9 +214,9 @@
uint32_t expectedDur = obj->mTimerCount * TIMER_INTERVAL;
int32_t drift = dur - expectedDur;
int32_t aveDrift = drift / obj->mTimerCount;
-
+
obj->mPrevTime = now;
-
+
gLogI.log(instance, kDebug_ANPLogType,
"-------- latency test: [%3d] interval %d expected %d, total %d expected %d, drift %d ave %d\n",
obj->mTimerCount, interval, TIMER_INTERVAL, dur, expectedDur,
@@ -226,12 +226,12 @@
NPError NPP_SetWindow(NPP instance, NPWindow* window)
{
PluginObject *obj = (PluginObject*) instance->pdata;
-
+
// Do nothing if browser didn't support NPN_CreateObject which would have created the PluginObject.
if (obj != NULL) {
obj->window = window;
}
-
+
static bool gTestTimers;
if (!gTestTimers) {
gTestTimers = true;
@@ -248,18 +248,18 @@
// test double unschedlue (should be no-op)
browser->unscheduletimer(instance, id);
}
-
+
if (obj->mTestTimers) {
browser->scheduletimer(instance, TIMER_INTERVAL, true, timer_latency);
obj->mStartTime = obj->mPrevTime = getMSecs();
obj->mTestTimers = false;
}
-
+
browser->invalidaterect(instance, NULL);
return NPERR_NO_ERROR;
}
-
+
NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16* stype)
{
@@ -363,18 +363,13 @@
browser->invalidaterect(instance, NULL);
}
return 1;
-
- case kPause_ANPEventType:
- gLogI.log(instance, kDebug_ANPLogType, "---- %p pause event\n",
- instance);
+
+ case kLifecycle_ANPEventType:
+ gLogI.log(instance, kDebug_ANPLogType, "---- %p Lifecycle action=%d",
+ instance, evt->data.lifecycle.action);
break;
- case kResume_ANPEventType:
- gLogI.log(instance, kDebug_ANPLogType, "---- %p resume event\n",
- instance);
- break;
-
- case kTouch_ANPEventType:
+ case kTouch_ANPEventType:
gLogI.log(instance, kDebug_ANPLogType, "---- %p Touch action=%d [%d %d]",
instance, evt->data.touch.action, evt->data.touch.x,
evt->data.touch.y);
@@ -412,13 +407,13 @@
*str = "Test Plugin";
return NPERR_NO_ERROR;
}
-
+
if (variable == NPPVpluginDescriptionString) {
const char **str = (const char **)value;
*str = "Description of Test Plugin";
return NPERR_NO_ERROR;
}
-
+
return NPERR_GENERIC_ERROR;
}
@@ -427,14 +422,14 @@
if (variable == NPPVpluginScriptableNPObject) {
void **v = (void **)value;
PluginObject *obj = (PluginObject*) instance->pdata;
-
+
if (obj)
browser->retainobject((NPObject*)obj);
-
+
*v = obj;
return NPERR_NO_ERROR;
}
-
+
return NPERR_GENERIC_ERROR;
}