1 /*****************************************************************************
2 * vlccontrol.h: ActiveX control for VLC
3 *****************************************************************************
4 * Copyright (C) 2006 the VideoLAN team
6 * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
7 * Jean-Paul Saman <jpsaman _at_ m2x _dot_ nl>
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
19 * You should have received a copy of the GNU General Public License along
20 * with this program; if not, write to the Free Software Foundation, Inc.,
21 * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22 *****************************************************************************/
24 #ifndef _VLCCONTROL2_H_
25 #define _VLCCONTROL2_H_
27 #include "axvlc_idl.h"
29 #include <vlc/libvlc.h>
31 class VLCAudio : public IVLCAudio
34 VLCAudio(VLCPlugin *p_instance) :
35 _p_instance(p_instance), _p_typeinfo(NULL) {};
39 STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
43 if( (IID_IUnknown == riid)
44 || (IID_IDispatch == riid)
45 || (IID_IVLCAudio == riid) )
48 *ppv = reinterpret_cast<LPVOID>(this);
51 // behaves as a standalone object
55 STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
56 STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
59 STDMETHODIMP GetTypeInfoCount(UINT*);
60 STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*);
61 STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*);
62 STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*);
65 STDMETHODIMP get_mute(VARIANT_BOOL*);
66 STDMETHODIMP put_mute(VARIANT_BOOL);
67 STDMETHODIMP get_volume(long*);
68 STDMETHODIMP put_volume(long);
69 STDMETHODIMP get_track(long*);
70 STDMETHODIMP put_track(long);
71 STDMETHODIMP get_count(long*);
72 STDMETHODIMP get_channel(long*);
73 STDMETHODIMP put_channel(long);
74 STDMETHODIMP toggleMute();
75 STDMETHODIMP description(long, BSTR*);
78 HRESULT loadTypeInfo();
79 HRESULT exception_bridge(libvlc_exception_t *ex);
82 VLCPlugin* _p_instance;
83 ITypeInfo* _p_typeinfo;
87 class VLCInput : public IVLCInput
91 VLCInput(VLCPlugin *p_instance) :
92 _p_instance(p_instance), _p_typeinfo(NULL) {};
96 STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
100 if( (IID_IUnknown == riid)
101 || (IID_IDispatch == riid)
102 || (IID_IVLCInput == riid) )
105 *ppv = reinterpret_cast<LPVOID>(this);
108 // behaves as a standalone object
109 return E_NOINTERFACE;
112 STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
113 STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
116 STDMETHODIMP GetTypeInfoCount(UINT*);
117 STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*);
118 STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*);
119 STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*);
122 STDMETHODIMP get_length(double*);
123 STDMETHODIMP get_position(double*);
124 STDMETHODIMP put_position(double);
125 STDMETHODIMP get_time(double*);
126 STDMETHODIMP put_time(double);
127 STDMETHODIMP get_state(long*);
128 STDMETHODIMP get_rate(double*);
129 STDMETHODIMP put_rate(double);
130 STDMETHODIMP get_fps(double*);
131 STDMETHODIMP get_hasVout(VARIANT_BOOL*);
134 HRESULT loadTypeInfo();
135 HRESULT exception_bridge(libvlc_exception_t *ex);
138 VLCPlugin* _p_instance;
139 ITypeInfo* _p_typeinfo;
143 class VLCMessage: public IVLCMessage
147 VLCMessage(VLCPlugin *p_instance, struct libvlc_log_message_t &msg) :
148 _p_instance(p_instance),
152 virtual ~VLCMessage();
155 STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
159 if( (IID_IUnknown == riid)
160 || (IID_IDispatch == riid)
161 || (IID_IVLCMessage == riid) )
164 *ppv = reinterpret_cast<LPVOID>(this);
167 // behaves as a standalone object
168 return E_NOINTERFACE;
171 STDMETHODIMP_(ULONG) AddRef(void) { return InterlockedIncrement(&_refcount); };
172 STDMETHODIMP_(ULONG) Release(void)
174 ULONG refcount = InterlockedDecrement(&_refcount);
184 STDMETHODIMP GetTypeInfoCount(UINT*);
185 STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*);
186 STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*);
187 STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*);
189 // IVLCMessage methods
190 STDMETHODIMP get__Value(VARIANT *);
191 STDMETHODIMP get_severity(long *);
192 STDMETHODIMP get_type(BSTR *);
193 STDMETHODIMP get_name(BSTR *);
194 STDMETHODIMP get_header(BSTR *);
195 STDMETHODIMP get_message(BSTR *);
198 HRESULT loadTypeInfo();
201 VLCPlugin* _p_instance;
202 ITypeInfo* _p_typeinfo;
205 struct libvlc_log_message_t _msg;
210 class VLCMessageIterator : public IVLCMessageIterator
214 VLCMessageIterator(VLCPlugin *p_instance, VLCLog* p_vlclog);
215 virtual ~VLCMessageIterator();
218 STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
222 if( (IID_IUnknown == riid)
223 || (IID_IDispatch == riid)
224 || (IID_IVLCMessageIterator == riid) )
227 *ppv = reinterpret_cast<LPVOID>(this);
230 // behaves as a standalone object
231 return E_NOINTERFACE;
234 STDMETHODIMP_(ULONG) AddRef(void) { return InterlockedIncrement(&_refcount); };
235 STDMETHODIMP_(ULONG) Release(void)
237 ULONG refcount = InterlockedDecrement(&_refcount);
247 STDMETHODIMP GetTypeInfoCount(UINT*);
248 STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*);
249 STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*);
250 STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*);
252 // IVLCMessageIterator methods
253 STDMETHODIMP get_hasNext(VARIANT_BOOL*);
254 STDMETHODIMP next(IVLCMessage**);
257 HRESULT loadTypeInfo();
258 HRESULT exception_bridge(libvlc_exception_t *ex);
261 VLCPlugin* _p_instance;
262 ITypeInfo* _p_typeinfo;
266 libvlc_log_iterator_t* _p_iter;
269 class VLCMessages : public IVLCMessages
273 VLCMessages(VLCPlugin *p_instance, VLCLog *p_vlclog) :
275 _p_instance(p_instance),
277 virtual ~VLCMessages();
280 STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
284 if( (IID_IUnknown == riid)
285 || (IID_IDispatch == riid)
286 || (IID_IVLCMessages == riid) )
289 *ppv = reinterpret_cast<LPVOID>(this);
292 // behaves as a standalone object
293 return E_NOINTERFACE;
296 STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
297 STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
300 STDMETHODIMP GetTypeInfoCount(UINT*);
301 STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*);
302 STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*);
303 STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*);
305 // IVLCMessages methods
306 STDMETHODIMP get__NewEnum(LPUNKNOWN*);
307 STDMETHODIMP clear();
308 STDMETHODIMP get_count(long*);
309 STDMETHODIMP iterator(IVLCMessageIterator**);
312 HRESULT loadTypeInfo();
313 HRESULT exception_bridge(libvlc_exception_t *ex);
318 VLCPlugin* _p_instance;
319 ITypeInfo* _p_typeinfo;
322 class VLCLog : public IVLCLog
326 friend class VLCMessages;
327 friend class VLCMessageIterator;
329 VLCLog(VLCPlugin *p_instance) :
331 _p_instance(p_instance),
335 _p_vlcmessages = new VLCMessages(p_instance, this);
340 STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
344 if( (IID_IUnknown == riid)
345 || (IID_IDispatch == riid)
346 || (IID_IVLCLog == riid) )
349 *ppv = reinterpret_cast<LPVOID>(this);
352 // behaves as a standalone object
353 return E_NOINTERFACE;
356 STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
357 STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
360 STDMETHODIMP GetTypeInfoCount(UINT*);
361 STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*);
362 STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*);
363 STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*);
366 STDMETHODIMP get_messages(IVLCMessages**);
367 STDMETHODIMP get_verbosity(long *);
368 STDMETHODIMP put_verbosity(long);
371 HRESULT loadTypeInfo();
372 HRESULT exception_bridge(libvlc_exception_t *ex);
374 libvlc_log_t *_p_log;
377 VLCPlugin* _p_instance;
378 ITypeInfo* _p_typeinfo;
380 VLCMessages* _p_vlcmessages;
383 class VLCMarquee : public IVLCMarquee
386 VLCMarquee(VLCPlugin *p_instance) :
387 _p_instance(p_instance), _p_typeinfo(NULL) {};
388 virtual ~VLCMarquee();
391 STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
395 if( (IID_IUnknown == riid)
396 || (IID_IDispatch == riid)
397 || (IID_IVLCMarquee == riid) )
400 *ppv = reinterpret_cast<LPVOID>(this);
403 // behaves as a standalone object
404 return E_NOINTERFACE;
407 STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
408 STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
411 STDMETHODIMP GetTypeInfoCount(UINT*);
412 STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*);
413 STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*);
414 STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*);
416 // IVLCMarquee methods
417 STDMETHODIMP enable();
418 STDMETHODIMP disable();
419 STDMETHODIMP text(BSTR);
420 STDMETHODIMP color(long);
421 STDMETHODIMP opacity(long);
422 STDMETHODIMP position(long);
423 STDMETHODIMP refresh(long);
424 STDMETHODIMP size(long);
425 STDMETHODIMP timeout(long);
426 STDMETHODIMP x(long);
427 STDMETHODIMP y(long);
430 HRESULT loadTypeInfo();
431 HRESULT exception_bridge(libvlc_exception_t *ex);
434 VLCPlugin* _p_instance;
435 ITypeInfo* _p_typeinfo;
439 class VLCPlaylistItems : public IVLCPlaylistItems
442 VLCPlaylistItems(VLCPlugin *p_instance) :
443 _p_instance(p_instance), _p_typeinfo(NULL) {};
444 virtual ~VLCPlaylistItems();
447 STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
451 if( (IID_IUnknown == riid)
452 || (IID_IDispatch == riid)
453 || (IID_IVLCPlaylistItems == riid) )
456 *ppv = reinterpret_cast<LPVOID>(this);
459 // behaves as a standalone object
460 return E_NOINTERFACE;
463 STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
464 STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
467 STDMETHODIMP GetTypeInfoCount(UINT*);
468 STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*);
469 STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*);
470 STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*);
472 // IVLCPlaylistItems methods
473 STDMETHODIMP get_count(long*);
474 STDMETHODIMP clear();
475 STDMETHODIMP remove(long);
478 HRESULT loadTypeInfo();
479 HRESULT exception_bridge(libvlc_exception_t *ex);
482 VLCPlugin* _p_instance;
483 ITypeInfo* _p_typeinfo;
487 class VLCPlaylist : public IVLCPlaylist
490 VLCPlaylist(VLCPlugin *p_instance) :
491 _p_instance(p_instance),
493 _p_vlcplaylistitems(NULL)
495 _p_vlcplaylistitems = new VLCPlaylistItems(p_instance);
497 virtual ~VLCPlaylist();
500 STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
504 if( (IID_IUnknown == riid)
505 || (IID_IDispatch == riid)
506 || (IID_IVLCPlaylist == riid) )
509 *ppv = reinterpret_cast<LPVOID>(this);
512 // behaves as a standalone object
513 return E_NOINTERFACE;
516 STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
517 STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
520 STDMETHODIMP GetTypeInfoCount(UINT*);
521 STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*);
522 STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*);
523 STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*);
525 // IVLCPlaylist methods
526 STDMETHODIMP get_itemCount(long*);
527 STDMETHODIMP get_isPlaying(VARIANT_BOOL*);
528 STDMETHODIMP add(BSTR, VARIANT, VARIANT, long*);
530 STDMETHODIMP playItem(long);
531 STDMETHODIMP togglePause();
535 STDMETHODIMP clear();
536 STDMETHODIMP removeItem(long);
537 STDMETHODIMP get_items(IVLCPlaylistItems**);
540 HRESULT loadTypeInfo();
541 HRESULT exception_bridge(libvlc_exception_t *ex);
544 VLCPlugin* _p_instance;
545 ITypeInfo* _p_typeinfo;
547 VLCPlaylistItems* _p_vlcplaylistitems;
550 class VLCSubtitle : public IVLCSubtitle
553 VLCSubtitle(VLCPlugin *p_instance) :
554 _p_instance(p_instance), _p_typeinfo(NULL) {};
555 virtual ~VLCSubtitle();
558 STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
562 if( (IID_IUnknown == riid)
563 || (IID_IDispatch == riid)
564 || (IID_IVLCSubtitle == riid) )
567 *ppv = reinterpret_cast<LPVOID>(this);
570 // behaves as a standalone object
571 return E_NOINTERFACE;
574 STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
575 STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
578 STDMETHODIMP GetTypeInfoCount(UINT*);
579 STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*);
580 STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*);
581 STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*);
583 // IVLCSubtitle methods
584 STDMETHODIMP get_track(long*);
585 STDMETHODIMP put_track(long);
586 STDMETHODIMP get_count(long*);
587 STDMETHODIMP description(long, BSTR*);
590 HRESULT loadTypeInfo();
591 HRESULT exception_bridge(libvlc_exception_t *ex);
594 VLCPlugin* _p_instance;
595 ITypeInfo* _p_typeinfo;
599 class VLCVideo : public IVLCVideo
602 VLCVideo(VLCPlugin *p_instance) :
603 _p_instance(p_instance),
607 _p_vlcmarquee = new VLCMarquee(p_instance);
612 STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
616 if( (IID_IUnknown == riid)
617 || (IID_IDispatch == riid)
618 || (IID_IVLCVideo == riid) )
621 *ppv = reinterpret_cast<LPVOID>(this);
624 // behaves as a standalone object
625 return E_NOINTERFACE;
628 STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
629 STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
632 STDMETHODIMP GetTypeInfoCount(UINT*);
633 STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*);
634 STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*);
635 STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*);
638 STDMETHODIMP get_fullscreen(VARIANT_BOOL*);
639 STDMETHODIMP put_fullscreen(VARIANT_BOOL);
640 STDMETHODIMP get_width(long*);
641 STDMETHODIMP get_height(long*);
642 STDMETHODIMP get_aspectRatio(BSTR*);
643 STDMETHODIMP put_aspectRatio(BSTR);
644 STDMETHODIMP get_subtitle(long*);
645 STDMETHODIMP put_subtitle(long);
646 STDMETHODIMP get_crop(BSTR*);
647 STDMETHODIMP put_crop(BSTR);
648 STDMETHODIMP get_teletext(long*);
649 STDMETHODIMP put_teletext(long);
650 STDMETHODIMP get_marquee(IVLCMarquee**);
651 STDMETHODIMP deinterlaceDisable();
652 STDMETHODIMP deinterlaceEnable(BSTR);
653 STDMETHODIMP takeSnapshot(LPPICTUREDISP*);
654 STDMETHODIMP toggleFullscreen();
655 STDMETHODIMP toggleTeletext();
658 HRESULT loadTypeInfo();
659 HRESULT exception_bridge(libvlc_exception_t *ex);
662 VLCPlugin* _p_instance;
663 ITypeInfo* _p_typeinfo;
664 VLCMarquee* _p_vlcmarquee;
668 class VLCControl2 : public IVLCControl2
672 VLCControl2(VLCPlugin *p_instance);
673 virtual ~VLCControl2();
676 STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
680 if( (IID_IUnknown == riid)
681 || (IID_IDispatch == riid)
682 || (IID_IVLCControl2 == riid) )
685 *ppv = reinterpret_cast<LPVOID>(this);
688 return _p_instance->pUnkOuter->QueryInterface(riid, ppv);
691 STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
692 STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
695 STDMETHODIMP GetTypeInfoCount(UINT*);
696 STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*);
697 STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*);
698 STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*);
700 // IVLCControl2 methods
701 STDMETHODIMP get_AutoLoop(VARIANT_BOOL *autoloop);
702 STDMETHODIMP put_AutoLoop(VARIANT_BOOL autoloop);
703 STDMETHODIMP get_AutoPlay(VARIANT_BOOL *autoplay);
704 STDMETHODIMP put_AutoPlay(VARIANT_BOOL autoplay);
705 STDMETHODIMP get_BaseURL(BSTR *url);
706 STDMETHODIMP put_BaseURL(BSTR url);
707 STDMETHODIMP get_MRL(BSTR *mrl);
708 STDMETHODIMP put_MRL(BSTR mrl);
709 STDMETHODIMP get_Toolbar(VARIANT_BOOL *visible);
710 STDMETHODIMP put_Toolbar(VARIANT_BOOL visible);
711 STDMETHODIMP get_StartTime(long *seconds);
712 STDMETHODIMP put_StartTime(long seconds);
713 STDMETHODIMP get_VersionInfo(BSTR *version);
714 STDMETHODIMP get_Visible(VARIANT_BOOL *visible);
715 STDMETHODIMP put_Visible(VARIANT_BOOL visible);
716 STDMETHODIMP get_Volume(long *volume);
717 STDMETHODIMP put_Volume(long volume);
718 STDMETHODIMP get_BackColor(OLE_COLOR *backcolor);
719 STDMETHODIMP put_BackColor(OLE_COLOR backcolor);
721 STDMETHODIMP get_audio(IVLCAudio**);
722 STDMETHODIMP get_input(IVLCInput**);
723 STDMETHODIMP get_log(IVLCLog**);
724 STDMETHODIMP get_playlist(IVLCPlaylist**);
725 STDMETHODIMP get_subtitle(IVLCSubtitle**);
726 STDMETHODIMP get_video(IVLCVideo**);
729 HRESULT loadTypeInfo();
732 VLCPlugin* _p_instance;
733 ITypeInfo* _p_typeinfo;
735 VLCAudio* _p_vlcaudio;
736 VLCInput* _p_vlcinput;
738 VLCPlaylist* _p_vlcplaylist;
739 VLCSubtitle* _p_vlcsubtitle;
740 VLCVideo* _p_vlcvideo;