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.") |
m (See also: MediaControlAPI) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | The MediaControl IDL API | + | {{See also|MediaControlAPI}} |
+ | {{Historical|The MediaControl IDL API was removed in 2010. Use the modern [[Python bindings|LibVLC Python API]] instead.}} | ||
+ | :''This page formerly contained example code for Python bindings.'' | ||
+ | <syntaxhighlight lang="c"> | ||
+ | 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); | ||
+ | }; | ||
+ | }; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | [[Category:Bindings]] | ||
+ | [[Category:Example code]] |
Latest revision as of 06:10, 29 March 2019
See also: MediaControlAPI
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 formerly contained 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);
};
};