Adding support for surface views. also removed subplugin's dependency on ANPCanvas.
diff --git a/samples/BrowserPlugin/jni/audio/AudioPlugin.cpp b/samples/BrowserPlugin/jni/audio/AudioPlugin.cpp
index 621b8f8..58d340c 100644
--- a/samples/BrowserPlugin/jni/audio/AudioPlugin.cpp
+++ b/samples/BrowserPlugin/jni/audio/AudioPlugin.cpp
@@ -64,20 +64,6 @@
     browser->invalidaterect(instance, &inval);
 }
 
-static void drawPlugin(SubPlugin* plugin, const ANPBitmap& bitmap, const ANPRectI& clip) {
-    ANPCanvas* canvas = gCanvasI.newCanvas(&bitmap);
-
-    ANPRectF clipR;
-    clipR.left = clip.left;
-    clipR.top = clip.top;
-    clipR.right = clip.right;
-    clipR.bottom = clip.bottom;
-    gCanvasI.clipRect(canvas, &clipR);
-
-    plugin->draw(canvas);
-    gCanvasI.deleteCanvas(canvas);
-}
-
 static void audioCallback(ANPAudioEvent evt, void* user, ANPAudioBuffer* buffer) {
     switch (evt) {
         case kMoreData_ANPAudioEvent: {
@@ -202,6 +188,20 @@
     return (model == kBitmap_ANPDrawingModel);
 }
 
+void AudioPlugin::drawPlugin(const ANPBitmap& bitmap, const ANPRectI& clip) {
+    ANPCanvas* canvas = gCanvasI.newCanvas(&bitmap);
+
+    ANPRectF clipR;
+    clipR.left = clip.left;
+    clipR.top = clip.top;
+    clipR.right = clip.right;
+    clipR.bottom = clip.bottom;
+    gCanvasI.clipRect(canvas, &clipR);
+
+    draw(canvas);
+    gCanvasI.deleteCanvas(canvas);
+}
+
 void AudioPlugin::draw(ANPCanvas* canvas) {
     NPP instance = this->inst();
     PluginObject *obj = (PluginObject*) instance->pdata;
@@ -279,7 +279,7 @@
         case kDraw_ANPEventType:
             switch (evt->data.draw.model) {
                 case kBitmap_ANPDrawingModel:
-                    drawPlugin(this, evt->data.draw.data.bitmap, evt->data.draw.clip);
+                    drawPlugin(evt->data.draw.data.bitmap, evt->data.draw.clip);
                     return 1;
                 default:
                     break;   // unknown drawing model