|
|
| Line 1: |
Line 1: |
| {{example code|for=Python bindings}}
| | The MediaControl IDL API has been removed since 2010. Use the [[Libvlc]] API instead. |
| <pre>
| |
| module VLC {
| |
| | |
| const float VERSION = 1.0;
| |
| | |
| enum PositionOrigin {
| |
| AbsolutePosition,
| |
| RelativePosition,
| |
| // Like relative, but wraps at the end of a file for instance:
| |
| ModuloPosition
| |
| };
| |
| | |
| enum PositionKey {
| |
| // For raw access
| |
| ByteCount,
| |
| // Frame number
| |
| SampleCount,
| |
| // In milliseconds
| |
| MediaTime
| |
| };
| |
| | |
| struct Position {
| |
| PositionOrigin origin;
| |
| PositionKey key;
| |
| long long value;
| |
| };
| |
| | |
| exception PositionKeyNotSupported { string message; };
| |
| exception PositionOriginNotSupported { string message; };
| |
| exception InvalidPosition { string message; };
| |
| exception PlaylistException { string message; };
| |
| exception InternalException { string message; };
| |
| | |
| typedef sequence<string> PlaylistSeq;
| |
| typedef sequence<octet> ByteSeq;
| |
| | |
| struct RGBPicture {
| |
| short width;
| |
| short height;
| |
| long type;
| |
| ByteSeq data;
| |
| // Timestamp (absolute position in the movie) in ms
| |
| long long date;
| |
| };
| |
| | |
| struct StreamInformation {
| |
| short width;
| |
| short height;
| |
| float aspect_ratio;
| |
| long bitrate;
| |
| string codec;
| |
| string author;
| |
| };
| |
| | |
| typedef sequence<RGBPicture> RGBPictureSeq;
| |
| | |
| enum PlayerStatus { PlayingStatus, PauseStatus, ForwardStatus, BackwardStatus, InitStatus, EndStatus, UndefinedStatus };
| |
| | |
| struct StatusInformation {
| |
| PlayerStatus streamstatus;
| |
| string url; /* The URL of the current media stream */
| |
| long long position; /* actual location in the stream (in ms) */
| |
| long long length; /* total length of the stream (in ms) */
| |
| };
| |
| | |
| interface Playlist
| |
| {
| |
| // Return a playlist item id
| |
| int add(in string a_file)
| |
| raises (PlaylistException);
| |
| | |
| void next(in string a_file)
| |
| raises (PlaylistException);
| |
| | |
| void prev(in string a_file)
| |
| raises (PlaylistException);
| |
| | |
| // Set the new current item
| |
| void set(int item_id)
| |
| raises (PlaylistException);
| |
| | |
| void remove(int item_id)
| |
| raises (PlaylistException);
| |
| | |
| // Clear the whole playlist
| |
| void clear ()
| |
| raises (PlaylistException);
| |
| | |
| // Return the list of files in playlist
| |
| PlaylistSeq get_list ()
| |
| raises (PlaylistException);
| |
| }
| |
| | |
| // MediaControl interface is similar to
| |
| // ControlledStream interface in MSS.
| |
| // It can be inherited by flow endpoints or
| |
| // FlowConnection interfaces.
| |
| interface MediaControl
| |
| {
| |
| // *** Initialization
| |
| // Exit the player
| |
| oneway void exit ();
| |
| | |
| // Return the IDL API version
| |
| string get_api_version();
| |
| | |
| // Return the player version (player name version)
| |
| string get_player_version();
| |
| | |
| // *** Playback control
| |
| // The a_position parameters are facultative.
| |
| void start(in Position a_position)
| |
| raises (InternalException, InvalidPosition, PlaylistException);
| |
| | |
| void pause(in Position a_position)
| |
| raises (InternalException, InvalidPosition);
| |
| | |
| void resume(in Position a_position)
| |
| raises (InternalException, InvalidPosition);
| |
| | |
| void stop(in Position a_position)
| |
| raises (InternalException, InvalidPosition);
| |
| | |
| Position get_media_position(in PositionOrigin an_origin,
| |
| in PositionKey a_key)
| |
| raises (InternalException, PositionKeyNotSupported);
| |
| | |
| void set_media_position(in Position a_position)
| |
| raises (InternalException, PositionKeyNotSupported, InvalidPosition);
| |
| | |
| // Rate control. The rate is a signed value, corresponding to
| |
| // the percentage of the speed ( 100 = normal, -100 = reverse...)
| |
| | |
| int get_rate()
| |
| raises (InternalException);
| |
| | |
| void set_rate(int rate)
| |
| raises (InternalException);
| |
| | |
| // *** Media information
| |
| | |
| StatusInformation get_status_information ()
| |
| raises (InternalException);
| |
| | |
| // Return information about the current stream
| |
| StreamInformation get_stream_information ()
| |
| raises (InternalException);
| |
| | |
| // *** Playlist handling
| |
| Playlist playlist()
| |
| raises (InternalException);
| |
| | |
| // *** Video
| |
| | |
| // Return a snapshot of the currently displayed picture
| |
| RGBPicture snapshot (in Position a_position)
| |
| raises (InternalException);
| |
| | |
| // Return the whole snapshot cache contents
| |
| RGBPictureSeq all_snapshots ()
| |
| raises (InternalException);
| |
| | |
| // Display the message string as caption,
| |
| // between "begin" and "end" positions
| |
| void render_text (in string message, in Position begin, in Position end)
| |
| raises (InternalException);
| |
| | |
| // Set the visual ID (XID in X-Window, HWIN on Win32, ??? on MacOS
| |
| // X) for the player window
| |
| void set_visual(long xid)
| |
| raises (InternalException);
| |
| | |
| boolean get_fullscreen()
| |
| raises (InternalException);
| |
| | |
| void set_fullscreen(boolean full)
| |
| raises (InternalException);
| |
| | |
| // *** Audio
| |
| | |
| // Volume is normalized in [0..100]
| |
| unsigned short sound_get_volume()
| |
| raises (InternalException);
| |
| | |
| void sound_set_volume(in unsigned short volume)
| |
| raises (InternalException);
| |
| | |
| void sound_mute()
| |
| raises (InternalException);
| |
| };
| |
| };
| |
| </pre>
| |
| [[Category:Example code]] | |
The MediaControl IDL API has been removed since 2010. Use the Libvlc API instead.