]> git.sesse.net Git - vlc/blobdiff - projects/activex/vlccontrol2.h
Fix unused warning on drawable.c
[vlc] / projects / activex / vlccontrol2.h
index ee52d5359e371ab0441c0d42529e2e1af67525b0..342116ae10594272efdc1eefa13ade49e8d28569 100644 (file)
@@ -68,9 +68,11 @@ public:
     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();
@@ -378,6 +380,62 @@ private:
     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:
@@ -489,11 +547,65 @@ private:
     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
@@ -535,6 +647,9 @@ public:
     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();
@@ -546,6 +661,7 @@ protected:
 private:
     VLCPlugin*      _p_instance;
     ITypeInfo*      _p_typeinfo;
+    VLCMarquee*     _p_vlcmarquee;
 
 };
 
@@ -606,6 +722,7 @@ public:
     STDMETHODIMP get_input(IVLCInput**);
     STDMETHODIMP get_log(IVLCLog**);
     STDMETHODIMP get_playlist(IVLCPlaylist**);
+    STDMETHODIMP get_subtitle(IVLCSubtitle**);
     STDMETHODIMP get_video(IVLCVideo**);
 
 protected:
@@ -619,6 +736,7 @@ private:
     VLCInput*       _p_vlcinput;
     VLCLog  *       _p_vlclog;
     VLCPlaylist*    _p_vlcplaylist;
+    VLCSubtitle*    _p_vlcsubtitle;
     VLCVideo*       _p_vlcvideo;
 };