Mercurial > mplayer.hg
annotate gui/app/app.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 | 28ea255e40ce |
children | bb067298265a |
rev | line source |
---|---|
26458 | 1 /* |
2 * This file is part of MPlayer. | |
3 * | |
4 * MPlayer is free software; you can redistribute it and/or modify | |
5 * it under the terms of the GNU General Public License as published by | |
6 * the Free Software Foundation; either version 2 of the License, or | |
7 * (at your option) any later version. | |
8 * | |
9 * MPlayer is distributed in the hope that it will be useful, | |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 * GNU General Public License for more details. | |
13 * | |
14 * You should have received a copy of the GNU General Public License along | |
15 * with MPlayer; if not, write to the Free Software Foundation, Inc., | |
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
17 */ | |
18 | |
26029 | 19 #ifndef MPLAYER_GUI_APP_H |
20 #define MPLAYER_GUI_APP_H | |
23077 | 21 |
35525 | 22 #include "gui/util/bitmap.h" |
23 #include "gui/wm/ws.h" | |
23077 | 24 |
35503
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
25 /// GUI messages (user events) |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
26 enum { |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
27 evNone, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
28 evPlay, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
29 evStop, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
30 evPause, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
31 evPrev, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
32 evNext, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
33 evLoad, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
34 evLoadPlay, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
35 evLoadAudioFile, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
36 evLoadSubtitle, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
37 evDropSubtitle, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
38 evPlaylist, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
39 evPlayCD, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
40 evPlayVCD, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
41 evPlayDVD, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
42 evLoadURL, |
36429 | 43 evPlayTV, |
35503
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
44 evPlaySwitchToPause, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
45 evPauseSwitchToPlay, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
46 evBackward10sec, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
47 evForward10sec, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
48 evBackward1min, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
49 evForward1min, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
50 evBackward10min, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
51 evForward10min, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
52 evSetMoviePosition, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
53 evHalfSize, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
54 evDoubleSize, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
55 evFullScreen, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
56 evNormalSize, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
57 evSetAspect, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
58 evIncVolume, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
59 evDecVolume, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
60 evSetVolume, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
61 evMute, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
62 evSetBalance, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
63 evEqualizer, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
64 evAbout, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
65 evPreferences, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
66 evSkinBrowser, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
67 evMenu, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
68 evIconify, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
69 evExit = 100 |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
70 }; |
23077 | 71 |
35503
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
72 /// Internal messages (events) |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
73 enum { |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
74 ivSetVideo = 1000, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
75 ivSetAudio, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
76 ivSetSubtitle, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
77 ivSetCDTrack, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
78 ivSetVCDTrack, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
79 ivSetDVDTitle, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
80 ivSetDVDChapter, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
81 ivSetDVDAudio, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
82 ivSetDVDSubtitle, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
83 ivPlayDVD, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
84 ivShowPopUpMenu, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
85 ivHidePopUpMenu, |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
86 ivRedraw |
ac6c531dc9d1
Replace symbolic GUI message (event) constants by enums.
ib
parents:
34697
diff
changeset
|
87 }; |
23077 | 88 |
32897 | 89 typedef struct { |
32911 | 90 int message; |
32897 | 91 const char *name; |
23077 | 92 } evName; |
93 | |
35504 | 94 /// Skin items |
95 enum { | |
96 itNone, | |
97 itBase, | |
98 itButton, | |
99 itSLabel, | |
100 itDLabel, | |
101 itHPotmeter, | |
102 itVPotmeter, | |
103 itPotmeter, | |
104 itMenu, | |
105 itPLMButton = 100, | |
106 itPRMButton | |
107 }; | |
32897 | 108 |
35505 | 109 //@{ |
110 /// Button state | |
32920 | 111 #define btnDisabled 0 |
23077 | 112 #define btnReleased 1 |
32920 | 113 #define btnPressed 2 |
35505 | 114 //@} |
32897 | 115 |
35506 | 116 /// Item definition |
32897 | 117 typedef struct { |
118 int type; | |
119 | |
120 int x, y; | |
121 int width, height; | |
122 | |
33555 | 123 guiImage Bitmap; |
124 guiImage Mask; | |
32897 | 125 |
126 int fontid; | |
127 int align; | |
128 char *label; | |
129 | |
32911 | 130 int pwidth, pheight; |
131 int numphases; | |
132 float value; | |
133 | |
134 int message; | |
135 | |
136 int R, G, B; | |
137 | |
32897 | 138 char *text; |
139 int textwidth; | |
140 unsigned int starttime; | |
141 int last_x; | |
142 | |
33103 | 143 int pressed; |
35688 | 144 } guiItem; |
23077 | 145 |
35507 | 146 /// Maximum GUI items |
147 #define MAX_ITEMS 64 | |
148 | |
32897 | 149 typedef struct { |
35688 | 150 guiItem main; |
35656 | 151 wsWindow mainWindow; |
32897 | 152 int mainDecoration; |
23077 | 153 |
35688 | 154 guiItem video; |
35656 | 155 wsWindow videoWindow; |
23077 | 156 |
35688 | 157 guiItem playbar; |
35656 | 158 wsWindow playbarWindow; |
33555 | 159 int playbarIsPresent; |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
28051
diff
changeset
|
160 |
35688 | 161 guiItem menu; |
162 guiItem menuSelected; | |
35656 | 163 wsWindow menuWindow; |
32897 | 164 int menuIsPresent; |
23077 | 165 |
32931
03b1051bed5c
Rename the 'NumberOf' members of the listItems structure.
ib
parents:
32927
diff
changeset
|
166 int IndexOfMainItems; |
35688 | 167 guiItem mainItems[MAX_ITEMS]; |
32897 | 168 |
33555 | 169 int IndexOfPlaybarItems; |
35688 | 170 guiItem playbarItems[MAX_ITEMS]; |
32912 | 171 |
32931
03b1051bed5c
Rename the 'NumberOf' members of the listItems structure.
ib
parents:
32927
diff
changeset
|
172 int IndexOfMenuItems; |
35688 | 173 guiItem menuItems[MAX_ITEMS]; |
32937 | 174 } guiItems; |
23077 | 175 |
33555 | 176 extern guiItems guiApp; |
23077 | 177 |
35688 | 178 guiItem *appFindItem(int event); |
34328 | 179 int appFindMessage(const char *name); |
32932 | 180 void appFreeStruct(void); |
32948 | 181 void btnModify(int event, float state); |
182 void btnSet(int event, int set); | |
23077 | 183 |
26029 | 184 #endif /* MPLAYER_GUI_APP_H */ |