1 /*****************************************************************************
2 * npolibvlc.h: official Javascript APIs
3 *****************************************************************************
4 * Copyright (C) 2002-2006 the VideoLAN team
6 * Authors: Damien Fouilleul <damien.fouilleul@laposte.net>
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
21 *****************************************************************************/
24 ** defined runtime script objects
26 #include <vlc/libvlc.h>
28 #include "nporuntime.h"
30 class LibvlcRootNPObject: public RuntimeNPObject
33 friend class RuntimeNPClass<LibvlcRootNPObject>;
35 LibvlcRootNPObject(NPP instance, const NPClass *aClass) :
36 RuntimeNPObject(instance, aClass),
43 virtual ~LibvlcRootNPObject();
45 static const int propertyCount;
46 static const NPUTF8 * const propertyNames[];
48 InvokeResult getProperty(int index, NPVariant &result);
50 static const int methodCount;
51 static const NPUTF8 * const methodNames[];
53 InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
59 NPObject *playlistObj;
63 class LibvlcAudioNPObject: public RuntimeNPObject
66 LibvlcAudioNPObject(NPP instance, const NPClass *aClass) :
67 RuntimeNPObject(instance, aClass) {};
68 virtual ~LibvlcAudioNPObject() {};
70 friend class RuntimeNPClass<LibvlcAudioNPObject>;
72 static const int propertyCount;
73 static const NPUTF8 * const propertyNames[];
75 InvokeResult getProperty(int index, NPVariant &result);
76 InvokeResult setProperty(int index, const NPVariant &value);
78 static const int methodCount;
79 static const NPUTF8 * const methodNames[];
81 InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
84 class LibvlcInputNPObject: public RuntimeNPObject
87 friend class RuntimeNPClass<LibvlcInputNPObject>;
89 LibvlcInputNPObject(NPP instance, const NPClass *aClass) :
90 RuntimeNPObject(instance, aClass) {};
92 virtual ~LibvlcInputNPObject() {};
94 static const int propertyCount;
95 static const NPUTF8 * const propertyNames[];
97 InvokeResult getProperty(int index, NPVariant &result);
98 InvokeResult setProperty(int index, const NPVariant &value);
100 static const int methodCount;
101 static const NPUTF8 * const methodNames[];
104 class LibvlcMessageNPObject: public RuntimeNPObject
107 void setMessage(struct libvlc_log_message_t &msg)
113 friend class RuntimeNPClass<LibvlcMessageNPObject>;
115 LibvlcMessageNPObject(NPP instance, const NPClass *aClass) :
116 RuntimeNPObject(instance, aClass) {};
118 virtual ~LibvlcMessageNPObject() {};
120 static const int propertyCount;
121 static const NPUTF8 * const propertyNames[];
123 InvokeResult getProperty(int index, NPVariant &result);
125 static const int methodCount;
126 static const NPUTF8 * const methodNames[];
129 struct libvlc_log_message_t _msg;
132 class LibvlcLogNPObject;
134 class LibvlcMessageIteratorNPObject: public RuntimeNPObject
137 friend class RuntimeNPClass<LibvlcMessageIteratorNPObject>;
139 LibvlcMessageIteratorNPObject(NPP instance, const NPClass *aClass);
140 virtual ~LibvlcMessageIteratorNPObject();
142 static const int propertyCount;
143 static const NPUTF8 * const propertyNames[];
145 InvokeResult getProperty(int index, NPVariant &result);
147 static const int methodCount;
148 static const NPUTF8 * const methodNames[];
150 InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
153 libvlc_log_iterator_t* _p_iter;
156 class LibvlcMessagesNPObject: public RuntimeNPObject
159 friend class RuntimeNPClass<LibvlcMessagesNPObject>;
161 LibvlcMessagesNPObject(NPP instance, const NPClass *aClass) :
162 RuntimeNPObject(instance, aClass) {};
164 virtual ~LibvlcMessagesNPObject() {};
166 static const int propertyCount;
167 static const NPUTF8 * const propertyNames[];
169 InvokeResult getProperty(int index, NPVariant &result);
171 static const int methodCount;
172 static const NPUTF8 * const methodNames[];
174 InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
177 class LibvlcLogNPObject: public RuntimeNPObject
180 friend class RuntimeNPClass<LibvlcLogNPObject>;
182 LibvlcLogNPObject(NPP instance, const NPClass *aClass) :
183 RuntimeNPObject(instance, aClass),
184 messagesObj(NULL) {};
186 virtual ~LibvlcLogNPObject();
188 static const int propertyCount;
189 static const NPUTF8 * const propertyNames[];
191 InvokeResult getProperty(int index, NPVariant &result);
192 InvokeResult setProperty(int index, const NPVariant &value);
194 static const int methodCount;
195 static const NPUTF8 * const methodNames[];
198 NPObject* messagesObj;
201 class LibvlcPlaylistItemsNPObject: public RuntimeNPObject
204 friend class RuntimeNPClass<LibvlcPlaylistItemsNPObject>;
206 LibvlcPlaylistItemsNPObject(NPP instance, const NPClass *aClass) :
207 RuntimeNPObject(instance, aClass) {};
208 virtual ~LibvlcPlaylistItemsNPObject() {};
210 static const int propertyCount;
211 static const NPUTF8 * const propertyNames[];
213 InvokeResult getProperty(int index, NPVariant &result);
215 static const int methodCount;
216 static const NPUTF8 * const methodNames[];
218 InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
221 class LibvlcPlaylistNPObject: public RuntimeNPObject
224 friend class RuntimeNPClass<LibvlcPlaylistNPObject>;
226 LibvlcPlaylistNPObject(NPP instance, const NPClass *aClass) :
227 RuntimeNPObject(instance, aClass),
228 playlistItemsObj(NULL) {};
230 virtual ~LibvlcPlaylistNPObject();
232 static const int propertyCount;
233 static const NPUTF8 * const propertyNames[];
235 InvokeResult getProperty(int index, NPVariant &result);
237 static const int methodCount;
238 static const NPUTF8 * const methodNames[];
240 InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);
242 void parseOptions(const NPString &s, int *i_options, char*** ppsz_options);
243 void parseOptions(NPObject *obj, int *i_options, char*** ppsz_options);
246 NPObject* playlistItemsObj;
249 class LibvlcVideoNPObject: public RuntimeNPObject
252 friend class RuntimeNPClass<LibvlcVideoNPObject>;
254 LibvlcVideoNPObject(NPP instance, const NPClass *aClass) :
255 RuntimeNPObject(instance, aClass) {};
256 virtual ~LibvlcVideoNPObject() {};
258 static const int propertyCount;
259 static const NPUTF8 * const propertyNames[];
261 InvokeResult getProperty(int index, NPVariant &result);
262 InvokeResult setProperty(int index, const NPVariant &value);
264 static const int methodCount;
265 static const NPUTF8 * const methodNames[];
267 InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);