X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=mozilla%2Fcontrol%2Fnpolibvlc.h;h=034c0847ce3781ffea3210c0236e824d153140f1;hb=96495216bb7b86db5c500820adf779890d1049b1;hp=4beb637c688a9a6b19e3684732a5ec1ed8ec4778;hpb=056c9fe39df9442749a95671c0463c773a64b0da;p=vlc diff --git a/mozilla/control/npolibvlc.h b/mozilla/control/npolibvlc.h index 4beb637c68..034c0847ce 100755 --- a/mozilla/control/npolibvlc.h +++ b/mozilla/control/npolibvlc.h @@ -32,7 +32,14 @@ class LibvlcRootNPObject: public RuntimeNPObject protected: friend class RuntimeNPClass; - LibvlcRootNPObject(NPP instance, const NPClass *aClass); + LibvlcRootNPObject(NPP instance, const NPClass *aClass) : + RuntimeNPObject(instance, aClass), + audioObj(NULL), + inputObj(NULL), + logObj(NULL), + playlistObj(NULL), + videoObj(NULL) {}; + virtual ~LibvlcRootNPObject(); static const int propertyCount; @@ -43,6 +50,9 @@ protected: static const int methodCount; static const NPUTF8 * const methodNames[]; + InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result); + +private: NPObject *audioObj; NPObject *inputObj; NPObject *logObj; @@ -78,7 +88,7 @@ protected: LibvlcInputNPObject(NPP instance, const NPClass *aClass) : RuntimeNPObject(instance, aClass) {}; - + virtual ~LibvlcInputNPObject() {}; static const int propertyCount; @@ -104,7 +114,7 @@ protected: LibvlcMessageNPObject(NPP instance, const NPClass *aClass) : RuntimeNPObject(instance, aClass) {}; - + virtual ~LibvlcMessageNPObject() {}; static const int propertyCount; @@ -123,16 +133,11 @@ class LibvlcLogNPObject; class LibvlcMessageIteratorNPObject: public RuntimeNPObject { -public: - void setLog(LibvlcLogNPObject* p_vlclog); - protected: friend class RuntimeNPClass; - LibvlcMessageIteratorNPObject(NPP instance, const NPClass *aClass) : - RuntimeNPObject(instance, aClass) {}; - - virtual ~LibvlcMessageIteratorNPObject() {}; + LibvlcMessageIteratorNPObject(NPP instance, const NPClass *aClass); + virtual ~LibvlcMessageIteratorNPObject(); static const int propertyCount; static const NPUTF8 * const propertyNames[]; @@ -145,25 +150,17 @@ protected: InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result); private: - LibvlcLogNPObject* _p_vlclog; libvlc_log_iterator_t* _p_iter; }; class LibvlcMessagesNPObject: public RuntimeNPObject { -public: - void setLog(LibvlcLogNPObject *p_log) - { - _p_vlclog = p_log; - } - protected: friend class RuntimeNPClass; LibvlcMessagesNPObject(NPP instance, const NPClass *aClass) : - _p_vlclog(NULL), RuntimeNPObject(instance, aClass) {}; - + virtual ~LibvlcMessagesNPObject() {}; static const int propertyCount; @@ -175,32 +172,18 @@ protected: static const NPUTF8 * const methodNames[]; InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result); - -private: - LibvlcLogNPObject* _p_vlclog; }; class LibvlcLogNPObject: public RuntimeNPObject { protected: friend class RuntimeNPClass; - friend class LibvlcMessagesNPObject; - friend class LibvlcMessageIteratorNPObject; - - libvlc_log_t *_p_log; LibvlcLogNPObject(NPP instance, const NPClass *aClass) : - RuntimeNPObject(instance, aClass), - _p_log(NULL) - { - _p_vlcmessages = static_cast(NPN_CreateObject(instance, RuntimeNPClass::getClass())); - _p_vlcmessages->setLog(this); - }; - - virtual ~LibvlcLogNPObject() - { - NPN_ReleaseObject(_p_vlcmessages); - }; + RuntimeNPObject(instance, aClass), + messagesObj(NULL) {}; + + virtual ~LibvlcLogNPObject(); static const int propertyCount; static const NPUTF8 * const propertyNames[]; @@ -212,7 +195,27 @@ protected: static const NPUTF8 * const methodNames[]; private: - LibvlcMessagesNPObject* _p_vlcmessages; + NPObject* messagesObj; +}; + +class LibvlcPlaylistItemsNPObject: public RuntimeNPObject +{ +protected: + friend class RuntimeNPClass; + + LibvlcPlaylistItemsNPObject(NPP instance, const NPClass *aClass) : + RuntimeNPObject(instance, aClass) {}; + virtual ~LibvlcPlaylistItemsNPObject() {}; + + static const int propertyCount; + static const NPUTF8 * const propertyNames[]; + + InvokeResult getProperty(int index, NPVariant &result); + + static const int methodCount; + static const NPUTF8 * const methodNames[]; + + InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result); }; class LibvlcPlaylistNPObject: public RuntimeNPObject @@ -221,8 +224,10 @@ protected: friend class RuntimeNPClass; LibvlcPlaylistNPObject(NPP instance, const NPClass *aClass) : - RuntimeNPObject(instance, aClass) {}; - virtual ~LibvlcPlaylistNPObject() {}; + RuntimeNPObject(instance, aClass), + playlistItemsObj(NULL) {}; + + virtual ~LibvlcPlaylistNPObject(); static const int propertyCount; static const NPUTF8 * const propertyNames[]; @@ -236,6 +241,9 @@ protected: void parseOptions(const NPString &s, int *i_options, char*** ppsz_options); void parseOptions(NPObject *obj, int *i_options, char*** ppsz_options); + +private: + NPObject* playlistItemsObj; }; class LibvlcVideoNPObject: public RuntimeNPObject @@ -258,4 +266,3 @@ protected: InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result); }; -