annotate gui/interface.h @ 34512:01c1e065120e

Support 32-bit sunrast playback via FFmpeg.
author cehoyos
date Tue, 24 Jan 2012 18:53:23 +0000
parents 5a45efc630b8
children 11408d97de7a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26458
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
1 /*
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
2 * This file is part of MPlayer.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
3 *
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
4 * MPlayer is free software; you can redistribute it and/or modify
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
5 * it under the terms of the GNU General Public License as published by
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
7 * (at your option) any later version.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
8 *
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
9 * MPlayer is distributed in the hope that it will be useful,
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
12 * GNU General Public License for more details.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
13 *
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
14 * You should have received a copy of the GNU General Public License along
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
17 */
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
18
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25607
diff changeset
19 #ifndef MPLAYER_GUI_INTERFACE_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25607
diff changeset
20 #define MPLAYER_GUI_INTERFACE_H
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
21
26382
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26029
diff changeset
22 #include "config.h"
33774
474ffcdcc6e7 Change guiInterface_t void pointer member declarations.
ib
parents: 33773
diff changeset
23 #include "libaf/af.h"
474ffcdcc6e7 Change guiInterface_t void pointer member declarations.
ib
parents: 33773
diff changeset
24 #include "libmpdemux/stheader.h"
30533
e3e329bc727a Avoid forward declarations for import_initial_playtree_into_gui() and
diego
parents: 29263
diff changeset
25 #include "m_config.h"
33774
474ffcdcc6e7 Change guiInterface_t void pointer member declarations.
ib
parents: 33773
diff changeset
26 #include "mp_core.h"
30533
e3e329bc727a Avoid forward declarations for import_initial_playtree_into_gui() and
diego
parents: 29263
diff changeset
27 #include "playtree.h"
29149
8c3fbc5bf67d Remove pointless #ifdef around internal #include.
diego
parents: 28051
diff changeset
28 #include "stream/stream.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
29
33021
63beda39479c Cosmetic: Move supportive stuff at top of file.
ib
parents: 32984
diff changeset
30 // These are in support of the non-GUI files that interact with
63beda39479c Cosmetic: Move supportive stuff at top of file.
ib
parents: 32984
diff changeset
31 // the GUI and that only need to include interface.h for this.
63beda39479c Cosmetic: Move supportive stuff at top of file.
ib
parents: 32984
diff changeset
32 // ------------------------------------------------------------
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
33 #include "cfg.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
34
33021
63beda39479c Cosmetic: Move supportive stuff at top of file.
ib
parents: 32984
diff changeset
35 extern int use_gui; // this is defined in mplayer.c
63beda39479c Cosmetic: Move supportive stuff at top of file.
ib
parents: 32984
diff changeset
36 // ------------------------------------------------------------
63beda39479c Cosmetic: Move supportive stuff at top of file.
ib
parents: 32984
diff changeset
37
33466
45d8bfbd27bc Define "gmplayer" as symbolic constant.
ib
parents: 33309
diff changeset
38 #define GMPlayer "gmplayer"
45d8bfbd27bc Define "gmplayer" as symbolic constant.
ib
parents: 33309
diff changeset
39
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
40 /// gui() instructions
33767
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
41 enum {
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
42 GUI_END_FILE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
43 GUI_HANDLE_EVENTS,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
44 GUI_HANDLE_X_EVENT,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
45 GUI_PREPARE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
46 GUI_REDRAW,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
47 GUI_RUN_COMMAND,
34339
f05c75392897 Enable gui slave commands.
ib
parents: 34076
diff changeset
48 GUI_RUN_MESSAGE,
33767
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
49 GUI_SETUP_VIDEO_WINDOW,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
50 GUI_SET_AFILTER,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
51 GUI_SET_AUDIO,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
52 GUI_SET_CONTEXT,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
53 GUI_SET_MIXER,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
54 GUI_SET_STATE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
55 GUI_SET_STREAM,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
56 GUI_SET_VIDEO
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
57 };
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
58
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
59 //@{
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
60 /// Playing state
33614
79743a5cf4f0 Rename the symbolic playback state constants.
ib
parents: 33611
diff changeset
61 #define GUI_STOP 0
79743a5cf4f0 Rename the symbolic playback state constants.
ib
parents: 33611
diff changeset
62 #define GUI_PLAY 1
79743a5cf4f0 Rename the symbolic playback state constants.
ib
parents: 33611
diff changeset
63 #define GUI_PAUSE 2
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
64 //@}
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
65
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
66 //@{
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
67 /// NewPlay reason
33890
c51e44dd38e2 Remove needless guiInfo member DiskChanged.
ib
parents: 33876
diff changeset
68 #define GUI_FILE_SAME 1
c51e44dd38e2 Remove needless guiInfo member DiskChanged.
ib
parents: 33876
diff changeset
69 #define GUI_FILE_NEW 2
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
70 //@}
33890
c51e44dd38e2 Remove needless guiInfo member DiskChanged.
ib
parents: 33876
diff changeset
71
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
72 /// mplayer() instructions
33767
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
73 enum {
33768
cee9987bc81d Remove guiExit().
ib
parents: 33767
diff changeset
74 MPLAYER_EXIT_GUI,
33767
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
75 MPLAYER_SET_AUTO_QUALITY,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
76 MPLAYER_SET_BRIGHTNESS,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
77 MPLAYER_SET_CONTRAST,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
78 MPLAYER_SET_EQUALIZER,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
79 MPLAYER_SET_EXTRA_STEREO,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
80 MPLAYER_SET_FONT_AUTOSCALE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
81 MPLAYER_SET_FONT_BLUR,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
82 MPLAYER_SET_FONT_ENCODING,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
83 MPLAYER_SET_FONT_FACTOR,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
84 MPLAYER_SET_FONT_OSDSCALE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
85 MPLAYER_SET_FONT_OUTLINE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
86 MPLAYER_SET_FONT_TEXTSCALE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
87 MPLAYER_SET_HUE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
88 MPLAYER_SET_PANSCAN,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
89 MPLAYER_SET_SATURATION,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
90 MPLAYER_SET_SUB_ENCODING
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
91 };
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
92
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
93 typedef struct {
33774
474ffcdcc6e7 Change guiInterface_t void pointer member declarations.
ib
parents: 33773
diff changeset
94 MPContext *mpcontext;
474ffcdcc6e7 Change guiInterface_t void pointer member declarations.
ib
parents: 33773
diff changeset
95 sh_video_t *sh_video;
474ffcdcc6e7 Change guiInterface_t void pointer member declarations.
ib
parents: 33773
diff changeset
96 af_stream_t *afilter;
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
97
33944
78ba6c8c46a5 Cosmetic: Move guiInfo member VideoWindow.
ib
parents: 33902
diff changeset
98 int VideoWindow;
33901
d4f80f889106 Cosmetic: Rename guiInfo members.
ib
parents: 33900
diff changeset
99 int VideoWidth;
d4f80f889106 Cosmetic: Rename guiInfo members.
ib
parents: 33900
diff changeset
100 int VideoHeight;
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
101
34076
6a0bda5e63ac Remove needless code.
ib
parents: 34052
diff changeset
102 int StreamType;
33900
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
103 int AudioChannels;
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
104
33902
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
105 int AudioStreams;
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
106 stream_language_t AudioStream[32];
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
107
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
108 int Subtitles;
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
109 stream_language_t Subtitle[32];
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
110
33900
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
111 char *Filename; // public, read access by MPlayer
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
112 char *AudioFilename;
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
113 char *SubtitleFilename;
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
114
33876
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33791
diff changeset
115 int Tracks;
33900
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
116 int Track; // public, read access by MPlayer
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
117 int Chapters;
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
118 int Chapter; // public, write access by MPlayer
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
119 int Angles;
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
120 int Angle;
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
121
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
122 int Playing; // public, read access by MPlayer
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
123
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
124 int RunningTime; // public, write access by MPlayer
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
125 int ElapsedTime; // public, write access by MPlayer
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
126 float Position; // public, write access by MPlayer
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
127
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
128 float Volume;
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
129 float Balance;
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
130
33900
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
131 int NewPlay; // public, read access by MPlayer
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
132 } guiInterface_t;
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
133
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33474
diff changeset
134 extern guiInterface_t guiInfo;
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
135
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
136 /// @name MPlayer -> GUI
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
137 //@{
33791
8b0c78a85a8c Cosmetic: Change parameter names of gui() and mplayer().
ib
parents: 33790
diff changeset
138 int gui(int what, void *data);
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
139 void guiDone(void);
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
140 void guiInit(void);
33764
498e3d5f223b Cosmetic: Order prototypes in interface.h.
ib
parents: 33763
diff changeset
141 int guiPlaylistAdd(play_tree_t *my_playtree, m_config_t *config);
33752
6cea6d268f97 Cosmetic: Rename the GUI playlist functions.
ib
parents: 33750
diff changeset
142 int guiPlaylistInitialize(play_tree_t *my_playtree, m_config_t *config, int enqueue);
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
143 //@}
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
144
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
145 /// @name GUI -> MPlayer
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
146 //@{
33791
8b0c78a85a8c Cosmetic: Change parameter names of gui() and mplayer().
ib
parents: 33790
diff changeset
147 void mplayer(int what, float value, void *data);
33763
03824cf8728d Cosmetic: Rename two functions that do MPlayer calls.
ib
parents: 33752
diff changeset
148 void mplayerLoadFont(void);
33790
ab6d06f5b98b Add const to some string pointer arguments that will not be modified.
ib
parents: 33776
diff changeset
149 void mplayerLoadSubtitle(const char *name);
33764
498e3d5f223b Cosmetic: Order prototypes in interface.h.
ib
parents: 33763
diff changeset
150 void gmp_msg(int mod, int lev, const char *format, ...);
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
151 //@}
33745
2d1babde7b29 Cosmetic: Separate interface functions.
ib
parents: 33744
diff changeset
152
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25607
diff changeset
153 #endif /* MPLAYER_GUI_INTERFACE_H */