annotate gui/interface.h @ 36155:29c690aefc6f

Fix resource leak.
author ib
date Wed, 08 May 2013 12:39:56 +0000
parents 1562f350e8d2
children 703a51ce08c8
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_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
35510
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35468
diff changeset
59 /// guiPlaylist() instructions
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35468
diff changeset
60 enum {
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35468
diff changeset
61 GUI_PLAYLIST_INIT,
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35468
diff changeset
62 GUI_PLAYLIST_ADD
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35468
diff changeset
63 };
06aa6dc71613 Combine guiPlaylistInitialize() and guiPlaylistAdd().
ib
parents: 35468
diff changeset
64
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
65 //@{
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
66 /// Playing state
33614
79743a5cf4f0 Rename the symbolic playback state constants.
ib
parents: 33611
diff changeset
67 #define GUI_STOP 0
79743a5cf4f0 Rename the symbolic playback state constants.
ib
parents: 33611
diff changeset
68 #define GUI_PLAY 1
79743a5cf4f0 Rename the symbolic playback state constants.
ib
parents: 33611
diff changeset
69 #define GUI_PAUSE 2
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
70 //@}
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
71
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
72 //@{
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
73 /// NewPlay reason
33890
c51e44dd38e2 Remove needless guiInfo member DiskChanged.
ib
parents: 33876
diff changeset
74 #define GUI_FILE_SAME 1
c51e44dd38e2 Remove needless guiInfo member DiskChanged.
ib
parents: 33876
diff changeset
75 #define GUI_FILE_NEW 2
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
76 //@}
33890
c51e44dd38e2 Remove needless guiInfo member DiskChanged.
ib
parents: 33876
diff changeset
77
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
78 /// mplayer() instructions
33767
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
79 enum {
33768
cee9987bc81d Remove guiExit().
ib
parents: 33767
diff changeset
80 MPLAYER_EXIT_GUI,
33767
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
81 MPLAYER_SET_AUTO_QUALITY,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
82 MPLAYER_SET_BRIGHTNESS,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
83 MPLAYER_SET_CONTRAST,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
84 MPLAYER_SET_EQUALIZER,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
85 MPLAYER_SET_EXTRA_STEREO,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
86 MPLAYER_SET_FONT_AUTOSCALE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
87 MPLAYER_SET_FONT_BLUR,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
88 MPLAYER_SET_FONT_ENCODING,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
89 MPLAYER_SET_FONT_FACTOR,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
90 MPLAYER_SET_FONT_OSDSCALE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
91 MPLAYER_SET_FONT_OUTLINE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
92 MPLAYER_SET_FONT_TEXTSCALE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
93 MPLAYER_SET_HUE,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
94 MPLAYER_SET_PANSCAN,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
95 MPLAYER_SET_SATURATION,
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
96 MPLAYER_SET_SUB_ENCODING
690c9b35f4d1 Change GUI and MPLAYER symbolic constants into enums.
ib
parents: 33766
diff changeset
97 };
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
98
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
99 typedef struct {
33774
474ffcdcc6e7 Change guiInterface_t void pointer member declarations.
ib
parents: 33773
diff changeset
100 MPContext *mpcontext;
474ffcdcc6e7 Change guiInterface_t void pointer member declarations.
ib
parents: 33773
diff changeset
101 sh_video_t *sh_video;
474ffcdcc6e7 Change guiInterface_t void pointer member declarations.
ib
parents: 33773
diff changeset
102 af_stream_t *afilter;
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
103
33944
78ba6c8c46a5 Cosmetic: Move guiInfo member VideoWindow.
ib
parents: 33902
diff changeset
104 int VideoWindow;
33901
d4f80f889106 Cosmetic: Rename guiInfo members.
ib
parents: 33900
diff changeset
105 int VideoWidth;
d4f80f889106 Cosmetic: Rename guiInfo members.
ib
parents: 33900
diff changeset
106 int VideoHeight;
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
107
35468
047fc4746236 Cosmetic: Adjust indent and move guiInfo member CodecName in structure.
ib
parents: 35462
diff changeset
108 char *CodecName;
047fc4746236 Cosmetic: Adjust indent and move guiInfo member CodecName in structure.
ib
parents: 35462
diff changeset
109
34076
6a0bda5e63ac Remove needless code.
ib
parents: 34052
diff changeset
110 int StreamType;
33900
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
111 int AudioChannels;
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
112
33902
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
113 int AudioStreams;
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
114 stream_language_t AudioStream[32];
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
115
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
116 int Subtitles;
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
117 stream_language_t Subtitle[32];
dd0e5dc6ebbf Add guiDVDStruct members to guiInfo.
ib
parents: 33901
diff changeset
118
33900
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
119 char *Filename; // public, read access by MPlayer
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
120 char *AudioFilename;
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
121 char *SubtitleFilename;
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
122
33876
4789b8eed97e Get rid of a bunch of needless or redundant guiInfo members.
ib
parents: 33791
diff changeset
123 int Tracks;
33900
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
124 int Track; // public, read access by MPlayer
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
125 int Chapters;
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
126 int Chapter; // public, write access by MPlayer
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
127 int Angles;
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
128 int Angle;
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
129
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
130 int Playing; // public, read access by MPlayer
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
131
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
132 int RunningTime; // public, write access by MPlayer
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
133 int ElapsedTime; // public, write access by MPlayer
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
134 float Position; // public, write access by MPlayer
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
135
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
136 float Volume;
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
137 float Balance;
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
138
33900
b2fcff7e2157 Cosmetic: Rearrange the guiInfo members.
ib
parents: 33897
diff changeset
139 int NewPlay; // public, read access by MPlayer
35430
2d55540614a9 Move uiProcessNextInPlaylist to the guiInfo structure.
ib
parents: 35391
diff changeset
140 int PlaylistNext;
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
141 } guiInterface_t;
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
142
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33474
diff changeset
143 extern guiInterface_t guiInfo;
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
144
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
145 /// @name MPlayer -> GUI
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 int gui(int what, void *data);
32984
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
148 void guiDone(void);
eb831a979df7 Cosmetic: Format to MPlayer coding style.
ib
parents: 32978
diff changeset
149 void guiInit(void);
35512
ce2cda8acb4e Cosmetic: Change variable names.
ib
parents: 35510
diff changeset
150 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
151 //@}
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
152
33980
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
153 /// @name GUI -> MPlayer
ddcf459482e9 Change some comments in interface.h to doxygen style.
ib
parents: 33944
diff changeset
154 //@{
33791
8b0c78a85a8c Cosmetic: Change parameter names of gui() and mplayer().
ib
parents: 33790
diff changeset
155 void mplayer(int what, float value, void *data);
33763
03824cf8728d Cosmetic: Rename two functions that do MPlayer calls.
ib
parents: 33752
diff changeset
156 void mplayerLoadFont(void);
33790
ab6d06f5b98b Add const to some string pointer arguments that will not be modified.
ib
parents: 33776
diff changeset
157 void mplayerLoadSubtitle(const char *name);
33764
498e3d5f223b Cosmetic: Order prototypes in interface.h.
ib
parents: 33763
diff changeset
158 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
159 //@}
33745
2d1babde7b29 Cosmetic: Separate interface functions.
ib
parents: 33744
diff changeset
160
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25607
diff changeset
161 #endif /* MPLAYER_GUI_INTERFACE_H */