1 /*****************************************************************************
\r
2 * npolibvlc.h: official Javascript APIs
\r
3 *****************************************************************************
\r
4 * Copyright (C) 2002-2006 the VideoLAN team
\r
6 * Authors: Damien Fouilleul <damien.fouilleul@laposte.net>
\r
8 * This program is free software; you can redistribute it and/or modify
\r
9 * it under the terms of the GNU General Public License as published by
\r
10 * the Free Software Foundation; either version 2 of the License, or
\r
11 * (at your option) any later version.
\r
13 * This program is distributed in the hope that it will be useful,
\r
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
16 * GNU General Public License for more details.
\r
18 * You should have received a copy of the GNU General Public License
\r
19 * along with this program; if not, write to the Free Software
\r
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
\r
21 *****************************************************************************/
\r
24 ** defined runtime script objects
\r
26 #include <vlc/libvlc.h>
\r
28 #include "nporuntime.h"
\r
30 class LibvlcRootNPObject: public RuntimeNPObject
\r
33 friend class RuntimeNPClass<LibvlcRootNPObject>;
\r
35 LibvlcRootNPObject(NPP instance, const NPClass *aClass);
\r
36 virtual ~LibvlcRootNPObject();
\r
38 static const int propertyCount;
\r
39 static const NPUTF8 * const propertyNames[];
\r
41 InvokeResult getProperty(int index, NPVariant &result);
\r
43 static const int methodCount;
\r
44 static const NPUTF8 * const methodNames[];
\r
46 InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
\r
51 NPObject *playlistObj;
\r
55 class LibvlcAudioNPObject: public RuntimeNPObject
\r
58 LibvlcAudioNPObject(NPP instance, const NPClass *aClass) :
\r
59 RuntimeNPObject(instance, aClass) {};
\r
60 virtual ~LibvlcAudioNPObject() {};
\r
62 friend class RuntimeNPClass<LibvlcAudioNPObject>;
\r
64 static const int propertyCount;
\r
65 static const NPUTF8 * const propertyNames[];
\r
67 InvokeResult getProperty(int index, NPVariant &result);
\r
68 InvokeResult setProperty(int index, const NPVariant &value);
\r
70 static const int methodCount;
\r
71 static const NPUTF8 * const methodNames[];
\r
73 InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
\r
76 class LibvlcInputNPObject: public RuntimeNPObject
\r
79 friend class RuntimeNPClass<LibvlcInputNPObject>;
\r
81 LibvlcInputNPObject(NPP instance, const NPClass *aClass) :
\r
82 RuntimeNPObject(instance, aClass) {};
\r
84 virtual ~LibvlcInputNPObject() {};
\r
86 static const int propertyCount;
\r
87 static const NPUTF8 * const propertyNames[];
\r
89 InvokeResult getProperty(int index, NPVariant &result);
\r
90 InvokeResult setProperty(int index, const NPVariant &value);
\r
92 static const int methodCount;
\r
93 static const NPUTF8 * const methodNames[];
\r
96 class LibvlcMessageNPObject: public RuntimeNPObject
\r
99 void setMessage(struct libvlc_log_message_t &msg)
\r
105 friend class RuntimeNPClass<LibvlcMessageNPObject>;
\r
107 LibvlcMessageNPObject(NPP instance, const NPClass *aClass) :
\r
108 RuntimeNPObject(instance, aClass) {};
\r
110 virtual ~LibvlcMessageNPObject() {};
\r
112 static const int propertyCount;
\r
113 static const NPUTF8 * const propertyNames[];
\r
115 InvokeResult getProperty(int index, NPVariant &result);
\r
117 static const int methodCount;
\r
118 static const NPUTF8 * const methodNames[];
\r
121 struct libvlc_log_message_t _msg;
\r
124 class LibvlcLogNPObject;
\r
126 class LibvlcMessageIteratorNPObject: public RuntimeNPObject
\r
129 void setLog(LibvlcLogNPObject* p_vlclog);
\r
132 friend class RuntimeNPClass<LibvlcMessageIteratorNPObject>;
\r
134 LibvlcMessageIteratorNPObject(NPP instance, const NPClass *aClass) :
\r
135 RuntimeNPObject(instance, aClass) {};
\r
137 virtual ~LibvlcMessageIteratorNPObject() {};
\r
139 static const int propertyCount;
\r
140 static const NPUTF8 * const propertyNames[];
\r
142 InvokeResult getProperty(int index, NPVariant &result);
\r
144 static const int methodCount;
\r
145 static const NPUTF8 * const methodNames[];
\r
147 InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
\r
150 LibvlcLogNPObject* _p_vlclog;
\r
151 libvlc_log_iterator_t* _p_iter;
\r
154 class LibvlcMessagesNPObject: public RuntimeNPObject
\r
157 void setLog(LibvlcLogNPObject *p_log)
\r
163 friend class RuntimeNPClass<LibvlcMessagesNPObject>;
\r
165 LibvlcMessagesNPObject(NPP instance, const NPClass *aClass) :
\r
167 RuntimeNPObject(instance, aClass) {};
\r
169 virtual ~LibvlcMessagesNPObject() {};
\r
171 static const int propertyCount;
\r
172 static const NPUTF8 * const propertyNames[];
\r
174 InvokeResult getProperty(int index, NPVariant &result);
\r
176 static const int methodCount;
\r
177 static const NPUTF8 * const methodNames[];
\r
179 InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
\r
182 LibvlcLogNPObject* _p_vlclog;
\r
185 class LibvlcLogNPObject: public RuntimeNPObject
\r
188 friend class RuntimeNPClass<LibvlcLogNPObject>;
\r
189 friend class LibvlcMessagesNPObject;
\r
190 friend class LibvlcMessageIteratorNPObject;
\r
192 libvlc_log_t *_p_log;
\r
194 LibvlcLogNPObject(NPP instance, const NPClass *aClass) :
\r
195 RuntimeNPObject(instance, aClass),
\r
198 _p_vlcmessages = static_cast<LibvlcMessagesNPObject*>(NPN_CreateObject(instance, RuntimeNPClass<LibvlcMessagesNPObject>::getClass()));
\r
199 _p_vlcmessages->setLog(this);
\r
202 virtual ~LibvlcLogNPObject()
\r
204 NPN_ReleaseObject(_p_vlcmessages);
\r
207 static const int propertyCount;
\r
208 static const NPUTF8 * const propertyNames[];
\r
210 InvokeResult getProperty(int index, NPVariant &result);
\r
211 InvokeResult setProperty(int index, const NPVariant &value);
\r
213 static const int methodCount;
\r
214 static const NPUTF8 * const methodNames[];
\r
217 LibvlcMessagesNPObject* _p_vlcmessages;
\r
220 class LibvlcPlaylistNPObject: public RuntimeNPObject
\r
223 friend class RuntimeNPClass<LibvlcPlaylistNPObject>;
\r
225 LibvlcPlaylistNPObject(NPP instance, const NPClass *aClass) :
\r
226 RuntimeNPObject(instance, aClass) {};
\r
227 virtual ~LibvlcPlaylistNPObject() {};
\r
229 static const int propertyCount;
\r
230 static const NPUTF8 * const propertyNames[];
\r
232 InvokeResult getProperty(int index, NPVariant &result);
\r
234 static const int methodCount;
\r
235 static const NPUTF8 * const methodNames[];
\r
237 InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
\r
239 void parseOptions(const NPString &s, int *i_options, char*** ppsz_options);
\r
240 void parseOptions(NPObject *obj, int *i_options, char*** ppsz_options);
\r
243 class LibvlcVideoNPObject: public RuntimeNPObject
\r
246 friend class RuntimeNPClass<LibvlcVideoNPObject>;
\r
248 LibvlcVideoNPObject(NPP instance, const NPClass *aClass) :
\r
249 RuntimeNPObject(instance, aClass) {};
\r
250 virtual ~LibvlcVideoNPObject() {};
\r
252 static const int propertyCount;
\r
253 static const NPUTF8 * const propertyNames[];
\r
255 InvokeResult getProperty(int index, NPVariant &result);
\r
256 InvokeResult setProperty(int index, const NPVariant &value);
\r
258 static const int methodCount;
\r
259 static const NPUTF8 * const methodNames[];
\r
261 InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
\r