* ALL: changes to the playlist_Add() and VLC_AddTarget() proto to include a list...
[vlc.git] / modules / control / corba / mediacontrol.idl
1 /* Cf
2    http://www.cs.rpi.edu/~musser/dsc/idl/idl-overview.html
3    pour une intro à la syntaxe */
4
5 module VLC {
6    enum PositionOrigin {
7         AbsolutePosition, RelativePosition, ModuloPosition
8    };
9    
10    enum PositionKey {
11         ByteCount, SampleCount, MediaTime
12    };
13    
14    struct Position {
15         PositionOrigin origin;
16         PositionKey key;
17         long value;
18    };
19    
20    exception PositionKeyNotSupported { PositionKey key;};
21    exception InvalidPosition { PositionKey key;};
22
23   typedef sequence<string> PlaylistSeq; 
24
25    // MediaControl interface is similar to
26    // ControlledStream interface in MSS.
27    // It can be inherited by flow endpoints or
28    // FlowConnection interfaces.
29   interface MediaControl
30   {
31     
32     exception PositionKeyNotSupported { PositionKey key;};
33     
34     Position get_media_position(
35                                 in PositionOrigin an_origin,
36                                 in PositionKey a_key)
37       raises (PositionKeyNotSupported);
38     
39     void set_media_position(in Position a_position)
40       raises (PositionKeyNotSupported, InvalidPosition);
41      
42     void start(in Position a_position)
43       raises(InvalidPosition);
44     void pause(in Position a_position)
45       raises(InvalidPosition);
46     void resume(in Position a_position)
47       raises(InvalidPosition);
48     void stop(in Position a_position)
49       raises(InvalidPosition);
50     void exit (); // Exits the player (not in the original spec)
51     void add_to_playlist (in string a_file);
52     // Returns the list of files in playlist
53     PlaylistSeq get_playlist ();
54   };
55 };