]> git.sesse.net Git - vlc/blobdiff - projects/activex/axvlc.idl
Remove extra braces.
[vlc] / projects / activex / axvlc.idl
index 5f0f3e63ea379c5fbb1320c6cc0b36fc2806eec6..85ef7731a167ee10b713b84aa452da0a2321e8a3 100644 (file)
@@ -2,6 +2,7 @@
  * axvlc.idl: ActiveX control for VLC\r
  *****************************************************************************\r
  * Copyright (C) 2006 the VideoLAN team\r
+ * Copyright (C) 2010 M2X BV\r
  *\r
  * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>\r
  *          Jean-Paul Saman <jpsaman _at_ m2x _dot_ nl>\r
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.\r
  *****************************************************************************/\r
 \r
-//comments terminated by [t] are by tonsofpcs, regarding the string review.  April 02, 2006. [t]\r
-//Possibly change all instances of "the current playlist" to "the playlist" and "current playlist" to "the playlist" [t]\r
+// comments terminated by [t] are by tonsofpcs, regarding the string\r
+// review. April 02, 2006. [t]\r
+// Possibly change all instances of "the current playlist" to "the\r
+// playlist" and "current playlist" to "the playlist" [t]\r
 \r
 import "ocidl.idl";\r
 \r
@@ -37,11 +40,11 @@ library AXVLC
     interface IVLCControl;\r
     interface IVLCAudio;\r
     interface IVLCInput;\r
-    interface IVLCLog;\r
-    interface IVLCMessage;\r
-    interface IVLCMessageIterator;\r
-    interface IVLCMessages;\r
+    interface IVLCLogo;\r
+    interface IVLCDeinterlace;\r
+    interface IVLCMarquee;\r
     interface IVLCPlaylist;\r
+    interface IVLCSubtitle;\r
     interface IVLCVideo;\r
     interface IVLCControl2;\r
     dispinterface DVLCEvents;\r
@@ -76,6 +79,7 @@ library AXVLC
     const int DISPID_AutoLoop   = 108;\r
     const int DISPID_StartTime  = 109;\r
     const int DISPID_BaseURL    = 110;\r
