* Copyright (C) 2006 the VideoLAN team\r
*\r
* Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>\r
+ * Jean-Paul Saman <jpsaman _at_ m2x _dot_ nl>\r
*\r
* This program is free software; you can redistribute it and/or modify\r
* it under the terms of the GNU General Public License as published by\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
\r
-import "oaidl.idl";\r
+import "ocidl.idl";\r
\r
[\r
uuid(DF2BBE39-40A8-433b-A279-073F48DA94B6),\r
interface IVLCControl;\r
interface IVLCAudio;\r
interface IVLCInput;\r
+ interface IVLCLog;\r
+ interface IVLCMessage;\r
+ interface IVLCMessageIterator;\r
+ interface IVLCMessages;\r
interface IVLCPlaylist;\r
interface IVLCVideo;\r
interface IVLCControl2;\r
const int VLCPlayListEnd = -666;\r
\r
// DISPID definitions\r
+ const int DISPID_BackColor = -501;\r
+\r
const int DISPID_Visible = 100;\r
const int DISPID_Playing = 101;\r
const int DISPID_Position = 102;\r
uuid(C2FA41D0-B113-476e-AC8C-9BD14999C1C1),\r
helpstring("VLC Control (deprecated)"),\r
dual,\r
- hidden,\r
oleautomation\r
]\r
interface IVLCControl : IDispatch\r
[\r
uuid(DF48072F-5EF8-434e-9B40-E2F3AE759B5F),\r
helpstring("Event interface for VLC control"),\r
- hidden\r
]\r
dispinterface DVLCEvents\r
{\r
HRESULT mute([in] VARIANT_BOOL muted);\r
\r
[propget, helpstring("Returns/sets audio volume as a percent value.")]\r
- HRESULT volume([out, retval] int* volume);\r
+ HRESULT volume([out, retval] long* volume);\r
[propput, helpstring("Returns/sets audio volume as a percent value.")]\r
- HRESULT volume([in] int volume);\r
+ HRESULT volume([in] long volume);\r
\r
[helpstring("Mute/unmute audio playback.")]\r
HRESULT toggleMute();\r
+\r
+ [propget, helpstring("Returns/sets audio track used/to use.")]\r
+ HRESULT track([out, retval] long* track);\r
+ [propput, helpstring("Returns/sets audio track used/to use.")]\r
+ HRESULT track([in] long track);\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
+ HRESULT channel([in] long channel);\r
};\r
\r
[\r
interface IVLCInput : IDispatch\r
{\r
[propget, helpstring("Returns the clip length, in milliseconds.")]\r
- HRESULT length([out, retval] __int64* length);\r
+ HRESULT length([out, retval] double* length);\r
\r
[propget, helpstring("Returns/sets playback position in current clip. Position is ranging from 0.0 to 1.0.")]\r
- HRESULT position([out, retval] float* position);\r
+ HRESULT position([out, retval] double* position);\r
[propput, helpstring("Returns/sets playback position in the current clip. Position ranging from 0.0 to 1.0.")]\r
- HRESULT position([in] float position);\r
+ HRESULT position([in] double position);\r
\r
[propget, helpstring("Returns/sets playback time in current clip, in milliseconds.")]\r
- HRESULT time([out, retval] __int64* time);\r
+ HRESULT time([out, retval] double* time);\r
[propput, helpstring("Returns/sets playback time in the current clip, in milliseconds.")]\r
- HRESULT time([in] __int64 time);\r
+ HRESULT time([in] double time);\r
\r
[propget, helpstring("Returns current playback state.")]\r
- HRESULT state([out, retval] int* state);\r
+ HRESULT state([out, retval] long* state);\r
\r
[propget, helpstring("Returns/sets current playback rate, normal rate is 1.0 ")]\r
- HRESULT rate([out, retval] float* rate);\r
+ HRESULT rate([out, retval] double* rate);\r
[propput, helpstring("Returns/sets current playback rate, normal rate is 1.0.")]\r
- HRESULT rate([in] float rate);\r
+ HRESULT rate([in] double rate);\r
\r
[propget, helpstring("Returns current playback frames per seconds if available.")]\r
- HRESULT fps([out, retval] float* fps);\r
+ HRESULT fps([out, retval] double* fps);\r
\r
[propget, helpstring("Returns whether current playback displays video.")]\r
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
+ helpstring("VLC Playlist Items collection"),\r
+ dual,\r
+ oleautomation\r
+ ]\r
+ interface IVLCPlaylistItems : IDispatch\r
+ {\r
+ [propget, helpstring("Returns number of items in playlist.")]\r
+ HRESULT count([out, retval] long* count);\r
+\r
+ [helpstring("Remove all items from playlist.")]\r
+ HRESULT clear();\r
+\r
+ [helpstring("remove item from playlist.")]\r
+ HRESULT remove([in] long itemId);\r
+ };\r
+\r
[\r
odl,\r
uuid(54613049-40BF-4035-9E70-0A9312C0188D),\r
]\r
interface IVLCPlaylist : IDispatch\r
{\r
- [propget, helpstring("Returns number of items in playlist.")]\r
- HRESULT itemCount([out, retval] int* count);\r
+ [hidden, propget, helpstring("Returns number of items in playlist. (deprecated)")]\r
+ HRESULT itemCount([out, retval] long* count);\r
\r
[propget, helpstring("Returns whether playback displays video.")]\r
HRESULT isPlaying([out, retval] VARIANT_BOOL* playing);\r
\r
[helpstring("Add a playlist item.")]\r
- HRESULT add([in] BSTR uri, [in, optional] VARIANT name, [in, optional] VARIANT options, [out, retval] int* item);\r
+ HRESULT add([in] BSTR uri, [in, optional] VARIANT name, [in, optional] VARIANT options, [out, retval] long* itemId);\r
\r
[helpstring("Play/Resume the playlist.")]\r
HRESULT play();\r
\r
[helpstring("Play item in playlist.")]\r
- HRESULT playItem([in] int item);\r
+ HRESULT playItem([in] long itemId);\r
\r
[helpstring("Play/Pause current clip.")]\r
HRESULT togglePause();\r
[helpstring("Advance to previous item in playlist.")]\r
HRESULT prev();\r
\r
- [helpstring("Remove all items from playlist.")]\r
+ [hidden, helpstring("Remove all items from playlist. (deprecated)")]\r
HRESULT clear();\r
\r
- [helpstring("remove item from playlist.")]\r
- HRESULT removeItem([in] int item);\r
+ [hidden, helpstring("Remove item from playlist. (deprecated)")]\r
+ HRESULT removeItem([in] long item);\r
+\r
+ [propget, helpstring("Returns the playlist items collection object.")]\r
+ HRESULT items([out, retval] IVLCPlaylistItems** obj);\r
};\r
\r
[\r
HRESULT fullscreen([in] VARIANT_BOOL fullscreen);\r
\r
[propget, helpstring("Returns video original width.")]\r
- HRESULT width([out, retval] int* width);\r
+ HRESULT width([out, retval] long* width);\r
\r
[propget, helpstring("Returns video original height.")]\r
- HRESULT height([out, retval] int* height);\r
+ HRESULT height([out, retval] long* height);\r
+\r
+ [propget, helpstring("Returns video aspect ratio.")]\r
+ HRESULT aspectRatio([out, retval] BSTR* aspect);\r
+ [propput, helpstring("Sets video aspect ratio.")]\r
+ HRESULT aspectRatio([in] BSTR aspect);\r
+\r
+ [propget, helpstring("Returns video subtitle used.")]\r
+ HRESULT subtitle([out, retval] long* spu);\r
+ [propput, helpstring("Sets video subtitle to use.")]\r
+ HRESULT subtitle([in] long spu);\r
+\r
+ [propget, helpstring("Returns crop filter geometry.")]\r
+ HRESULT crop([out, retval] BSTR* geometry);\r
+ [propput, helpstring("Sets crop filter geometry.")]\r
+ HRESULT crop([in] BSTR geometry);\r
+\r
+ [propget, helpstring("Returns teletext page used.")]\r
+ HRESULT subtitle([out, retval] long* page);\r
+ [propput, helpstring("Sets teletext page to use.")]\r
+ HRESULT subtitle([in] long page);\r
+\r
+ [helpstring("toggle fullscreen/windowed state.")]\r
+ HRESULT toggleFullscreen();\r
+\r
+ [helpstring("take video snapshot and save it into picture object.")]\r
+ HRESULT takeSnapshot([out, retval] IPictureDisp** picture);\r
};\r
\r
[\r
odl,\r
- uuid(15179CD8-CC12-4242-A58E-E412217FF343),\r
- helpstring("VLC Configuration options"),\r
+ uuid(2D719729-5333-406C-BF12-8DE787FD65E3),\r
+ helpstring("VLC Control"),\r
dual,\r
oleautomation\r
]\r
- interface IVLCConfiguration : IDispatch\r
+ interface IVLCControl2 : IDispatch\r
{\r
[id(DISPID_AutoLoop), propget, helpstring("Returns/sets a value that determines whether the playlist is looped")]\r
HRESULT AutoLoop([out, retval] VARIANT_BOOL* autoloop);\r
HRESULT BaseURL([in] BSTR url);\r
\r
[id(DISPID_StartTime), propget, helpstring("Returns/sets playback start time of URL.")]\r
- HRESULT StartTime([out, retval] int* seconds);\r
+ HRESULT StartTime([out, retval] long* seconds);\r
[id(DISPID_StartTime), propput, helpstring("Returns/sets playback start time of URL.")]\r
- HRESULT StartTime([in] int seconds);\r
+ HRESULT StartTime([in] long seconds);\r
\r
[id(DISPID_MRL), propget, helpstring("Returns/sets the default MRL in playlist")]\r
HRESULT MRL([out, retval] BSTR* mrl);\r
HRESULT Visible([in] VARIANT_BOOL visible);\r
\r
[id(DISPID_Volume), propget, helpstring("Returns/sets default audio volume.")]\r
- HRESULT Volume([out, retval] int* volume);\r
+ HRESULT Volume([out, retval] long* volume);\r
[id(DISPID_Volume), propput, helpstring("Returns/sets default audio volume.")]\r
- HRESULT Volume([in] int volume);\r
- };\r
+ HRESULT Volume([in] long volume);\r
+\r
+ [id(DISPID_BackColor), propget, helpstring("Returns/sets background color.")]\r
+ HRESULT BackColor([out, retval] OLE_COLOR* backcolor);\r
+ [id(DISPID_BackColor), propput, helpstring("Returns/sets background color.")]\r
+ HRESULT BackColor([in] OLE_COLOR backcolor);\r
\r
- [\r
- odl,\r
- uuid(2D719729-5333-406C-BF12-8DE787FD65E3),\r
- helpstring("VLC Control"),\r
- dual,\r
- oleautomation\r
- ]\r
- interface IVLCControl2 : IVLCConfiguration\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
{\r
[default] interface IVLCControl2;\r
interface IVLCControl;\r
- [default, source] dispinterface DVLCEvents;\r
};\r
};\r