]> git.sesse.net Git - vlc/blobdiff - projects/activex/vlccontrol2.h
activex: remove libvlc_exceptions and adapt to recent libvlc changes
[vlc] / projects / activex / vlccontrol2.h
index ba09f1f76105774d12af9e2b93ee19008d64ab54..698331efb9de6c2d36eedaf874aa82ed5184c14c 100644 (file)
@@ -40,7 +40,6 @@ public:
     HRESULT getMD(libvlc_media_player_t **pp) const { return _plug->getMD(pp); }
 
 protected:
-    HRESULT report_exception(REFIID riid, libvlc_exception_t *ex);
     HRESULT loadTypeInfo(REFIID riid);
     ITypeInfo *TypeInfo() const { return _ti; }
 
@@ -71,12 +70,6 @@ public:
     HRESULT getVLC(libvlc_instance_t **pp) const { return Base::getVLC(pp); }
     HRESULT getMD(libvlc_media_player_t **pp) const { return Base::getMD(pp); }
 
-    HRESULT exception_bridge(libvlc_exception_t *ex)
-    {
-        return libvlc_exception_raised(ex) ?
-            Base::report_exception(_riid,ex) : NOERROR;
-    }
-
     STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
     {
         if( NULL == ppv ) return E_POINTER;
@@ -206,7 +199,6 @@ private:
     HRESULT do_get_int(unsigned idx, LONG *val);
 };
 
-
 class VLCLogo: public VLCInterface<VLCLogo,IVLCLogo>
 {
 public:
@@ -239,6 +231,16 @@ private:
     HRESULT do_get_int(unsigned idx, LONG *val);
 };
 
+class VLCDeinterlace: public VLCInterface<VLCDeinterlace,IVLCDeinterlace>
+{
+public:
+    VLCDeinterlace(VLCPlugin *p):
+        VLCInterface<VLCDeinterlace,IVLCDeinterlace>(p) { }
+
+    STDMETHODIMP enable(BSTR val);
+    STDMETHODIMP disable();
+};
+
 class VLCPlaylistItems: public VLCInterface<VLCPlaylistItems,IVLCPlaylistItems>
 {
 public:
@@ -293,8 +295,13 @@ class VLCVideo: public VLCInterface<VLCVideo,IVLCVideo>
 {
 public:
     VLCVideo(VLCPlugin *p): VLCInterface<VLCVideo,IVLCVideo>(p),
-        _p_vlcmarquee(new VLCMarquee(p)), _p_vlclogo(new VLCLogo(p)) { }
-    virtual ~VLCVideo() { delete _p_vlcmarquee; delete _p_vlclogo; }
+        _p_vlcmarquee(new VLCMarquee(p)), _p_vlclogo(new VLCLogo(p)),
+        _p_vlcdeint(new VLCDeinterlace(p)) { }
+    virtual ~VLCVideo() {
+        delete _p_vlcmarquee;
+        delete _p_vlclogo;
+        delete _p_vlcdeint;
+    }
 
     // IVLCVideo methods
     STDMETHODIMP get_fullscreen(VARIANT_BOOL*);
@@ -311,15 +318,15 @@ public:
     STDMETHODIMP put_teletext(long);
     STDMETHODIMP get_marquee(IVLCMarquee**);
     STDMETHODIMP get_logo(IVLCLogo**);
-    STDMETHODIMP deinterlaceDisable();
-    STDMETHODIMP deinterlaceEnable(BSTR);
+    STDMETHODIMP get_deinterlace(IVLCDeinterlace**);
     STDMETHODIMP takeSnapshot(LPPICTUREDISP*);
     STDMETHODIMP toggleFullscreen();
     STDMETHODIMP toggleTeletext();
 
 private:
-    IVLCMarquee *_p_vlcmarquee;
-    IVLCLogo    *_p_vlclogo;
+    IVLCMarquee     *_p_vlcmarquee;
+    IVLCLogo        *_p_vlclogo;
+    IVLCDeinterlace *_p_vlcdeint;
 };
 
 class VLCControl2 : public IVLCControl2