Main Page | Modules | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages

MediaControl.idl

00001 /*
00002   Module inspired by the MediaControl IDL
00003  */
00004 module VLC {
00005 
00006   const float VERSION = 0.1;
00007 
00008   enum PositionOrigin {
00009     AbsolutePosition, RelativePosition, ModuloPosition
00010   };
00011   
00012   enum PositionKey {
00013     ByteCount, SampleCount, MediaTime
00014   };
00015   
00016   struct Position {
00017     PositionOrigin origin;
00018     PositionKey key;
00019     long long value;
00020   };
00021   
00022   exception PositionKeyNotSupported { string message; };
00023   exception PositionOriginNotSupported { string message; };
00024   exception InvalidPosition         { string message; };
00025   exception PlaylistException       { string message; };
00026   exception InternalException       { string message; };
00027 
00028   typedef sequence<string> PlaylistSeq; 
00029   typedef sequence<octet> ByteSeq;
00030   
00031   struct RGBPicture {
00032     short width;
00033     short height;
00034     long type;
00035     ByteSeq data;
00036     long long date;
00037   };
00038   
00039   typedef sequence<RGBPicture> RGBPictureSeq;
00040   
00041   /* Cf stream_control.h */
00042   enum PlayerStatus { PlayingStatus, PauseStatus, ForwardStatus, BackwardStatus, InitStatus, EndStatus, UndefinedStatus };
00043   
00044   struct StreamInformation {
00045     PlayerStatus streamstatus;
00046     string url;        /* The URL of the current media stream */
00047     long long position;     /* actual location in the stream (in ms) */
00048     long long length;         /* total length of the stream (in ms) */
00049   };
00050   
00051    // MediaControl interface is similar to
00052    // ControlledStream interface in MSS.
00053    // It can be inherited by flow endpoints or
00054    // FlowConnection interfaces.
00055   interface MediaControl
00056   {
00057     Position get_media_position(in PositionOrigin an_origin,
00058                                 in PositionKey a_key)
00059       raises (InternalException, PositionKeyNotSupported);
00060     
00061     void set_media_position(in Position a_position)
00062       raises (InternalException, PositionKeyNotSupported, InvalidPosition);
00063      
00064     void start(in Position a_position)
00065       raises (InternalException, InvalidPosition, PlaylistException);
00066     void pause(in Position a_position)
00067       raises (InternalException, InvalidPosition);
00068     void resume(in Position a_position)
00069       raises (InternalException, InvalidPosition);
00070     void stop(in Position a_position)
00071       raises (InternalException, InvalidPosition);
00072 
00073     oneway void exit (); // Exits the player (not in the original spec)
00074 
00075     void playlist_add_item (in string a_file)
00076       raises (PlaylistException);
00077     void playlist_clear ()
00078       raises (PlaylistException);
00079     // Returns the list of files in playlist
00080     PlaylistSeq playlist_get_list ()
00081       raises (PlaylistException);
00082 
00083     // Returns a snapshot of the currently displayed picture
00084     RGBPicture snapshot (in Position a_position)
00085       raises (InternalException);
00086 
00087     RGBPictureSeq all_snapshots ()
00088       raises (InternalException);
00089 
00090     // Displays the message string, between "begin" and "end" positions
00091     void display_text (in string message, in Position begin, in Position end)
00092       raises (InternalException);
00093 
00094     StreamInformation get_stream_information ()
00095       raises (InternalException);
00096     
00097     unsigned short sound_get_volume()
00098       raises (InternalException);
00099 
00100     void sound_set_volume(in unsigned short volume)
00101       raises (InternalException);
00102 
00103   };
00104 };

Generated on Tue Dec 20 10:14:30 2005 for vlc-0.8.4a by  doxygen 1.4.2