Difference between revisions of "MediaControlIDL"
Jump to navigation
Jump to search
(Replaced content with "The MediaControl IDL API has been removed since 2010. Use the Libvlc API instead.") |
|||
Line 1: | Line 1: | ||
− | The MediaControl IDL API | + | {{Historical|The MediaControl IDL API was removed in 2010. Use the modern [[Python bindings|LibVLC Python API]] instead.}} |
+ | {{example code|for=Python bindings}} | ||
+ | <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]] |
Revision as of 06:42, 14 August 2013
![]() |
This page is obsolete and kept only for historical interest. It may document features that are obsolete, superseded, or irrelevant. Do not rely on the information here being up-to-date. Additional information: The MediaControl IDL API was removed in 2010. Use the modern LibVLC Python API instead. |
This page contains example code for Python bindings. |
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); }; };