libvlc_instance(NULL),
libvlc_log(NULL),
p_scriptClass(NULL),
- p_scriptObject(NULL),
p_browser(instance),
psz_baseURL(NULL)
#if XP_WIN
{
delete psz_baseURL;
delete psz_target;
- if( p_scriptObject )
- NPN_ReleaseObject(p_scriptObject);
if( libvlc_log )
libvlc_log_close(libvlc_log, NULL);
if( libvlc_instance )
return NULL;
}
-NPObject* VlcPlugin::getScriptObject()
-{
- if( NULL == p_scriptObject )
- {
- p_scriptObject = NPN_CreateObject(p_browser, p_scriptClass);
- }
- return NPN_RetainObject(p_scriptObject);
-}
-
#if XP_UNIX
int VlcPlugin::setSize(unsigned width, unsigned height)
{
void setWindow(const NPWindow *window)
{ npwindow = *window; };
- NPObject* getScriptObject();
+ NPClass* getScriptClass()
+ { return p_scriptClass; };
void setLog(libvlc_log_t *log)
{ libvlc_log = log; };
libvlc_instance_t *libvlc_instance;
libvlc_log_t *libvlc_log;
NPClass *p_scriptClass;
- NPObject *p_scriptObject;
/* browser reference */
NPP p_browser;
default:
/* move on to instance variables ... */
- break;
+ ;
}
if( instance == NULL )
switch( variable )
{
case NPPVpluginScriptableNPObject:
- /* create an instance and return it */
- *(NPObject**)value = p_plugin->getScriptObject();
- if( NULL == *(NPObject**)value )
+ /* retrieve plugin root class */
+ NPClass *scriptClass = p_plugin->getScriptClass();
+ if( scriptClass )
{
- return NPERR_OUT_OF_MEMORY_ERROR;
+ /* create an instance and return it */
+ *(NPObject**)value = NPN_CreateObject(instance, scriptClass);
+ return NPERR_NO_ERROR;
}
break;
default:
- return NPERR_GENERIC_ERROR;
+ ;
}
- return NPERR_NO_ERROR;
+ return NPERR_GENERIC_ERROR;
}
/*