annotate gui/interface.h @ 34515:a9d2dcb0f435

Fix skin PNG read errors. FFmpeg's PNG decoder no longer does transcoding, but returns 32 bpp images in RGBA format. Extend (and rename) the existing 24 bpp to 32 bpp conversion function to do 32 bpp ARGB conversion as well.
author ib
date Fri, 27 Jan 2012 00:07:45 +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 */