MediaControlIDL
Revision as of 06:10, 29 March 2019 by DoesItReallyMatter (talk | contribs) (See also: MediaControlAPI)
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);
};
};