]> git.sesse.net Git - vlc/blobdiff - activex/vlccontrol2.h
Removes trailing spaces. Removes tabs.
[vlc] / activex / vlccontrol2.h
old mode 100755 (executable)
new mode 100644 (file)
index f2ba69a..23c2853
@@ -4,6 +4,7 @@
  * Copyright (C) 2006 the VideoLAN team
  *
  * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
+ *          Jean-Paul Saman <jpsaman _at_ m2x _dot_ nl>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -65,8 +66,12 @@ public:
     STDMETHODIMP put_mute(VARIANT_BOOL);
     STDMETHODIMP get_volume(long*);
     STDMETHODIMP put_volume(long);
+    STDMETHODIMP get_track(long*);
+    STDMETHODIMP put_track(long);
+    STDMETHODIMP get_channel(long*);
+    STDMETHODIMP put_channel(long);
     STDMETHODIMP toggleMute();
+
 protected:
     HRESULT loadTypeInfo();
 
@@ -75,7 +80,7 @@ private:
     ITypeInfo*      _p_typeinfo;
 
 };
+
 class VLCInput : public IVLCInput
 {
 public:
@@ -130,7 +135,7 @@ private:
     ITypeInfo*      _p_typeinfo;
 
 };
+
 class VLCMessage: public IVLCMessage
 {
 public:
@@ -184,7 +189,7 @@ public:
     STDMETHODIMP get_name(BSTR *);
     STDMETHODIMP get_header(BSTR *);
     STDMETHODIMP get_message(BSTR *);
-    
+
 protected:
     HRESULT loadTypeInfo();
 
@@ -195,7 +200,7 @@ private:
 
     struct libvlc_log_message_t _msg;
 };
+
 class VLCLog;
 
 class VLCMessageIterator : public IVLCMessageIterator
@@ -243,7 +248,7 @@ public:
     // IVLCMessageIterator methods
     STDMETHODIMP get_hasNext(VARIANT_BOOL*);
     STDMETHODIMP next(IVLCMessage**);
-    
 protected:
     HRESULT loadTypeInfo();
 
@@ -255,15 +260,15 @@ private:
     VLCLog*                 _p_vlclog;
     libvlc_log_iterator_t*  _p_iter;
 };
+
 class VLCMessages : public IVLCMessages
 {
 public:
 
     VLCMessages(VLCPlugin *p_instance, VLCLog *p_vlclog) :
+        _p_vlclog(p_vlclog),
         _p_instance(p_instance),
-        _p_typeinfo(NULL),
-        _p_vlclog(p_vlclog) {};
+        _p_typeinfo(NULL) {}
     virtual ~VLCMessages();
 
     // IUnknown methods
@@ -297,7 +302,7 @@ public:
     STDMETHODIMP clear();
     STDMETHODIMP get_count(long*);
     STDMETHODIMP iterator(IVLCMessageIterator**);
-    
+
 protected:
     HRESULT loadTypeInfo();
 
@@ -316,9 +321,10 @@ public:
     friend class VLCMessageIterator;
 
     VLCLog(VLCPlugin *p_instance) :
+        _p_log(NULL),
         _p_instance(p_instance),
         _p_typeinfo(NULL),
-        _p_log(NULL)
+        _p_vlcmessages(NULL)
     {
         _p_vlcmessages = new VLCMessages(p_instance, this);
     };
@@ -354,7 +360,7 @@ public:
     STDMETHODIMP get_messages(IVLCMessages**);
     STDMETHODIMP get_verbosity(long *);
     STDMETHODIMP put_verbosity(long);
-    
+
 protected:
     HRESULT loadTypeInfo();
 
@@ -366,12 +372,64 @@ private:
 
     VLCMessages*    _p_vlcmessages;
 };
+
+class VLCPlaylistItems : public IVLCPlaylistItems
+{
+public:
+    VLCPlaylistItems(VLCPlugin *p_instance) :
+        _p_instance(p_instance), _p_typeinfo(NULL) {};
+    virtual ~VLCPlaylistItems();
+
+    // IUnknown methods
+    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
+    {
+        if( NULL == ppv )
+          return E_POINTER;
+        if( (IID_IUnknown == riid)
+         || (IID_IDispatch == riid)
+         || (IID_IVLCPlaylistItems == 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*);
+
+    // IVLCPlaylistItems methods
+    STDMETHODIMP get_count(long*);
+    STDMETHODIMP clear();
+    STDMETHODIMP remove(long);
+
+protected:
+    HRESULT loadTypeInfo();
+
+private:
+    VLCPlugin*  _p_instance;
+    ITypeInfo*  _p_typeinfo;
+
+};
+
 class VLCPlaylist : public IVLCPlaylist
 {
 public:
     VLCPlaylist(VLCPlugin *p_instance) :
-        _p_instance(p_instance), _p_typeinfo(NULL) {};
+        _p_instance(p_instance),
+        _p_typeinfo(NULL),
+        _p_vlcplaylistitems(NULL)
+    {
+        _p_vlcplaylistitems = new VLCPlaylistItems(p_instance);
+    };
     virtual ~VLCPlaylist();
 
     // IUnknown methods
@@ -412,7 +470,8 @@ public:
     STDMETHODIMP prev();
     STDMETHODIMP clear();
     STDMETHODIMP removeItem(long);
+    STDMETHODIMP get_items(IVLCPlaylistItems**);
+
 protected:
     HRESULT loadTypeInfo();
 
@@ -420,8 +479,9 @@ private:
     VLCPlugin*  _p_instance;
     ITypeInfo*  _p_typeinfo;
 
+    VLCPlaylistItems*    _p_vlcplaylistitems;
 };
+
 class VLCVideo : public IVLCVideo
 {
 public:
@@ -460,10 +520,17 @@ public:
     STDMETHODIMP put_fullscreen(VARIANT_BOOL);
     STDMETHODIMP get_width(long*);
     STDMETHODIMP get_height(long*);
-    STDMETHODIMP get_aspectRatio(BSTR);
+    STDMETHODIMP get_aspectRatio(BSTR*);
     STDMETHODIMP put_aspectRatio(BSTR);
+    STDMETHODIMP get_subtitle(long*);
+    STDMETHODIMP put_subtitle(long);
+    STDMETHODIMP get_crop(BSTR*);
+    STDMETHODIMP put_crop(BSTR);
+    STDMETHODIMP get_teletext(long*);
+    STDMETHODIMP put_teletext(long);
+    STDMETHODIMP takeSnapshot(LPPICTUREDISP*);
     STDMETHODIMP toggleFullscreen();
+
 protected:
     HRESULT loadTypeInfo();
 
@@ -472,10 +539,9 @@ private:
     ITypeInfo*      _p_typeinfo;
 
 };
+
 class VLCControl2 : public IVLCControl2
 {
-    
 public:
 
     VLCControl2(VLCPlugin *p_instance);
@@ -522,6 +588,8 @@ public:
     STDMETHODIMP put_Visible(VARIANT_BOOL visible);
     STDMETHODIMP get_Volume(long *volume);
     STDMETHODIMP put_Volume(long volume);
+    STDMETHODIMP get_BackColor(OLE_COLOR *backcolor);
+    STDMETHODIMP put_BackColor(OLE_COLOR backcolor);
 
     STDMETHODIMP get_audio(IVLCAudio**);
     STDMETHODIMP get_input(IVLCInput**);
@@ -542,6 +610,5 @@ private:
     VLCPlaylist*    _p_vlcplaylist;
     VLCVideo*       _p_vlcvideo;
 };
-#endif
 
+#endif