annotate gui/interface.h @ 36451:6674ab0d11be

Allow the compilation of more than one hwaccel format. The configure variable that contains the hwaccel defines from FFmpeg is overwritten at successful detection. This way FFmpeg would contain only the hwaccel of the last detected system.
author iive
date Tue, 17 Dec 2013 15:44:45 +0000
parents a73127c786e8
children ed153683310d
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
30533
e3e329bc727a Avoid forward declarations for import_initial_playtree_into_gui() and
diego
parents: 29263
diff changeset
22 #include "m_config.h"
33774
474ffcdcc6e7 Change guiInterface_t void pointer member declarations.
ib
parents: 33773
diff changeset
23 #include "mp_core.h"
30533
e3e329bc727a Avoid forward declarations for import_initial_playtree_into_gui() and
diego
parents: 29263
diff changeset
24 #include "playtree.h"
36032
c667e34fb941 Cosmetic: Rearrange #includes.
ib
parents: 35525
diff changeset
25 #include "libaf/af.h"
c667e34fb941 Cosmetic: Rearrange #includes.
ib
parents: 35525
diff changeset
26 #include "libmpdemux/stheader.h"
29149
8c3fbc5bf67d Remove pointless #ifdef around internal #include.
diego
parents: 28051
diff changeset
27 #include "stream/stream.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
28
33021
63beda39479c Cosmetic: Move supportive stuff at top of file.
ib
parents: 32984
diff changeset
29 // 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
30 // 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
31 // ------------------------------------------------------------
35525
e27855a45128 Rebuild GUI directory structure.
ib
parents: 35512
diff changeset
32 #include "app/cfg.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
33
33021
63beda39479c Cosmetic: Move supportive stuff at top of file.
ib
parents: 32984
diff changeset
34 extern int use_gui; // this is defined in mplayer.c
63beda39479c Cosmetic: Move supportive stuff at top of file.
ib
parents: 32984
diff changeset
35 // ------------------------------------------------------------
63beda39479c Cosmetic: Move supportive stuff at top of file.
ib
parents: 32984
diff changeset
36
36054
1562f350e8d2 Cosmetic: Rename GMPlayer definition gmplayer.
ib
parents: 36032
diff changeset
37 /// Name of the GUI binary
1562f350e8d2 Cosmetic: Rename GMPlayer definition gmplayer.
ib
parents: 36032
diff changeset
38 #define gmplayer "gmplayer"
33466
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_X_EVENT,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
44 GUI_PREPARE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
45 GUI_REDRAW,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
46 GUI_RUN_COMMAND,
34339
f05c75392897 Enable gui slave commands.
ib
parents: 34076
diff changeset
47 GUI_RUN_MESSAGE,
33767
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
48 GUI_SETUP_VIDEO_WINDOW,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
49 GUI_SET_AFILTER,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
50 GUI_SET_AUDIO,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
51 GUI_SET_CONTEXT,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
52 GUI_SET_MIXER,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
53 GUI_SET_STATE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
54 GUI_SET_STREAM,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
55 GUI_SET_VIDEO
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
56 };
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
57
35510
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35468
diff changeset
58 /// guiPlaylist() instructions
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35468
diff changeset
59 enum {
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35468
diff changeset
60 GUI_PLAYLIST_INIT,
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35468
diff changeset
61 GUI_PLAYLIST_ADD
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35468
diff changeset
62 };
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35468
diff changeset
63
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
64 //@{
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
65 /// Playing state
33614
79743a5cf4f0 Rename the symbolic playback state constants.
ib
parents: 33611
diff changeset
66 #define GUI_STOP 0
79743a5cf4f0 Rename the symbolic playback state constants.
ib
parents: 33611
diff changeset
67 #define GUI_PLAY 1
79743a5cf4f0 Rename the symbolic playback state constants.
ib
parents: 33611
diff changeset
68 #define GUI_PAUSE 2
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
69 //@}
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
70
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
71 //@{
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
72 /// NewPlay reason
33890
c51e44dd38e2 Remove needless guiInfo member DiskChanged.
ib
parents: 33876
diff changeset
73 #define GUI_FILE_SAME 1
c51e44dd38e2 Remove needless guiInfo member DiskChanged.
ib
parents: 33876
diff changeset
74 #define GUI_FILE_NEW 2
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
75 //@}
33890
c51e44dd38e2 Remove needless guiInfo member DiskChanged.
ib
parents: 33876
diff changeset
76
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
77 /// mplayer() instructions
33767
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
78 enum {
33768
cee9987bc81d Remove guiExit().
ib
parents: 33767
diff changeset
79 MPLAYER_EXIT_GUI,
33767
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
80 MPLAYER_SET_AUTO_QUALITY,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
81 MPLAYER_SET_BRIGHTNESS,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
82 MPLAYER_SET_CONTRAST,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
83 MPLAYER_SET_EQUALIZER,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
84 MPLAYER_SET_EXTRA_STEREO,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
85 MPLAYER_SET_FONT_AUTOSCALE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
86 MPLAYER_SET_FONT_BLUR,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
87 MPLAYER_SET_FONT_ENCODING,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
88 MPLAYER_SET_FONT_FACTOR,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
89 MPLAYER_SET_FONT_OSDSCALE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
90 MPLAYER_SET_FONT_OUTLINE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
91 MPLAYER_SET_FONT_TEXTSCALE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
92 MPLAYER_SET_HUE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
93 MPLAYER_SET_PANSCAN,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
94 MPLAYER_SET_SATURATION,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
95 MPLAYER_SET_SUB_ENCODING
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
96 };
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
97
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
98 typedef struct {
33774
474ffcdcc6e7 Change guiInterface_t void pointer member declarations.
ib
parents: 33773
diff changeset
99 MPContext *mpcontext;
474ffcdcc6e7 Change guiInterface_t void pointer member declarations.
ib
parents: 33773
diff changeset
100 sh_video_t *sh_video;
474ffcdcc6e7 Change guiInterface_t void pointer member declarations.
ib
parents: 33773
diff changeset
101 af_stream_t *afilter;
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
102
33944
78ba6c8c46a5 Cosmetic: Move guiInfo member VideoWindow.
ib
parents: 33902
diff changeset
103 int VideoWindow;
33901
d4f80f889106 Cosmetic: Rename guiInfo members.
ib
parents: 33900
diff changeset
104 int VideoWidth;
d4f80f889106 Cosmetic: Rename guiInfo members.
ib
parents: 33900
diff changeset
105 int VideoHeight;
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
106
35468
047fc4746236 Cosmetic: Adjust indent and move guiInfo member CodecName in structure.
ib
parents: 35462
diff changeset
107 char *CodecName;
047fc4746236 Cosmetic: Adjust indent and move guiInfo member CodecName in structure.
ib
parents: 35462
diff changeset
108
34076
6a0bda5e63ac Remove needless code.
ib
parents: 34052
diff changeset
109 int StreamType;
33900
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
110 int AudioChannels;
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
111
33902
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
112 int AudioStreams;
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
113 stream_language_t AudioStream[32];
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
114
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
115 int Subtitles;
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
116 stream_language_t Subtitle[32];
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
117
33900
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
118 char *Filename; // public, read access by MPlayer
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
119 char *AudioFilename;
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
120 char *SubtitleFilename;
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
121
33876
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33791
diff changeset
122 int Tracks;
33900
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
123 int Track; // public, read access by MPlayer
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
124 int Chapters;
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
125 int Chapter; // public, write access by MPlayer
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
126 int Angles;
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
127 int Angle;
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
128
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
129 int Playing; // public, read access by MPlayer
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
130
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
131 int RunningTime; // public, write access by MPlayer
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
132 int ElapsedTime; // public, write access by MPlayer
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
133 float Position; // public, write access by MPlayer
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
134
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
135 float Volume;
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
136 float Balance;
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
137
33900
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
138 int NewPlay; // public, read access by MPlayer
35430
2d55540614a9 Move uiProcessNextInPlaylist to the guiInfo structure.
ib
parents: 35391
diff changeset
139 int PlaylistNext;
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
140 } guiInterface_t;
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
141
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33474
diff changeset
142 extern guiInterface_t guiInfo;
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
143
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
144 /// @name MPlayer -> GUI
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
145 //@{
33791
8b0c78a85a8c Cosmetic: Change parameter names of gui() and mplayer().
ib
parents: 33790
diff changeset
146 int gui(int what, void *data);
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
147 void guiDone(void);
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
148 void guiInit(void);
35512
ce2cda8acb4e Cosmetic: Change variable names.
ib
parents: 35510
diff changeset
149 int guiPlaylist(int what, play_tree_t *playtree, m_config_t *config, int enqueue);
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
150 //@}
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
151
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
152 /// @name GUI -> MPlayer
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
153 //@{
33791
8b0c78a85a8c Cosmetic: Change parameter names of gui() and mplayer().
ib
parents: 33790
diff changeset
154 void mplayer(int what, float value, void *data);
33763
03824cf8728d Cosmetic: Rename two functions that do MPlayer calls.
ib
parents: 33752
diff changeset
155 void mplayerLoadFont(void);
33790
ab6d06f5b98b Add const to some string pointer arguments that will not be modified.
ib
parents: 33776
diff changeset
156 void mplayerLoadSubtitle(const char *name);
33764
498e3d5f223b Cosmetic: Order prototypes in interface.h.
ib
parents: 33763
diff changeset
157 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
158 //@}
33745
2d1babde7b29 Cosmetic: Separate interface functions.
ib
parents: 33744
diff changeset
159
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25607
diff changeset
160 #endif /* MPLAYER_GUI_INTERFACE_H */