]> git.sesse.net Git - vlc/blob - mozilla/control/npolibvlc.h
Removes trailing spaces. Removes tabs.
[vlc] / mozilla / control / npolibvlc.h
1 /*****************************************************************************\r
2  * npolibvlc.h: official Javascript APIs\r
3  *****************************************************************************\r
4  * Copyright (C) 2002-2006 the VideoLAN team\r
5  *\r
6  * Authors: Damien Fouilleul <damien.fouilleul@laposte.net>\r
7  *\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
12  *\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
17  *\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
22 \r
23 /*\r
24 ** defined runtime script objects\r
25 */\r
26 #include <vlc/libvlc.h>\r
27 \r
28 #include "nporuntime.h"\r
29 \r
30 class LibvlcRootNPObject: public RuntimeNPObject\r
31 {\r
32 protected:\r
33     friend class RuntimeNPClass<LibvlcRootNPObject>;\r
34 \r
35     LibvlcRootNPObject(NPP instance, const NPClass *aClass) :\r
36         RuntimeNPObject(instance, aClass),\r
37     audioObj(NULL),\r
38     inputObj(NULL),\r
39     logObj(NULL),\r
40     playlistObj(NULL),\r
41     videoObj(NULL) {};\r
42 \r
43     virtual ~LibvlcRootNPObject();\r
44 \r
45     static const int propertyCount;\r
46     static const NPUTF8 * const propertyNames[];\r
47 \r
48     InvokeResult getProperty(int index, NPVariant &result);\r
49 \r
50     static const int methodCount;\r
51     static const NPUTF8 * const methodNames[];\r
52 \r
53     InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);\r
54 \r
55 private:\r
56     NPObject *audioObj;\r
57     NPObject *inputObj;\r
58     NPObject *logObj;\r
59     NPObject *playlistObj;\r
60     NPObject *videoObj;\r
61 };\r
62 \r
63 class LibvlcAudioNPObject: public RuntimeNPObject\r
64 {\r
65 protected:\r
66     LibvlcAudioNPObject(NPP instance, const NPClass *aClass) :\r
67         RuntimeNPObject(instance, aClass) {};\r
68     virtual ~LibvlcAudioNPObject() {};\r
69 \r
70     friend class RuntimeNPClass<LibvlcAudioNPObject>;\r
71 \r
72     static const int propertyCount;\r
73     static const NPUTF8 * const propertyNames[];\r
74 \r
75     InvokeResult getProperty(int index, NPVariant &result);\r
76     InvokeResult setProperty(int index, const NPVariant &value);\r
77 \r
78     static const int methodCount;\r
79     static const NPUTF8 * const methodNames[];\r
80 \r
81     InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);\r
82 };\r
83 \r
84 class LibvlcInputNPObject: public RuntimeNPObject\r
85 {\r
86 protected:\r
87     friend class RuntimeNPClass<LibvlcInputNPObject>;\r
88 \r
89     LibvlcInputNPObject(NPP instance, const NPClass *aClass) :\r
90         RuntimeNPObject(instance, aClass) {};\r
91 \r
92     virtual ~LibvlcInputNPObject() {};\r
93 \r
94     static const int propertyCount;\r
95     static const NPUTF8 * const propertyNames[];\r
96 \r
97     InvokeResult getProperty(int index, NPVariant &result);\r
98     InvokeResult setProperty(int index, const NPVariant &value);\r
99 \r
100     static const int methodCount;\r
101     static const NPUTF8 * const methodNames[];\r
102 };\r
103 \r
104 class LibvlcMessageNPObject: public RuntimeNPObject\r
105 {\r
106 public:\r
107     void setMessage(struct libvlc_log_message_t &msg)\r
108     {\r
109         _msg = msg;\r
110     };\r
111 \r
112 protected:\r
113     friend class RuntimeNPClass<LibvlcMessageNPObject>;\r
114 \r
115     LibvlcMessageNPObject(NPP instance, const NPClass *aClass) :\r
116         RuntimeNPObject(instance, aClass) {};\r
117 \r
118     virtual ~LibvlcMessageNPObject() {};\r
119 \r
120     static const int propertyCount;\r
121     static const NPUTF8 * const propertyNames[];\r
122 \r
123     InvokeResult getProperty(int index, NPVariant &result);\r
124 \r
125     static const int methodCount;\r
126     static const NPUTF8 * const methodNames[];\r
127 \r
128 private:\r
129     struct libvlc_log_message_t _msg;\r
130 };\r
131 \r
132 class LibvlcLogNPObject;\r
133 \r
134 class LibvlcMessageIteratorNPObject: public RuntimeNPObject\r
135 {\r
136 protected:\r
137     friend class RuntimeNPClass<LibvlcMessageIteratorNPObject>;\r
138 \r
139     LibvlcMessageIteratorNPObject(NPP instance, const NPClass *aClass);\r
140     virtual ~LibvlcMessageIteratorNPObject();\r
141 \r
142     static const int propertyCount;\r
143     static const NPUTF8 * const propertyNames[];\r
144 \r
145     InvokeResult getProperty(int index, NPVariant &result);\r
146 \r
147     static const int methodCount;\r
148     static const NPUTF8 * const methodNames[];\r
149 \r
150     InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);\r
151 \r
152 private:\r
153     libvlc_log_iterator_t*  _p_iter;\r
154 };\r
155 \r
156 class LibvlcMessagesNPObject: public RuntimeNPObject\r
157 {\r
158 protected:\r
159     friend class RuntimeNPClass<LibvlcMessagesNPObject>;\r
160 \r
161     LibvlcMessagesNPObject(NPP instance, const NPClass *aClass) :\r
162         RuntimeNPObject(instance, aClass) {};\r
163 \r
164     virtual ~LibvlcMessagesNPObject() {};\r
165 \r
166     static const int propertyCount;\r
167     static const NPUTF8 * const propertyNames[];\r
168 \r
169     InvokeResult getProperty(int index, NPVariant &result);\r
170 \r
171     static const int methodCount;\r
172     static const NPUTF8 * const methodNames[];\r
173 \r
174     InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);\r
175 };\r
176 \r
177 class LibvlcLogNPObject: public RuntimeNPObject\r
178 {\r
179 protected:\r
180     friend class RuntimeNPClass<LibvlcLogNPObject>;\r
181 \r
182     LibvlcLogNPObject(NPP instance, const NPClass *aClass) :\r
183     RuntimeNPObject(instance, aClass),\r
184     messagesObj(NULL) {};\r
185 \r
186     virtual ~LibvlcLogNPObject();\r
187 \r
188     static const int propertyCount;\r
189     static const NPUTF8 * const propertyNames[];\r
190 \r
191     InvokeResult getProperty(int index, NPVariant &result);\r
192     InvokeResult setProperty(int index, const NPVariant &value);\r
193 \r
194     static const int methodCount;\r
195     static const NPUTF8 * const methodNames[];\r
196 \r
197 private:\r
198     NPObject* messagesObj;\r
199 };\r
200 \r
201 class LibvlcPlaylistItemsNPObject: public RuntimeNPObject\r
202 {\r
203 protected:\r
204     friend class RuntimeNPClass<LibvlcPlaylistItemsNPObject>;\r
205 \r
206     LibvlcPlaylistItemsNPObject(NPP instance, const NPClass *aClass) :\r
207         RuntimeNPObject(instance, aClass) {};\r
208     virtual ~LibvlcPlaylistItemsNPObject() {};\r
209 \r
210     static const int propertyCount;\r
211     static const NPUTF8 * const propertyNames[];\r
212 \r
213     InvokeResult getProperty(int index, NPVariant &result);\r
214 \r
215     static const int methodCount;\r
216     static const NPUTF8 * const methodNames[];\r
217 \r
218     InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);\r
219 };\r
220 \r
221 class LibvlcPlaylistNPObject: public RuntimeNPObject\r
222 {\r
223 protected:\r
224     friend class RuntimeNPClass<LibvlcPlaylistNPObject>;\r
225 \r
226     LibvlcPlaylistNPObject(NPP instance, const NPClass *aClass) :\r
227     RuntimeNPObject(instance, aClass),\r
228     playlistItemsObj(NULL) {};\r
229     \r
230     virtual ~LibvlcPlaylistNPObject();\r
231 \r
232     static const int propertyCount;\r
233     static const NPUTF8 * const propertyNames[];\r
234 \r
235     InvokeResult getProperty(int index, NPVariant &result);\r
236 \r
237     static const int methodCount;\r
238     static const NPUTF8 * const methodNames[];\r
239 \r
240     InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);\r
241 \r
242     void parseOptions(const NPString &s, int *i_options, char*** ppsz_options);\r
243     void parseOptions(NPObject *obj, int *i_options, char*** ppsz_options);\r
244 \r
245 private:\r
246     NPObject*  playlistItemsObj;\r
247 };\r
248 \r
249 class LibvlcVideoNPObject: public RuntimeNPObject\r
250 {\r
251 protected:\r
252     friend class RuntimeNPClass<LibvlcVideoNPObject>;\r
253 \r
254     LibvlcVideoNPObject(NPP instance, const NPClass *aClass) :\r
255         RuntimeNPObject(instance, aClass) {};\r
256     virtual ~LibvlcVideoNPObject() {};\r
257 \r
258     static const int propertyCount;\r
259     static const NPUTF8 * const propertyNames[];\r
260 \r
261     InvokeResult getProperty(int index, NPVariant &result);\r
262     InvokeResult setProperty(int index, const NPVariant &value);\r
263 \r
264     static const int methodCount;\r
265     static const NPUTF8 * const methodNames[];\r
266 \r
267     InvokeResult invoke(int index, const NPVariant *args, uint32_t argCount, NPVariant &result);\r
268 };\r