+    const int DISPID_Toolbar     = 111;\r
 \r
     [\r
       odl,\r
@@ -126,13 +130,13 @@ library AXVLC
         HRESULT setVariable([in] BSTR name, [in] VARIANT value);\r
         [helpstring("Returns the value of a VLC variable.")]\r
         HRESULT getVariable([in] BSTR name, [out, retval] VARIANT *value);\r
-        [helpstring("Add an item to the playlist.")]\r
 \r
 /*\r
 ** use VARIANT rather than a SAFEARRAY as argument type\r
 ** for compatibility with some scripting language (JScript)\r
 */\r
 \r
+        [helpstring("Add an item to the playlist.")]\r
         HRESULT addTarget([in] BSTR uri, [in] VARIANT options, [in] enum VLCPlaylistMode mode, [in] int position);\r
         [propget, helpstring("Returns index of current item in playlist.")]\r
         HRESULT PlaylistIndex([out, retval] int* index);\r
@@ -164,6 +168,23 @@ library AXVLC
     const int DISPID_PauseEvent = 101;\r
     const int DISPID_StopEvent  = 102;\r
 \r
+    /* async events from libvlc */\r
+    const int DISPID_MediaPlayerNothingSpecialEvent = 200;\r
+    const int DISPID_MediaPlayerOpeningEvent = 201;\r
+    const int DISPID_MediaPlayerBufferingEvent = 202;\r
+    const int DISPID_MediaPlayerPlayingEvent = 203;\r
+    const int DISPID_MediaPlayerPausedEvent = 204;\r
+    const int DISPID_MediaPlayerForwardEvent = 205;\r
+    const int DISPID_MediaPlayerBackwardEvent = 206;\r
+    const int DISPID_MediaPlayerEncounteredErrorEvent = 207;\r
+    const int DISPID_MediaPlayerEndReachedEvent = 208;\r
+    const int DISPID_MediaPlayerStoppedEvent = 209;\r
+\r
+    const int DISPID_MediaPlayerTimeChangedEvent = 210;\r
+    const int DISPID_MediaPlayerPositionChangedEvent = 211;\r
+    const int DISPID_MediaPlayerSeekableChangedEvent = 212;\r
+    const int DISPID_MediaPlayerPausableChangedEvent = 213;\r
+\r
     [\r
       uuid(DF48072F-5EF8-434e-9B40-E2F3AE759B5F),\r
       helpstring("Event interface for VLC control"),\r
@@ -178,6 +199,37 @@ library AXVLC
             void pause();\r
             [id(DISPID_StopEvent), helpstring("Stopped")]\r
             void stop();\r
+\r
+            /* asyn events from libvlc */\r
+            [id(DISPID_MediaPlayerNothingSpecialEvent), helpstring("Idle state")]\r
+            void MediaPlayerNothingSpecial();\r
+            [id(DISPID_MediaPlayerOpeningEvent), helpstring("Opening media")]\r
+            void MediaPlayerOpening();\r
+            [id(DISPID_MediaPlayerBufferingEvent), helpstring("Buffering media")]\r
+            void MediaPlayerBuffering([in] long cache);\r
+            [id(DISPID_MediaPlayerPlayingEvent), helpstring("Media is playing")]\r
+            void MediaPlayerPlaying();\r
+            [id(DISPID_MediaPlayerPausedEvent), helpstring("Media is paused")]\r
+            void MediaPlayerPaused();\r
+            [id(DISPID_MediaPlayerForwardEvent), helpstring("Forward playback")]\r
+            void MediaPlayerForward();\r
+            [id(DISPID_MediaPlayerBackwardEvent), helpstring("Backward playback")]\r
+            void MediaPlayerBackward();\r
+            [id(DISPID_MediaPlayerEncounteredErrorEvent), helpstring("An error has been encountered")]\r
+            void MediaPlayerEncounteredError();\r
+            [id(DISPID_MediaPlayerEndReachedEvent), helpstring("End of playback reached")]\r
+            void MediaPlayerEndReached();\r
+            [id(DISPID_MediaPlayerStoppedEvent), helpstring("Playback stopped")]\r
+            void MediaPlayerStopped();\r
+\r
+            [id(DISPID_MediaPlayerTimeChangedEvent), helpstring("Time changed")]\r
+            void MediaPlayerTimeChanged([in] long time);\r
+            [id(DISPID_MediaPlayerPositionChangedEvent), helpstring("Position changed")]\r
+            void MediaPlayerPositionChanged([in] long position);\r
+            [id(DISPID_MediaPlayerSeekableChangedEvent), helpstring("Seek changed")]\r
+            void MediaPlayerSeekableChanged([in] VARIANT_BOOL seekable);\r
+            [id(DISPID_MediaPlayerPausableChangedEvent), helpstring("Pause setting changed")]\r
+            void MediaPlayerPausableChanged([in] VARIANT_BOOL pausable);\r
     };\r
 \r
     [\r
@@ -207,6 +259,11 @@ library AXVLC
         [propput, helpstring("Returns/sets audio track used/to use.")]\r
         HRESULT track([in] long track);\r
 \r
+        [propget, helpstring("Returns the number of audio tracks available.")]\r
+        HRESULT count([out, retval] long* trackNumber);\r
+        [helpstring("Returns audio track name.")]\r
+        HRESULT description([in] long trackID, [out, retval] BSTR* name);\r
+\r
         [propget, helpstring("Returns audio channel [1-5] indicating; stereo, reverse stereo, left, right, dolby.")]\r
         HRESULT channel([out, retval] long* channel);\r
         [propput, helpstring("Sets audio channel to [1-5] indicating; stereo, reverse stereo, left, right, dolby.")]\r
@@ -250,90 +307,6 @@ library AXVLC
         HRESULT hasVout([out, retval] VARIANT_BOOL* hasVout);\r
     };\r
 \r
-    [\r
-      odl,\r
-      uuid(9ED00AFA-7BCD-4FFF-8D48-7DD4DB2C800D),\r
-      helpstring("VLC Log Message"),\r
-      dual,\r
-      oleautomation\r
-    ]\r
-    interface IVLCMessage: IDispatch\r
-    {\r
-        [id(DISPID_VALUE), propget]\r
-        HRESULT _Value([out, retval] VARIANT* message);\r
-\r
-        [propget, helpstring("Returns message severity.")]\r
-        HRESULT severity([out, retval] long* level);\r
-\r
-        [propget, helpstring("Returns message issuer type.")]\r
-        HRESULT type([out, retval] BSTR* type);\r
-\r
-        [propget, helpstring("Returns message issuer name.")]\r
-        HRESULT name([out, retval] BSTR* name);\r
-\r
-        [propget, helpstring("Returns message header.")]\r
-        HRESULT header([out, retval] BSTR* header);\r
-\r
-        [propget, helpstring("Returns message content.")]\r
-        HRESULT message([out, retval] BSTR* message);\r
-    };\r
-\r
-    [\r
-      odl,\r
-      uuid(15179CD8-CC12-4242-A58E-E412217FF343),\r
-      helpstring("VLC Log iterator"),\r
-      dual,\r
-      oleautomation\r
-    ]\r
-    interface IVLCMessageIterator : IDispatch\r
-    {\r
-        [propget, helpstring("Returns whether a message is available.")]\r
-        HRESULT hasNext([out, retval] VARIANT_BOOL* hasNext);\r
-\r
-        [helpstring("Returns next message.")]\r
-        HRESULT next([out, retval] IVLCMessage** msg);\r
-    };\r
-\r
-    [\r
-      odl,\r
-      uuid(6C5CE55D-2D6C-4AAD-8299-C62D2371F106),\r
-      helpstring("VLC Log Messages Collection."),\r
-      dual,\r
-      oleautomation\r
-    ]\r
-    interface IVLCMessages : IDispatch\r
-    {\r
-        [id(DISPID_NEWENUM), propget]\r
-        HRESULT _NewEnum([out, retval] IUnknown** _NewEnum);\r
-\r
-        [helpstring("Clear all messages from log.")]\r
-        HRESULT clear();\r
-\r
-        [propget, helpstring("Returns the number of messages.")]\r
-        HRESULT count([out, retval] long* count);\r
-\r
-        [helpstring("Returns an iterator for messages in log")]\r
-        HRESULT iterator([out, retval] IVLCMessageIterator** iter);\r
-    };\r
-\r
-    [\r
-      odl,\r
-      uuid(8E3BC3D9-62E9-48FB-8A6D-993F9ABC4A0A),\r
-      helpstring("VLC Log APIs"),\r
-      dual,\r
-      oleautomation\r
-    ]\r
-    interface IVLCLog : IDispatch\r
-    {\r
-        [propget, helpstring("Returns messages in log")]\r
-        HRESULT messages([out, retval] IVLCMessages** iter);\r
-\r
-        [propget, helpstring("Returns/Sets the log versbosity level.")]\r
-        HRESULT verbosity([out, retval] long* level);\r
-        [propput, helpstring("Returns/Sets the log versbosity level.")]\r
-        HRESULT verbosity([in] long level);\r
-    };\r
-\r
     [\r
       odl,\r
       uuid(FD37FE32-82BC-4A25-B056-315F4DBB194D),\r
@@ -399,6 +372,142 @@ library AXVLC
         HRESULT items([out, retval] IVLCPlaylistItems** obj);\r
     };\r
 \r
+    [\r
+      odl,\r
+      uuid(465E787A-0556-452F-9477-954E4A940003),\r
+      helpstring("VLC Subtitle APIs"),\r
+      dual,\r
+      oleautomation\r
+    ]\r
+    interface IVLCSubtitle : IDispatch\r
+    {\r
+        [propget, helpstring("Returns video subtitle used.")]\r
+        HRESULT track([out, retval] long* spu);\r
+        [propput, helpstring("Sets video subtitle to use.")]\r
+        HRESULT track([in] long spu);\r
+\r
+        [propget, helpstring("Returns the number of video subtitles available.")]\r
+        HRESULT count([out, retval] long* spuNumber);\r
+        [helpstring("Returns video subtitle name.")]\r
+        HRESULT description([in] long nameID, [out, retval] BSTR* name);\r
+    };\r
+\r
+    [\r
+      odl,\r
+      uuid(8D076AD6-9B6F-4150-A0FD-5D7E8C8CB02C),\r
+      helpstring("VLC Marquee Filter"),\r
+      dual,\r
+      oleautomation\r
+    ]\r
+    interface IVLCMarquee : IDispatch\r
+    {\r
+        [helpstring("enable Marquee Filter.")]\r
+        HRESULT enable();\r
+        [helpstring("disable Marquee Filter.")]\r
+        HRESULT disable();\r
+\r
+        [propget, helpstring("Retrieve marquee text.")]\r
+        HRESULT text([out, retval] BSTR* val);\r
+        [propput, helpstring("Change marquee text.")]\r
+        HRESULT text([in] BSTR val);\r
+\r
+        [propget, helpstring("Retrieve text color.")]\r
+        HRESULT color([out, retval] LONG* val);\r
+        [propput, helpstring("Change text color.")]\r
+        HRESULT color([in] LONG val);\r
+        [propget, helpstring("Retrieve text opacity.")]\r
+        HRESULT opacity([out, retval] LONG* val);\r
+        [propput, helpstring("Set text opacity (0=transparent, 255=opaque).")]\r
+        HRESULT opacity([in] LONG val);\r
+        [propget, helpstring("Retrieve text position.")]\r
+        HRESULT position([out, retval] BSTR* val);\r
+        [propput, helpstring("Text positioning relative to: center, left, right, top, bottom, top-left, top-right, bottom-left, bottom-right.")]\r
+        HRESULT position([in] BSTR val);\r
+        [propget, helpstring("Retrieve text refresh time.")]\r
+        HRESULT refresh([out, retval] LONG* val);\r
+        [propput, helpstring("Set text refresh time.")]\r
+        HRESULT refresh([in] LONG val);\r
+        [propget, helpstring("Retrieve text size.")]\r
+        HRESULT size([out, retval] LONG* val);\r
+        [propput, helpstring("Set text size.")]\r
+        HRESULT size([in] LONG val);\r
+        [propget, helpstring("Retrieve timeout.")]\r
+        HRESULT timeout([out, retval] LONG* val);\r
+        [propput, helpstring("Change timeout.")]\r
+        HRESULT timeout([in] LONG val);\r
+        [propget, helpstring("Retrieve text abcissa.")]\r
+        HRESULT x([out, retval] LONG* val);\r
+        [propput, helpstring("Change text abcissa.")]\r
+        HRESULT x([in] LONG val);\r
+        [propget, helpstring("Retrieve text ordinate.")]\r
+        HRESULT y([out, retval] LONG* val);\r
+        [propput, helpstring("Change text ordinate.")]\r
+        HRESULT y([in] LONG val);\r
+    };\r
+\r
+    [\r
+      odl,\r
+      uuid(8a4a20c2-93f3-44e8-8644-beb2e3487e84),\r
+      helpstring("VLC Logo Filter"),\r
+      dual,\r
+      oleautomation\r
+    ]\r
+    interface IVLCLogo : IDispatch\r
+    {\r
+        [helpstring("Enable the logo filter.")]\r
+        HRESULT enable();\r
+        [helpstring("Disable the logo filter.")]\r
+        HRESULT disable();\r
+\r
+        [helpstring("specify input file[[,delay],alpha].")]\r
+        HRESULT file([in] BSTR fname);\r
+\r
+        [propget, helpstring("")]\r
+        HRESULT delay([out, retval] long* val);\r
+        [propput, helpstring("Set delay-to-next-picture in miliseconds.")]\r
+        HRESULT delay([in] long val);\r
+\r
+        [propget, helpstring("")]\r
+        HRESULT repeat([out, retval] long* val);\r
+        [propput, helpstring("Repeat: -1 continuous (default), 0 no repeat, ....")]\r
+        HRESULT repeat([in] long val);\r
+\r
+        [propget, helpstring("Returns the `global' alpha value.")]\r
+        HRESULT opacity([out, retval] long* val);\r
+        [propput, helpstring("Alpha value: 0 opaque to 255 fully transparent")]\r
+        HRESULT opacity([in] long val);\r
+\r
+        [propget, helpstring("Retrieve picture position.")]\r
+        HRESULT position([out, retval] BSTR* val);\r
+        [propput, helpstring("Picture positioning relative to: center, left, right, top, bottom, top-left, top-right, bottom-left, bottom-right.")]\r
+        HRESULT position([in] BSTR val);\r
+\r
+        [propget, helpstring("Picture x offset.")]\r
+        HRESULT x([out, retval] long* val);\r
+        [propput, helpstring("Picture x offset.")]\r
+        HRESULT x([in] long val);\r
+        [propget, helpstring("Picture y offset.")]\r
+        HRESULT y([out, retval] long* val);\r
+        [propput, helpstring("Picture y offset.")]\r
+        HRESULT y([in] long val);\r
+\r
+    };\r
+    [\r
+      odl,\r
+      uuid(bc97469f-cb11-4037-8dce-5fc9f5f85307),\r
+      helpstring("VLC Deinterlace Filter"),\r
+      dual,\r
+      oleautomation\r
+    ]\r
+    interface IVLCDeinterlace : IDispatch\r
+    {\r
+        [helpstring("Enable deinterlace filter and set method.")]\r
+        HRESULT enable([in] BSTR mode);\r
+        [helpstring("Disable deinterlace filter.")]\r
+        HRESULT disable();\r
+\r
+    };\r
+\r
     [\r
       odl,\r
       uuid(0AAEDF0B-D333-4B27-A0C6-BBF31413A42E),\r
@@ -410,6 +519,7 @@ library AXVLC
     {\r
         [propget, helpstring("Returns/sets the fullscreen state.")]\r
         HRESULT fullscreen([out, retval] VARIANT_BOOL* fullscreen);\r
+\r
         [propput, helpstring("Returns/sets the fullscreen state.")]\r
         HRESULT fullscreen([in] VARIANT_BOOL fullscreen);\r
 \r
@@ -435,9 +545,9 @@ library AXVLC
         HRESULT crop([in] BSTR geometry);\r
 \r
         [propget, helpstring("Returns teletext page used.")]\r
-        HRESULT subtitle([out, retval] long* page);\r
+        HRESULT teletext([out, retval] long* page);\r
         [propput, helpstring("Sets teletext page to use.")]\r
-        HRESULT subtitle([in] long page);\r
+        HRESULT teletext([in] long page);\r
 \r
         [helpstring("toggle fullscreen/windowed state.")]\r
         HRESULT toggleFullscreen();\r
@@ -447,6 +557,15 @@ library AXVLC
 \r
         [helpstring("toggle teletext transparent state.")]\r
         HRESULT toggleTeletext();\r
+\r
+        [propget, helpstring("Returns the marquee object.")]\r
+        HRESULT marquee([out, retval] IVLCMarquee** obj);\r
+\r
+        [propget, helpstring("Returns the logo object.")]\r
+        HRESULT logo([out, retval] IVLCLogo** obj);\r
+\r
+        [propget, helpstring("Returns the logo object.")]\r
+        HRESULT deinterlace([out, retval] IVLCDeinterlace** obj);\r
     };\r
 \r
     [\r
@@ -501,18 +620,28 @@ library AXVLC
         [id(DISPID_BackColor), propput, helpstring("Returns/sets background color.")]\r
         HRESULT BackColor([in] OLE_COLOR backcolor);\r
 \r
+        /*\r
+         * caution: vlcobject.toolbar:bool does not yet exists in Firefox\r
+         * plugin. Official usage is through "toolbar" property for now,\r
+         * which is compatibile with Firefox.\r
+         */\r
+        [id(DISPID_Toolbar), propget, helpstring("Returns/sets visibility of the toolbar")]\r
+        HRESULT Toolbar([out, retval] VARIANT_BOOL* visible);\r
+        [id(DISPID_Toolbar), propput, helpstring("Returns/sets visibility of the toolbar")]\r
+        HRESULT Toolbar([in] VARIANT_BOOL visible);\r
+\r
         [propget, helpstring("Returns the audio object.")]\r
         HRESULT audio([out, retval] IVLCAudio** obj);\r
 \r
         [propget, helpstring("Returns the audio object.")]\r
         HRESULT input([out, retval] IVLCInput** obj);\r
 \r
-        [propget, helpstring("Returns the log object.")]\r
-        HRESULT log([out, retval] IVLCLog** obj);\r
-\r
         [propget, helpstring("Returns the playlist object.")]\r
         HRESULT playlist([out, retval] IVLCPlaylist** obj);\r
 \r
+        [propget, helpstring("Returns the audio object.")]\r
+        HRESULT subtitle([out, retval] IVLCSubtitle** obj);\r
+\r
         [propget, helpstring("Returns the audio object.")]\r
         HRESULT video([out, retval] IVLCVideo** obj);\r
     };\r
@@ -538,5 +667,6 @@ library AXVLC
     {\r
         [default] interface IVLCControl2;\r
         interface IVLCControl;\r
+        [default, source] dispinterface DVLCEvents;\r
     };\r
 };\r