/*****************************************************************************\r
- * vlc.h: a VLC plugin for Mozilla\r
+ * npolibvlc.h: official Javascript APIs\r
*****************************************************************************\r
- * Copyright (C) 2002-2005 the VideoLAN team\r
- * $Id: vlcruntime.h 14466 2006-02-22 23:34:54Z dionoea $\r
+ * Copyright (C) 2002-2006 the VideoLAN team\r
*\r
* Authors: Damien Fouilleul <damien.fouilleul@laposte.net>\r
*\r
/*\r
** defined runtime script objects\r
*/\r
+#include <vlc/libvlc.h>\r
\r
#include "nporuntime.h"\r
\r
class LibvlcRootNPObject: public RuntimeNPObject\r
{\r
-public:\r
- LibvlcRootNPObject(NPP instance, const NPClass *aClass);\r
- virtual ~LibvlcRootNPObject();\r
-\r
protected:\r
friend class RuntimeNPClass<LibvlcRootNPObject>;\r
\r
+ LibvlcRootNPObject(NPP instance, const NPClass *aClass) :\r
+ RuntimeNPObject(instance, aClass),\r
+ audioObj(NULL),\r
+ inputObj(NULL),\r
+ logObj(NULL),\r
+ playlistObj(NULL),\r
+ videoObj(NULL) {};\r
+\r
+ virtual ~LibvlcRootNPObject();\r
+\r
static const int propertyCount;\r
static const NPUTF8 * const propertyNames[];\r
\r
static const int methodCount;\r
static const NPUTF8 * const methodNames[];\r
\r
+ InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);\r
+\r
+private:\r
NPObject *audioObj;\r
NPObject *inputObj;\r
+ NPObject *logObj;\r
NPObject *playlistObj;\r
NPObject *videoObj;\r
};\r
\r
class LibvlcAudioNPObject: public RuntimeNPObject\r
{\r
-public:\r
+protected:\r
LibvlcAudioNPObject(NPP instance, const NPClass *aClass) :\r
RuntimeNPObject(instance, aClass) {};\r
virtual ~LibvlcAudioNPObject() {};\r
\r
-protected:\r
friend class RuntimeNPClass<LibvlcAudioNPObject>;\r
\r
static const int propertyCount;\r
\r
class LibvlcInputNPObject: public RuntimeNPObject\r
{\r
-public:\r
+protected:\r
+ friend class RuntimeNPClass<LibvlcInputNPObject>;\r
+\r
LibvlcInputNPObject(NPP instance, const NPClass *aClass) :\r
RuntimeNPObject(instance, aClass) {};\r
- \r
+\r
virtual ~LibvlcInputNPObject() {};\r
\r
+ static const int propertyCount;\r
+ static const NPUTF8 * const propertyNames[];\r
+\r
+ InvokeResult getProperty(int index, NPVariant &result);\r
+ InvokeResult setProperty(int index, const NPVariant &value);\r
+\r
+ static const int methodCount;\r
+ static const NPUTF8 * const methodNames[];\r
+};\r
+\r
+class LibvlcMessageNPObject: public RuntimeNPObject\r
+{\r
+public:\r
+ void setMessage(struct libvlc_log_message_t &msg)\r
+ {\r
+ _msg = msg;\r
+ };\r
+\r
protected:\r
- friend class RuntimeNPClass<LibvlcInputNPObject>;\r
+ friend class RuntimeNPClass<LibvlcMessageNPObject>;\r
+\r
+ LibvlcMessageNPObject(NPP instance, const NPClass *aClass) :\r
+ RuntimeNPObject(instance, aClass) {};\r
+\r
+ virtual ~LibvlcMessageNPObject() {};\r
+\r
+ static const int propertyCount;\r
+ static const NPUTF8 * const propertyNames[];\r
+\r
+ InvokeResult getProperty(int index, NPVariant &result);\r
+\r
+ static const int methodCount;\r
+ static const NPUTF8 * const methodNames[];\r
+\r
+private:\r
+ struct libvlc_log_message_t _msg;\r
+};\r
+\r
+class LibvlcLogNPObject;\r
+\r
+class LibvlcMessageIteratorNPObject: public RuntimeNPObject\r
+{\r
+protected:\r
+ friend class RuntimeNPClass<LibvlcMessageIteratorNPObject>;\r
+\r
+ LibvlcMessageIteratorNPObject(NPP instance, const NPClass *aClass);\r
+ virtual ~LibvlcMessageIteratorNPObject();\r
+\r
+ static const int propertyCount;\r
+ static const NPUTF8 * const propertyNames[];\r
+\r
+ InvokeResult getProperty(int index, NPVariant &result);\r
+\r
+ static const int methodCount;\r
+ static const NPUTF8 * const methodNames[];\r
+\r
+ InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);\r
+\r
+private:\r
+ libvlc_log_iterator_t* _p_iter;\r
+};\r
+\r
+class LibvlcMessagesNPObject: public RuntimeNPObject\r
+{\r
+protected:\r
+ friend class RuntimeNPClass<LibvlcMessagesNPObject>;\r
+\r
+ LibvlcMessagesNPObject(NPP instance, const NPClass *aClass) :\r
+ RuntimeNPObject(instance, aClass) {};\r
+\r
+ virtual ~LibvlcMessagesNPObject() {};\r
+\r
+ static const int propertyCount;\r
+ static const NPUTF8 * const propertyNames[];\r
+\r
+ InvokeResult getProperty(int index, NPVariant &result);\r
+\r
+ static const int methodCount;\r
+ static const NPUTF8 * const methodNames[];\r
+\r
+ InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);\r
+};\r
+\r
+class LibvlcLogNPObject: public RuntimeNPObject\r
+{\r
+protected:\r
+ friend class RuntimeNPClass<LibvlcLogNPObject>;\r
+\r
+ LibvlcLogNPObject(NPP instance, const NPClass *aClass) :\r
+ RuntimeNPObject(instance, aClass),\r
+ messagesObj(NULL) {};\r
+\r
+ virtual ~LibvlcLogNPObject();\r
\r
static const int propertyCount;\r
static const NPUTF8 * const propertyNames[];\r
\r
static const int methodCount;\r
static const NPUTF8 * const methodNames[];\r
+\r
+private:\r
+ NPObject* messagesObj;\r
};\r
\r
-class LibvlcPlaylistNPObject: public RuntimeNPObject\r
+class LibvlcPlaylistItemsNPObject: public RuntimeNPObject\r
{\r
-public:\r
- LibvlcPlaylistNPObject(NPP instance, const NPClass *aClass) :\r
+protected:\r
+ friend class RuntimeNPClass<LibvlcPlaylistItemsNPObject>;\r
+\r
+ LibvlcPlaylistItemsNPObject(NPP instance, const NPClass *aClass) :\r
RuntimeNPObject(instance, aClass) {};\r
- virtual ~LibvlcPlaylistNPObject() {};\r
+ virtual ~LibvlcPlaylistItemsNPObject() {};\r
+\r
+ static const int propertyCount;\r
+ static const NPUTF8 * const propertyNames[];\r
+\r
+ InvokeResult getProperty(int index, NPVariant &result);\r
+\r
+ static const int methodCount;\r
+ static const NPUTF8 * const methodNames[];\r
+\r
+ InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);\r
+};\r
\r
+class LibvlcPlaylistNPObject: public RuntimeNPObject\r
+{\r
protected:\r
friend class RuntimeNPClass<LibvlcPlaylistNPObject>;\r
\r
+ LibvlcPlaylistNPObject(NPP instance, const NPClass *aClass) :\r
+ RuntimeNPObject(instance, aClass),\r
+ playlistItemsObj(NULL) {};\r
+ \r
+ virtual ~LibvlcPlaylistNPObject();\r
+\r
static const int propertyCount;\r
static const NPUTF8 * const propertyNames[];\r
\r
\r
void parseOptions(const NPString &s, int *i_options, char*** ppsz_options);\r
void parseOptions(NPObject *obj, int *i_options, char*** ppsz_options);\r
+\r
+private:\r
+ NPObject* playlistItemsObj;\r
};\r
\r
class LibvlcVideoNPObject: public RuntimeNPObject\r
{\r
-public:\r
+protected:\r
+ friend class RuntimeNPClass<LibvlcVideoNPObject>;\r
+\r
LibvlcVideoNPObject(NPP instance, const NPClass *aClass) :\r
RuntimeNPObject(instance, aClass) {};\r
virtual ~LibvlcVideoNPObject() {};\r
\r
-protected:\r
- friend class RuntimeNPClass<LibvlcVideoNPObject>;\r
-\r
static const int propertyCount;\r
static const NPUTF8 * const propertyNames[];\r
\r
static const NPUTF8 * const methodNames[];\r
\r
InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);\r
-\r
};\r
-\r