/* Module inspired by the MediaControl IDL */ module VLC { const float VERSION = 0.1; enum PositionOrigin { AbsolutePosition, RelativePosition, ModuloPosition }; enum PositionKey { ByteCount, SampleCount, 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 PlaylistSeq; typedef sequence ByteSeq; struct RGBPicture { short width; short height; long type; ByteSeq data; long long date; }; typedef sequence RGBPictureSeq; /* Cf stream_control.h */ enum PlayerStatus { PlayingStatus, PauseStatus, ForwardStatus, BackwardStatus, InitStatus, EndStatus, UndefinedStatus }; struct StreamInformation { 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) */ }; // MediaControl interface is similar to // ControlledStream interface in MSS. // It can be inherited by flow endpoints or // FlowConnection interfaces. interface MediaControl { 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); 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); oneway void exit (); // Exits the player (not in the original spec) void playlist_add_item (in string a_file) raises (PlaylistException); void playlist_clear () raises (PlaylistException); // Returns the list of files in playlist PlaylistSeq playlist_get_list () raises (PlaylistException); // Returns a snapshot of the currently displayed picture RGBPicture snapshot (in Position a_position) raises (InternalException); RGBPictureSeq all_snapshots () raises (InternalException); // Displays the message string, between "begin" and "end" positions void display_text (in string message, in Position begin, in Position end) raises (InternalException); StreamInformation get_stream_information () raises (InternalException); unsigned short sound_get_volume() raises (InternalException); void sound_set_volume(in unsigned short volume) raises (InternalException); }; };