]> git.sesse.net Git - vlc/blobdiff - projects/mozilla/control/npolibvlc.h
mozilla plugin: move deinterlace to own video subobject, and fix memleak.
[vlc] / projects / mozilla / control / npolibvlc.h
index 9c1f0ee731ea801496983ca5bb75c31bd98be671..a9896581a61bac2a0976556e63cb1f163393dec7 100644 (file)
@@ -180,8 +180,8 @@ protected:
 
     LibvlcVideoNPObject(NPP instance, const NPClass *aClass) :
         RuntimeNPObject(instance, aClass),
-        marqueeObj(NULL), logoObj(NULL) { }
-    virtual ~LibvlcVideoNPObject() { }
+        marqueeObj(NULL), logoObj(NULL), deintObj(NULL) { }
+    virtual ~LibvlcVideoNPObject();
 
     static const int propertyCount;
     static const NPUTF8 * const propertyNames[];
@@ -197,6 +197,7 @@ protected:
 private:
     NPObject *marqueeObj;
     NPObject *logoObj;
+    NPObject *deintObj;
 };
 
 class LibvlcMarqueeNPObject: public RuntimeNPObject
@@ -240,3 +241,24 @@ protected:
 
     InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
 };
+
+class LibvlcDeinterlaceNPObject: public RuntimeNPObject
+{
+protected:
+    friend class RuntimeNPClass<LibvlcDeinterlaceNPObject>;
+
+    LibvlcDeinterlaceNPObject(NPP instance, const NPClass *aClass) :
+        RuntimeNPObject(instance, aClass) { }
+    virtual ~LibvlcDeinterlaceNPObject() { }
+
+    static const int propertyCount;
+    static const NPUTF8 * const propertyNames[];
+
+    InvokeResult getProperty(int index, NPVariant &result);
+    InvokeResult setProperty(int index, const NPVariant &value);
+
+    static const int methodCount;
+    static const NPUTF8 * const methodNames[];
+
+    InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
+};