STDMETHODIMP put_volume(long);
STDMETHODIMP get_track(long*);
STDMETHODIMP put_track(long);
+ STDMETHODIMP get_count(long*);
STDMETHODIMP get_channel(long*);
STDMETHODIMP put_channel(long);
STDMETHODIMP toggleMute();
+ STDMETHODIMP description(long, BSTR*);
protected:
HRESULT loadTypeInfo();
VLCMessages* _p_vlcmessages;
};
+class VLCMarquee : public IVLCMarquee
+{
+public:
+ VLCMarquee(VLCPlugin *p_instance) :
+ _p_instance(p_instance), _p_typeinfo(NULL) {};
+ virtual ~VLCMarquee();
+
+ // IUnknown methods
+ STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
+ {
+ if( NULL == ppv )
+ return E_POINTER;
+ if( (IID_IUnknown == riid)
+ || (IID_IDispatch == riid)
+ || (IID_IVLCMarquee == riid) )
+ {
+ AddRef();
+ *ppv = reinterpret_cast<LPVOID>(this);
+ return NOERROR;
+ }
+ // behaves as a standalone object
+ return E_NOINTERFACE;
+ };
+
+ STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
+ STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
+
+ // IDispatch methods
+ STDMETHODIMP GetTypeInfoCount(UINT*);
+ STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*);
+ STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*);
+ STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*);
+
+ // IVLCMarquee methods
+ STDMETHODIMP enable();
+ STDMETHODIMP disable();
+ STDMETHODIMP text(BSTR);
+ STDMETHODIMP color(long);
+ STDMETHODIMP opacity(long);
+ STDMETHODIMP position(long);
+ STDMETHODIMP refresh(long);
+ STDMETHODIMP size(long);
+ STDMETHODIMP timeout(long);
+ STDMETHODIMP x(long);
+ STDMETHODIMP y(long);
+
+protected:
+ HRESULT loadTypeInfo();
+ HRESULT exception_bridge(libvlc_exception_t *ex);
+
+private:
+ VLCPlugin* _p_instance;
+ ITypeInfo* _p_typeinfo;
+
+};
+
class VLCPlaylistItems : public IVLCPlaylistItems
{
public:
VLCPlaylistItems* _p_vlcplaylistitems;
};
+class VLCSubtitle : public IVLCSubtitle
+{
+public:
+ VLCSubtitle(VLCPlugin *p_instance) :
+ _p_instance(p_instance), _p_typeinfo(NULL) {};
+ virtual ~VLCSubtitle();
+
+ // IUnknown methods
+ STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
+ {
+ if( NULL == ppv )
+ return E_POINTER;
+ if( (IID_IUnknown == riid)
+ || (IID_IDispatch == riid)
+ || (IID_IVLCSubtitle == riid) )
+ {
+ AddRef();
+ *ppv = reinterpret_cast<LPVOID>(this);
+ return NOERROR;
+ }
+ // behaves as a standalone object
+ return E_NOINTERFACE;
+ };
+
+ STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
+ STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
+
+ // IDispatch methods
+ STDMETHODIMP GetTypeInfoCount(UINT*);
+ STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*);
+ STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*);
+ STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*);
+
+ // IVLCSubtitle methods
+ STDMETHODIMP get_track(long*);
+ STDMETHODIMP put_track(long);
+ STDMETHODIMP get_count(long*);
+ STDMETHODIMP description(long, BSTR*);
+
+protected:
+ HRESULT loadTypeInfo();
+ HRESULT exception_bridge(libvlc_exception_t *ex);
+
+private:
+ VLCPlugin* _p_instance;
+ ITypeInfo* _p_typeinfo;
+
+};
+
class VLCVideo : public IVLCVideo
{
public:
VLCVideo(VLCPlugin *p_instance) :
- _p_instance(p_instance), _p_typeinfo(NULL) {};
+ _p_instance(p_instance),
+ _p_typeinfo(NULL),
+ _p_vlcmarquee(NULL)
+ {
+ _p_vlcmarquee = new VLCMarquee(p_instance);
+ };
virtual ~VLCVideo();
// IUnknown methods
STDMETHODIMP put_crop(BSTR);
STDMETHODIMP get_teletext(long*);
STDMETHODIMP put_teletext(long);
+ STDMETHODIMP get_marquee(IVLCMarquee**);
+ STDMETHODIMP deinterlaceDisable();
+ STDMETHODIMP deinterlaceEnable(BSTR);
STDMETHODIMP takeSnapshot(LPPICTUREDISP*);
STDMETHODIMP toggleFullscreen();
STDMETHODIMP toggleTeletext();
private:
VLCPlugin* _p_instance;
ITypeInfo* _p_typeinfo;
+ VLCMarquee* _p_vlcmarquee;
};
STDMETHODIMP get_input(IVLCInput**);
STDMETHODIMP get_log(IVLCLog**);
STDMETHODIMP get_playlist(IVLCPlaylist**);
+ STDMETHODIMP get_subtitle(IVLCSubtitle**);
STDMETHODIMP get_video(IVLCVideo**);
protected:
VLCInput* _p_vlcinput;
VLCLog * _p_vlclog;
VLCPlaylist* _p_vlcplaylist;
+ VLCSubtitle* _p_vlcsubtitle;
VLCVideo* _p_vlcvideo;
};