Fixed code for subtitle and audio selection, still probs but looking.
[vlc.git] / plugins / beos / intf_vlc_wrapper.h
1 /*****************************************************************************
2  * intf_vlc_wrapper.h: BeOS plugin for vlc (derived from MacOS X port )
3  *****************************************************************************
4  * Copyright (C) 2001 VideoLAN
5  * $Id: intf_vlc_wrapper.h,v 1.3 2002/07/23 13:16:51 tcastley Exp $
6  *
7  * Authors: Florian G. Pflug <fgp@phlo.org>
8  *          Jon Lech Johansen <jon-vl@nanocrew.net>
9  *          Tony Casltey <tony@castley.net>
10  *
11  * This program is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation; either version 2 of the License, or
14  * (at your option) any later version.
15  * 
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software
23  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
24  *****************************************************************************/
25 class InterfaceWindow;
26
27 /*****************************************************************************
28  * intf_sys_t: description and status of FB interface
29  *****************************************************************************/
30 struct intf_sys_t
31 {
32     InterfaceWindow *p_window;
33     char              i_key;
34     
35     /* The input thread */
36     input_thread_t * p_input;
37
38     /* The messages window */
39 //    msg_subscription_t * p_sub;
40
41     /* DVD mode */
42     vlc_bool_t        b_disabled_menus;
43     vlc_bool_t        b_loop;
44     vlc_bool_t        b_mute;
45     int               i_part;
46     int               i_saved_volume;
47     int               i_channel;
48     
49 };
50
51 /* Intf_VLCWrapper is a singleton class
52     (only one instance at any time) */
53 class Intf_VLCWrapper
54 {
55 public:
56     static Intf_VLCWrapper *getVLCWrapper(intf_thread_t *p_if);
57     ~Intf_VLCWrapper();
58
59 //    bool manage();
60     void quit();
61     int inputGetStatus();
62     /* playlist control */
63     bool playlistPlay();
64     void playlistPause();
65     void playlistStop();
66     void playlistNext();
67     void playlistPrev();
68     void playlistSkip(int i);
69     void playlistGoto(int i);
70 /*  Playback Modes
71                 PLAYLIST_REPEAT_CURRENT
72                 PLAYLIST_FORWARD       
73                 PLAYLIST_BACKWARD      
74                 PLAYLIST_FORWARD_LOOP  
75                 PLAYLIST_BACKWARD_LOOP 
76                 PLAYLIST_RANDOM        
77                 PLAYLIST_REVERSE_RANDOM
78 */
79
80     /*  Stream Control */
81     void playSlower();
82     void playFaster();
83     
84     /* input control */
85     int getStatus();    
86     void setStatus(int status);
87     void inputSeek();
88     void toggleProgram(int i_program);
89     void toggleTitle(int i_title);
90     void toggleChapter(int i_chapter);
91     void toggleLanguage(int i_language);
92     void toggleSubtitle(int i_subtitle);
93     void channelNext();
94     void channelPrev();
95     void eject();
96
97     /* playback info */
98     BString* getTimeAsString();
99     float  getTimeAsFloat();
100     void   setTimeAsFloat(float i_offset);
101     BList* playlistAsArray();
102
103     /* open file/disc/network */
104     void openFiles(BList *o_files);
105     void openDisc(BString o_type, BString o_device, int i_title, int i_chapter);
106     void openNet(BString o_addr, int i_port);
107     void openNetChannel(BString o_addr, int i_port);
108     void openNetHTTP(BString o_addr);
109
110     /* audio stuff */
111     void toggleMute( );
112     /* menus management */
113     void setupMenus();
114     
115 private:
116     Intf_VLCWrapper( intf_thread_t *p_if );
117         es_descriptor_t *  p_audio_es;
118     intf_thread_t *p_intf;
119
120 };
121