annotate gui/skin/skin.c @ 33710:fd498969e72d

Clean up some function prototypes. Use const where possible and plain "char" instead of "unsigned char" for filenames. Fixes some clang compiler warnings.
author reimar
date Sat, 02 Jul 2011 23:12:45 +0000
parents 520fb0f7544c
children d8f49edf8f25
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 */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
18
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
19 #include <stdio.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
20 #include <string.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
21
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
22 #include "skin.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
23 #include "font.h"
32893
c873777e957d Get rid of needless listItems variable and pointer.
ib
parents: 32880
diff changeset
24 #include "gui/app.h"
33023
ba432e34dc7e Add message showing function.
ib
parents: 33022
diff changeset
25 #include "gui/interface.h"
33556
520fb0f7544c Rename GUI directory 'mplayer' and some files in it.
ib
parents: 33555
diff changeset
26 #include "gui/ui/widgets.h"
33046
9684ad0e1291 Move files with auxiliary functions to own directory.
ib
parents: 33023
diff changeset
27 #include "gui/util/cut.h"
33048
c6d0adf896ea Move auxiliary string functions into separate file.
ib
parents: 33046
diff changeset
28 #include "gui/util/string.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
29
26382
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
30 #include "config.h"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
31 #include "help_mp.h"
23703
9fb716ab06a3 Avoid code duplication and ugly config.h hack by using av_strlcat/av_strlcpy
reimar
parents: 23077
diff changeset
32 #include "libavutil/avstring.h"
32944
27a98940e3aa Use FF_ARRAY_ELEMS() rather than a separate constant.
ib
parents: 32937
diff changeset
33 #include "libavutil/common.h"
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
34 #include "mp_msg.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
35
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
36 typedef struct {
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
37 const char *name;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
38 int (*func)(char *in);
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
39 } _item;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
40
32937
3c57056637cc Cosmetic: Rename listItems structure.
ib
parents: 32933
diff changeset
41 static guiItems *skin;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
42
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
43 static int linenumber;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
44 static unsigned char path[512];
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
45
32980
2bfd000bb789 Cosmetic: Rename pointers handling current window and items.
ib
parents: 32979
diff changeset
46 static unsigned char currWinName[32];
2bfd000bb789 Cosmetic: Rename pointers handling current window and items.
ib
parents: 32979
diff changeset
47 static wItem *currWin;
2bfd000bb789 Cosmetic: Rename pointers handling current window and items.
ib
parents: 32979
diff changeset
48 static int *currWinItemIdx;
2bfd000bb789 Cosmetic: Rename pointers handling current window and items.
ib
parents: 32979
diff changeset
49 static wItem *currWinItems;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
50
33022
9abc0dbd6314 Cosmetic: Rename ERRORMESSAGE() skin_error().
ib
parents: 32980
diff changeset
51 static void skin_error(const char *format, ...)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
52 {
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
53 char p[512];
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
54 va_list ap;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
55
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
56 va_start(ap, format);
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
57 vsnprintf(p, sizeof(p), format, ap);
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
58 va_end(ap);
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
59
33023
ba432e34dc7e Add message showing function.
ib
parents: 33022
diff changeset
60 gmp_msg(MSGT_GPLAYER, MSGL_ERR, MSGTR_SKIN_ERRORMESSAGE, linenumber, p);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
61 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
62
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
63 static int section_item(char *item)
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
64 {
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
65 if (!skin) {
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
66 skin_error(MSGTR_SKIN_ERROR_SECTION, item);
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
67 return 0;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
68 }
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
69
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
70 return 1;
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
71 }
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
72
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
73 static int window_item(char *item)
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
74 {
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
75 if (!currWinName[0]) {
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
76 skin_error(MSGTR_SKIN_ERROR_WINDOW, item);
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
77 return 0;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
78 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
79
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
80 return 1;
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
81 }
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
82
33058
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
83 static int in_window(char *name)
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
84 {
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
85 if (strcmp(currWinName, name) == 0) {
33062
be0848508395 Cosmetic: Rename error message.
ib
parents: 33059
diff changeset
86 skin_error(MSGTR_SKIN_ERROR_ITEM, name);
33058
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
87 return 1;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
88 }
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
89
33058
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
90 return 0;
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
91 }
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
92
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33357
diff changeset
93 int skinBPRead(char *fname, guiImage *bf)
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
94 {
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
95 int i = bpRead(fname, bf);
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
96
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
97 switch (i) {
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
98 case -1:
33022
9abc0dbd6314 Cosmetic: Rename ERRORMESSAGE() skin_error().
ib
parents: 32980
diff changeset
99 skin_error(MSGTR_SKIN_BITMAP_16bit, fname);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
100 break;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
101
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
102 case -2:
33022
9abc0dbd6314 Cosmetic: Rename ERRORMESSAGE() skin_error().
ib
parents: 32980
diff changeset
103 skin_error(MSGTR_SKIN_BITMAP_FileNotFound, fname);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
104 break;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
105
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
106 case -5:
33022
9abc0dbd6314 Cosmetic: Rename ERRORMESSAGE() skin_error().
ib
parents: 32980
diff changeset
107 skin_error(MSGTR_SKIN_BITMAP_PNGReadError, fname);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
108 break;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
109
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
110 case -8:
33022
9abc0dbd6314 Cosmetic: Rename ERRORMESSAGE() skin_error().
ib
parents: 32980
diff changeset
111 skin_error(MSGTR_SKIN_BITMAP_ConversionError, fname);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
112 break;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
113 }
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
114
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
115 return i;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
116 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
117
33098
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
118 static wItem *next_item(void)
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
119 {
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
120 wItem *item = NULL;
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
121
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
122 if (*currWinItemIdx < MAX_ITEMS - 1) {
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
123 (*currWinItemIdx)++;
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
124 item = &currWinItems[*currWinItemIdx];
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
125 } else
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
126 skin_error(MSGTR_SKIN_TooManyItemsDeclared);
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
127
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
128 return item;
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
129 }
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
130
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
131 // section=movieplayer
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
132 static int item_section(char *in)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
133 {
33064
33d307c4430c Add error check.
ib
parents: 33063
diff changeset
134 if (skin) {
33d307c4430c Add error check.
ib
parents: 33063
diff changeset
135 skin_error(MSGTR_SKIN_ERROR_ITEM, "section");
33d307c4430c Add error check.
ib
parents: 33063
diff changeset
136 return 1;
33d307c4430c Add error check.
ib
parents: 33063
diff changeset
137 }
33d307c4430c Add error check.
ib
parents: 33063
diff changeset
138
33055
2be86f1db767 Make use of return value of strlower().
ib
parents: 33054
diff changeset
139 if (!strcmp(strlower(in), "movieplayer"))
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33357
diff changeset
140 skin = &guiApp;
33067
2d0058f30a6b Issue error message in case of wrong section name.
ib
parents: 33066
diff changeset
141 else {
2d0058f30a6b Issue error message in case of wrong section name.
ib
parents: 33066
diff changeset
142 skin_error(MSGTR_SKIN_UNKNOWN_NAME, in);
2d0058f30a6b Issue error message in case of wrong section name.
ib
parents: 33066
diff changeset
143 return 1;
2d0058f30a6b Issue error message in case of wrong section name.
ib
parents: 33066
diff changeset
144 }
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
145
32951
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
146 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] section: %s\n", in);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
147
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
148 return 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
149 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
150
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
151 // end
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
152 static int item_end(char *in)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
153 {
32951
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
154 char *space, *name;
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
155
33357
5a5c875e7392 gui: Fix compilation without debug enabled.
diego
parents: 33129
diff changeset
156 #ifdef MP_DEBUG
32980
2bfd000bb789 Cosmetic: Rename pointers handling current window and items.
ib
parents: 32979
diff changeset
157 if (currWinName[0]) {
32951
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
158 space = " ";
32980
2bfd000bb789 Cosmetic: Rename pointers handling current window and items.
ib
parents: 32979
diff changeset
159 name = currWinName;
32951
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
160 } else {
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
161 space = "";
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
162 name = "section";
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
163 }
32958
80087dd00035 Fix some debug messages.
ib
parents: 32951
diff changeset
164 #endif
80087dd00035 Fix some debug messages.
ib
parents: 32951
diff changeset
165
80087dd00035 Fix some debug messages.
ib
parents: 32951
diff changeset
166 (void)in;
32951
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
167
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
168 if (!section_item("end"))
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
169 return 1;
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
170
32951
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
171 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] %send (%s)\n", space, name);
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
172
32980
2bfd000bb789 Cosmetic: Rename pointers handling current window and items.
ib
parents: 32979
diff changeset
173 if (currWinName[0]) {
2bfd000bb789 Cosmetic: Rename pointers handling current window and items.
ib
parents: 32979
diff changeset
174 currWinName[0] = 0;
2bfd000bb789 Cosmetic: Rename pointers handling current window and items.
ib
parents: 32979
diff changeset
175 currWin = NULL;
2bfd000bb789 Cosmetic: Rename pointers handling current window and items.
ib
parents: 32979
diff changeset
176 currWinItemIdx = NULL;
2bfd000bb789 Cosmetic: Rename pointers handling current window and items.
ib
parents: 32979
diff changeset
177 currWinItems = NULL;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
178 } else
32937
3c57056637cc Cosmetic: Rename listItems structure.
ib
parents: 32933
diff changeset
179 skin = NULL;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
180
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
181 return 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
182 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
183
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
184 // window=main|sub|playbar|menu
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
185 static int item_window(char *in)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
186 {
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
187 if (!section_item("window"))
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
188 return 1;
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
189
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
190 if (currWinName[0]) {
33062
be0848508395 Cosmetic: Rename error message.
ib
parents: 33059
diff changeset
191 skin_error(MSGTR_SKIN_ERROR_ITEM, "window");
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
192 return 1;
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
193 }
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
194
33083
8c96263e0f09 Clean up cmd_window().
ib
parents: 33081
diff changeset
195 strlower(in);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
196
33083
8c96263e0f09 Clean up cmd_window().
ib
parents: 33081
diff changeset
197 if (strcmp(in, "main") == 0) {
33095
772af04413f3 Avoid using appMPlayer.
ib
parents: 33094
diff changeset
198 currWin = &skin->main;
772af04413f3 Avoid using appMPlayer.
ib
parents: 33094
diff changeset
199 currWinItemIdx = &skin->IndexOfMainItems;
772af04413f3 Avoid using appMPlayer.
ib
parents: 33094
diff changeset
200 currWinItems = skin->mainItems;
33083
8c96263e0f09 Clean up cmd_window().
ib
parents: 33081
diff changeset
201 } else if (strcmp(in, "sub") == 0) {
33095
772af04413f3 Avoid using appMPlayer.
ib
parents: 33094
diff changeset
202 currWin = &skin->sub;
33083
8c96263e0f09 Clean up cmd_window().
ib
parents: 33081
diff changeset
203 currWinItemIdx = NULL;
8c96263e0f09 Clean up cmd_window().
ib
parents: 33081
diff changeset
204 currWinItems = NULL;
8c96263e0f09 Clean up cmd_window().
ib
parents: 33081
diff changeset
205 } else if (strcmp(in, "playbar") == 0) {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33357
diff changeset
206 currWin = &skin->playbar;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33357
diff changeset
207 currWinItemIdx = &skin->IndexOfPlaybarItems;
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33357
diff changeset
208 currWinItems = skin->playbarItems;
33083
8c96263e0f09 Clean up cmd_window().
ib
parents: 33081
diff changeset
209 } else if (strcmp(in, "menu") == 0) {
33095
772af04413f3 Avoid using appMPlayer.
ib
parents: 33094
diff changeset
210 currWin = &skin->menu;
772af04413f3 Avoid using appMPlayer.
ib
parents: 33094
diff changeset
211 currWinItemIdx = &skin->IndexOfMenuItems;
772af04413f3 Avoid using appMPlayer.
ib
parents: 33094
diff changeset
212 currWinItems = skin->menuItems;
33066
fd4d66a6add6 Don't start GUI in case of window name error.
ib
parents: 33065
diff changeset
213 } else {
33065
83c226105086 Rename and revise error message.
ib
parents: 33064
diff changeset
214 skin_error(MSGTR_SKIN_UNKNOWN_NAME, in);
33066
fd4d66a6add6 Don't start GUI in case of window name error.
ib
parents: 33065
diff changeset
215 return 1;
fd4d66a6add6 Don't start GUI in case of window name error.
ib
parents: 33065
diff changeset
216 }
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
217
33083
8c96263e0f09 Clean up cmd_window().
ib
parents: 33081
diff changeset
218 av_strlcpy(currWinName, in, sizeof(currWinName));
8c96263e0f09 Clean up cmd_window().
ib
parents: 33081
diff changeset
219
32980
2bfd000bb789 Cosmetic: Rename pointers handling current window and items.
ib
parents: 32979
diff changeset
220 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] window: %s\n", currWinName);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
221
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
222 return 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
223 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
224
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
225 // base=image,x,y[,width,height]
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
226 static int item_base(char *in)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
227 {
33090
db699b367260 Reduce resp. increase arrays to reasonable size.
ib
parents: 33089
diff changeset
228 unsigned char fname[256];
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
229 unsigned char file[512];
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
230 int x, y;
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
231 int w = 0, h = 0;
33104
65827197d1af Simplify cmd_base().
ib
parents: 33103
diff changeset
232 int is_sub, is_bar, is_menu;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
233
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
234 if (!window_item("base"))
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
235 return 1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
236
33104
65827197d1af Simplify cmd_base().
ib
parents: 33103
diff changeset
237 is_sub = (strcmp(currWinName, "sub") == 0);
65827197d1af Simplify cmd_base().
ib
parents: 33103
diff changeset
238 is_bar = (strcmp(currWinName, "playbar") == 0);
65827197d1af Simplify cmd_base().
ib
parents: 33103
diff changeset
239 is_menu = (strcmp(currWinName, "menu") == 0);
65827197d1af Simplify cmd_base().
ib
parents: 33103
diff changeset
240
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
241 cutItem(in, fname, ',', 0);
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
242 x = cutItemToInt(in, ',', 1);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
243 y = cutItemToInt(in, ',', 2);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
244 w = cutItemToInt(in, ',', 3);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
245 h = cutItemToInt(in, ',', 4);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
246
33105
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
247 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] image: %s", fname);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
248
33105
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
249 currWin->type = itBase;
33104
65827197d1af Simplify cmd_base().
ib
parents: 33103
diff changeset
250
33105
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
251 if (!is_menu) {
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
252 currWin->x = x;
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
253 currWin->y = y;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
254
33105
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
255 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, " %d,%d", x, y);
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
256 }
32951
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
257
33105
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
258 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "\n");
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
259
33105
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
260 av_strlcpy(file, path, sizeof(file));
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
261 av_strlcat(file, fname, sizeof(file));
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
262
33105
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
263 if (skinBPRead(file, &currWin->Bitmap) != 0)
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
264 return 1;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
265
33105
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
266 currWin->width = currWin->Bitmap.Width;
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
267 currWin->height = currWin->Bitmap.Height;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
268
33105
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
269 if (is_sub) {
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
270 if (w && h) {
33096
ca1a01b56c90 Avoid using skin pointer.
ib
parents: 33095
diff changeset
271 currWin->width = w;
ca1a01b56c90 Avoid using skin pointer.
ib
parents: 33095
diff changeset
272 currWin->height = h;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
273 }
33105
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
274 }
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
275
33105
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
276 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] bitmap: %dx%d\n", currWin->width, currWin->height);
32951
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
277
33105
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
278 if (!is_sub) {
27377
d58d06eafe83 Change a bunch of X11-specific preprocessor directives.
diego
parents: 26458
diff changeset
279 #ifdef CONFIG_XSHAPE
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33357
diff changeset
280 if (!bpRenderMask(&currWin->Bitmap, &currWin->Mask)) {
33114
5ad451a5ebec Remove useless warning message.
ib
parents: 33106
diff changeset
281 skin_error(MSGTR_SKIN_NotEnoughMemory);
5ad451a5ebec Remove useless warning message.
ib
parents: 33106
diff changeset
282 return 1;
5ad451a5ebec Remove useless warning message.
ib
parents: 33106
diff changeset
283 }
33096
ca1a01b56c90 Avoid using skin pointer.
ib
parents: 33095
diff changeset
284 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] mask: %lux%lu\n", currWin->Mask.Width, currWin->Mask.Height);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
285 #else
33096
ca1a01b56c90 Avoid using skin pointer.
ib
parents: 33095
diff changeset
286 currWin->Mask.Image = NULL;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
287 #endif
33105
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
288 }
33101
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
289
33105
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
290 if (is_bar)
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 33357
diff changeset
291 skin->playbarIsPresent = 1;
33105
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
292 if (is_menu)
1cd1adf9ee6c Cosmetic: Adjust indent after simplifying cmd_base().
ib
parents: 33104
diff changeset
293 skin->menuIsPresent = 1;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27377
diff changeset
294
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
295 return 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
296 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
297
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
298 // background=R,G,B
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
299 static int item_background(char *in)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
300 {
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
301 if (!window_item("background"))
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
302 return 1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
303
33058
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
304 if (in_window("main"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
305 return 1;
33088
babdacb1ceac Disable background definition for playbar.
ib
parents: 33087
diff changeset
306 if (in_window("playbar"))
babdacb1ceac Disable background definition for playbar.
ib
parents: 33087
diff changeset
307 return 1;
33058
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
308 if (in_window("menu"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
309 return 1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
310
32980
2bfd000bb789 Cosmetic: Rename pointers handling current window and items.
ib
parents: 32979
diff changeset
311 currWin->R = cutItemToInt(in, ',', 0);
2bfd000bb789 Cosmetic: Rename pointers handling current window and items.
ib
parents: 32979
diff changeset
312 currWin->G = cutItemToInt(in, ',', 1);
2bfd000bb789 Cosmetic: Rename pointers handling current window and items.
ib
parents: 32979
diff changeset
313 currWin->B = cutItemToInt(in, ',', 2);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
314
32980
2bfd000bb789 Cosmetic: Rename pointers handling current window and items.
ib
parents: 32979
diff changeset
315 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] background color: #%02x%02x%02x\n", currWin->R, currWin->G, currWin->B);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
316
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
317 return 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
318 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
319
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
320 // button=image,x,y,width,height,message
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
321 static int item_button(char *in)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
322 {
33090
db699b367260 Reduce resp. increase arrays to reasonable size.
ib
parents: 33089
diff changeset
323 unsigned char fname[256];
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
324 unsigned char file[512];
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
325 int x, y, w, h, message;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
326 char msg[32];
33098
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
327 wItem *item;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
328
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
329 if (!window_item("button"))
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
330 return 1;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
331
33058
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
332 if (in_window("sub"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
333 return 1;
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
334 if (in_window("menu"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
335 return 1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
336
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
337 cutItem(in, fname, ',', 0);
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
338 x = cutItemToInt(in, ',', 1);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
339 y = cutItemToInt(in, ',', 2);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
340 w = cutItemToInt(in, ',', 3);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
341 h = cutItemToInt(in, ',', 4);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
342 cutItem(in, msg, ',', 5);
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
343
33071
f4895241bdd5 Conform message determination
ib
parents: 33069
diff changeset
344 message = appFindMessage(msg);
f4895241bdd5 Conform message determination
ib
parents: 33069
diff changeset
345
f4895241bdd5 Conform message determination
ib
parents: 33069
diff changeset
346 if (message == -1) {
f4895241bdd5 Conform message determination
ib
parents: 33069
diff changeset
347 skin_error(MSGTR_SKIN_UnknownMessage, msg);
f4895241bdd5 Conform message determination
ib
parents: 33069
diff changeset
348 return 1;
f4895241bdd5 Conform message determination
ib
parents: 33069
diff changeset
349 }
f4895241bdd5 Conform message determination
ib
parents: 33069
diff changeset
350
33102
de688a61e439 Move debug messages so that they will be processed earlier.
ib
parents: 33101
diff changeset
351 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] button image: %s %d,%d\n", fname, x, y);
de688a61e439 Move debug messages so that they will be processed earlier.
ib
parents: 33101
diff changeset
352 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] message: %s (#%d)\n", msg, message);
de688a61e439 Move debug messages so that they will be processed earlier.
ib
parents: 33101
diff changeset
353 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] size: %dx%d\n", w, h);
de688a61e439 Move debug messages so that they will be processed earlier.
ib
parents: 33101
diff changeset
354
33098
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
355 item = next_item();
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
356
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
357 if (!item)
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
358 return 1;
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
359
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
360 item->type = itButton;
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
361 item->x = x;
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
362 item->y = y;
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
363 item->width = w;
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
364 item->height = h;
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
365 item->message = message;
33101
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
366 item->pressed = btnReleased;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
367
33098
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
368 if (item->message == evPauseSwitchToPlay)
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
369 item->pressed = btnDisabled;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
370
33098
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
371 item->Bitmap.Image = NULL;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
372
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
373 if (strcmp(fname, "NULL") != 0) {
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
374 av_strlcpy(file, path, sizeof(file));
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
375 av_strlcat(file, fname, sizeof(file));
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
376
33098
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
377 if (skinBPRead(file, &item->Bitmap) != 0)
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
378 return 1;
32951
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
379
33098
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
380 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] (bitmap: %lux%lu)\n", item->Bitmap.Width, item->Bitmap.Height);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
381 }
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
382
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
383 return 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
384 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
385
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
386 // selected=image
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
387 static int item_selected(char *in)
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
388 {
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
389 unsigned char file[512];
33096
ca1a01b56c90 Avoid using skin pointer.
ib
parents: 33095
diff changeset
390 wItem *currItem;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
391
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
392 if (!window_item("selected"))
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
393 return 1;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
394
33058
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
395 if (in_window("main"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
396 return 1;
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
397 if (in_window("sub"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
398 return 1;
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
399 if (in_window("playbar"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
400 return 1;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
401
33102
de688a61e439 Move debug messages so that they will be processed earlier.
ib
parents: 33101
diff changeset
402 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] image selected: %s\n", in);
de688a61e439 Move debug messages so that they will be processed earlier.
ib
parents: 33101
diff changeset
403
33096
ca1a01b56c90 Avoid using skin pointer.
ib
parents: 33095
diff changeset
404 currItem = &skin->menuSelected;
ca1a01b56c90 Avoid using skin pointer.
ib
parents: 33095
diff changeset
405 currItem->type = itBase;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
406
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
407 av_strlcpy(file, path, sizeof(file));
33091
6ce0b74d03b7 Remove needless variable.
ib
parents: 33090
diff changeset
408 av_strlcat(file, in, sizeof(file));
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
409
33096
ca1a01b56c90 Avoid using skin pointer.
ib
parents: 33095
diff changeset
410 if (skinBPRead(file, &currItem->Bitmap) != 0)
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
411 return 1;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
412
33096
ca1a01b56c90 Avoid using skin pointer.
ib
parents: 33095
diff changeset
413 currItem->width = currItem->Bitmap.Width;
ca1a01b56c90 Avoid using skin pointer.
ib
parents: 33095
diff changeset
414 currItem->height = currItem->Bitmap.Height;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
415
33096
ca1a01b56c90 Avoid using skin pointer.
ib
parents: 33095
diff changeset
416 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] bitmap: %dx%d\n", currItem->width, currItem->height);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
417
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
418 return 0;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
419 }
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27377
diff changeset
420
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
421 // menu=x,y,width,height,message
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
422 static int item_menu(char *in)
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
423 {
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
424 int x, y, w, h, message;
33071
f4895241bdd5 Conform message determination
ib
parents: 33069
diff changeset
425 char msg[32];
33096
ca1a01b56c90 Avoid using skin pointer.
ib
parents: 33095
diff changeset
426 wItem *item;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
427
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
428 if (!window_item("menu"))
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
429 return 1;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
430
33058
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
431 if (in_window("main"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
432 return 1;
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
433 if (in_window("sub"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
434 return 1;
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
435 if (in_window("playbar"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
436 return 1;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
437
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
438 x = cutItemToInt(in, ',', 0);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
439 y = cutItemToInt(in, ',', 1);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
440 w = cutItemToInt(in, ',', 2);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
441 h = cutItemToInt(in, ',', 3);
33071
f4895241bdd5 Conform message determination
ib
parents: 33069
diff changeset
442 cutItem(in, msg, ',', 4);
f4895241bdd5 Conform message determination
ib
parents: 33069
diff changeset
443
f4895241bdd5 Conform message determination
ib
parents: 33069
diff changeset
444 message = appFindMessage(msg);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
445
33071
f4895241bdd5 Conform message determination
ib
parents: 33069
diff changeset
446 if (message == -1) {
f4895241bdd5 Conform message determination
ib
parents: 33069
diff changeset
447 skin_error(MSGTR_SKIN_UnknownMessage, msg);
f4895241bdd5 Conform message determination
ib
parents: 33069
diff changeset
448 return 1;
f4895241bdd5 Conform message determination
ib
parents: 33069
diff changeset
449 }
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
450
33098
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
451 item = next_item();
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
452
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
453 if (!item)
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
454 return 1;
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
455
33100
35efac3ece2c Add an itMenu item type.
ib
parents: 33099
diff changeset
456 item->type = itMenu;
33096
ca1a01b56c90 Avoid using skin pointer.
ib
parents: 33095
diff changeset
457 item->x = x;
ca1a01b56c90 Avoid using skin pointer.
ib
parents: 33095
diff changeset
458 item->y = y;
ca1a01b56c90 Avoid using skin pointer.
ib
parents: 33095
diff changeset
459 item->width = w;
ca1a01b56c90 Avoid using skin pointer.
ib
parents: 33095
diff changeset
460 item->height = h;
ca1a01b56c90 Avoid using skin pointer.
ib
parents: 33095
diff changeset
461 item->message = message;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
462
33096
ca1a01b56c90 Avoid using skin pointer.
ib
parents: 33095
diff changeset
463 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] item #%d: %d,%d %dx%d\n", *currWinItemIdx, x, y, w, h);
33071
f4895241bdd5 Conform message determination
ib
parents: 33069
diff changeset
464 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] message: %s (#%d)\n", msg, message);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
465
33096
ca1a01b56c90 Avoid using skin pointer.
ib
parents: 33095
diff changeset
466 item->Bitmap.Image = NULL;
33053
f64d41dac10b Cosmetic: Separate return statement with newline.
ib
parents: 33052
diff changeset
467
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
468 return 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
469 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
470
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
471 // hpotmeter=button,bwidth,bheight,phases,numphases,default,x,y,width,height,message
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
472 static int item_hpotmeter(char *in)
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
473 {
33090
db699b367260 Reduce resp. increase arrays to reasonable size.
ib
parents: 33089
diff changeset
474 unsigned char pfname[256];
db699b367260 Reduce resp. increase arrays to reasonable size.
ib
parents: 33089
diff changeset
475 unsigned char phfname[256];
33093
3de646fca03b Cosmetic: Rearrange variable declarations to match parameters.
ib
parents: 33092
diff changeset
476 unsigned char buf[512];
3de646fca03b Cosmetic: Rearrange variable declarations to match parameters.
ib
parents: 33092
diff changeset
477 int pwidth, pheight, ph, d, x, y, w, h, message;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
478 wItem *item;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
479
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
480 if (!window_item("h/v potmeter"))
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
481 return 1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
482
33058
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
483 if (in_window("sub"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
484 return 1;
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
485 if (in_window("menu"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
486 return 1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
487
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
488 cutItem(in, pfname, ',', 0);
32911
e06fbdd8eb46 Clean up the wItem structure.
ib
parents: 32910
diff changeset
489 pwidth = cutItemToInt(in, ',', 1);
e06fbdd8eb46 Clean up the wItem structure.
ib
parents: 32910
diff changeset
490 pheight = cutItemToInt(in, ',', 2);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
491 cutItem(in, phfname, ',', 3);
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
492 ph = cutItemToInt(in, ',', 4);
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
493 d = cutItemToInt(in, ',', 5);
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
494 x = cutItemToInt(in, ',', 6);
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
495 y = cutItemToInt(in, ',', 7);
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
496 w = cutItemToInt(in, ',', 8);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
497 h = cutItemToInt(in, ',', 9);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
498 cutItem(in, buf, ',', 10);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
499
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
500 message = appFindMessage(buf);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
501
33069
4b7d4905862c Rename error message and add missing checks.
ib
parents: 33067
diff changeset
502 if (message == -1) {
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
503 skin_error(MSGTR_SKIN_UnknownMessage, buf);
33069
4b7d4905862c Rename error message and add missing checks.
ib
parents: 33067
diff changeset
504 return 1;
4b7d4905862c Rename error message and add missing checks.
ib
parents: 33067
diff changeset
505 }
4b7d4905862c Rename error message and add missing checks.
ib
parents: 33067
diff changeset
506
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
507 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] h/v potmeter image: %s %d,%d %dx%d\n", phfname, x, y, w, h);
32951
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
508 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] button image: %s %dx%d\n", pfname, pwidth, pheight);
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
509 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] numphases: %d, default: %d%%\n", ph, d);
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
510 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] message: %s (#%d)\n", buf, message);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
511
33098
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
512 item = next_item();
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
513
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
514 if (!item)
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
515 return 1;
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
516
33101
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
517 item->type = itHPotmeter;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
518 item->x = x;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
519 item->y = y;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
520 item->width = w;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
521 item->height = h;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
522 item->pwidth = pwidth;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
523 item->pheight = pheight;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
524 item->numphases = ph;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
525 item->value = (float)d;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
526 item->message = message;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
527 item->pressed = btnReleased;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
528
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
529 item->Bitmap.Image = NULL;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
530
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
531 if (strcmp(phfname, "NULL") != 0) {
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
532 av_strlcpy(buf, path, sizeof(buf));
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
533 av_strlcat(buf, phfname, sizeof(buf));
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
534
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
535 if (skinBPRead(buf, &item->Bitmap) != 0)
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
536 return 1;
32951
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
537
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
538 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] (potmeter bitmap: %lux%lu)\n", item->Bitmap.Width, item->Bitmap.Height);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
539 }
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
540
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
541 item->Mask.Image = NULL;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
542
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
543 if (strcmp(pfname, "NULL") != 0) {
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
544 av_strlcpy(buf, path, sizeof(buf));
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
545 av_strlcat(buf, pfname, sizeof(buf));
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
546
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
547 if (skinBPRead(buf, &item->Mask) != 0)
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
548 return 1;
32951
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
549
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
550 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] (button bitmap: %lux%lu)\n", item->Mask.Width, item->Mask.Height);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
551 }
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
552
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
553 return 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
554 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
555
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
556 // vpotmeter=button,bwidth,bheight,phases,numphases,default,x,y,width,height,message
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
557 static int item_vpotmeter(char *in)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
558 {
33056
1c2070f0abca Prevent a segmentation fault.
ib
parents: 33055
diff changeset
559 int r;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
560 wItem *item;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
561
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
562 r = item_hpotmeter(in);
33056
1c2070f0abca Prevent a segmentation fault.
ib
parents: 33055
diff changeset
563
1c2070f0abca Prevent a segmentation fault.
ib
parents: 33055
diff changeset
564 if (r == 0) {
33057
0d6b33bc311e Cosmetic: Adjust indent.
ib
parents: 33056
diff changeset
565 item = &currWinItems[*currWinItemIdx];
0d6b33bc311e Cosmetic: Adjust indent.
ib
parents: 33056
diff changeset
566 item->type = itVPotmeter;
33056
1c2070f0abca Prevent a segmentation fault.
ib
parents: 33055
diff changeset
567 }
33053
f64d41dac10b Cosmetic: Separate return statement with newline.
ib
parents: 33052
diff changeset
568
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
569 return r;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
570 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
571
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
572 // potmeter=phases,numphases,default,x,y,width,height,message
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
573 static int item_potmeter(char *in)
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
574 {
33093
3de646fca03b Cosmetic: Rearrange variable declarations to match parameters.
ib
parents: 33092
diff changeset
575 unsigned char phfname[256];
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
576 unsigned char buf[512];
33093
3de646fca03b Cosmetic: Rearrange variable declarations to match parameters.
ib
parents: 33092
diff changeset
577 int ph, d, x, y, w, h, message;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
578 wItem *item;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
579
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
580 if (!window_item("potmeter"))
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
581 return 1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
582
33058
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
583 if (in_window("sub"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
584 return 1;
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
585 if (in_window("menu"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
586 return 1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
587
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
588 cutItem(in, phfname, ',', 0);
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
589 ph = cutItemToInt(in, ',', 1);
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
590 d = cutItemToInt(in, ',', 2);
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
591 x = cutItemToInt(in, ',', 3);
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
592 y = cutItemToInt(in, ',', 4);
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
593 w = cutItemToInt(in, ',', 5);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
594 h = cutItemToInt(in, ',', 6);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
595 cutItem(in, buf, ',', 7);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
596
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
597 message = appFindMessage(buf);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
598
33069
4b7d4905862c Rename error message and add missing checks.
ib
parents: 33067
diff changeset
599 if (message == -1) {
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
600 skin_error(MSGTR_SKIN_UnknownMessage, buf);
33069
4b7d4905862c Rename error message and add missing checks.
ib
parents: 33067
diff changeset
601 return 1;
4b7d4905862c Rename error message and add missing checks.
ib
parents: 33067
diff changeset
602 }
4b7d4905862c Rename error message and add missing checks.
ib
parents: 33067
diff changeset
603
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
604 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] potmeter image: %s %d,%d %dx%d\n", phfname, x, y, w, h);
32951
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
605 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] numphases: %d, default: %d%%\n", ph, d);
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
606 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] message: %s (#%d)\n", buf, message);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
607
33098
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
608 item = next_item();
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
609
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
610 if (!item)
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
611 return 1;
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
612
33101
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
613 item->type = itPotmeter;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
614 item->x = x;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
615 item->y = y;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
616 item->width = w;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
617 item->height = h;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
618 item->numphases = ph;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
619 item->value = (float)d;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
620 item->message = message;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
621
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
622 item->Bitmap.Image = NULL;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
623
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
624 if (strcmp(phfname, "NULL") != 0) {
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
625 av_strlcpy(buf, path, sizeof(buf));
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
626 av_strlcat(buf, phfname, sizeof(buf));
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
627
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
628 if (skinBPRead(buf, &item->Bitmap) != 0)
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
629 return 1;
32951
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
630
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
631 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] (bitmap: %lux%lu)\n", item->Bitmap.Width, item->Bitmap.Height);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
632 }
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
633
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
634 return 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
635 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
636
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
637 // font=fontfile
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
638 static int item_font(char *in)
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
639 {
33092
83052a4ac698 Use more appropriate name for variable and reduce it to reasonable size.
ib
parents: 33091
diff changeset
640 char fnt[256];
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
641
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
642 if (!window_item("font"))
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
643 return 1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
644
33058
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
645 if (in_window("sub"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
646 return 1;
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
647 if (in_window("menu"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
648 return 1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
649
33092
83052a4ac698 Use more appropriate name for variable and reduce it to reasonable size.
ib
parents: 33091
diff changeset
650 cutItem(in, fnt, ',', 0); // Note: This seems needless but isn't for compatibility
83052a4ac698 Use more appropriate name for variable and reduce it to reasonable size.
ib
parents: 33091
diff changeset
651 // reasons with a meanwhile depreciated second parameter.
33099
0b17f6bed6fc Don't needlessly store font information in the wItems array
ib
parents: 33098
diff changeset
652 switch (fntRead(path, fnt)) {
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
653 case -1:
33097
533c658a18da Revise font related error messages.
ib
parents: 33096
diff changeset
654 skin_error(MSGTR_SKIN_NotEnoughMemory);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
655 return 1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
656
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
657 case -2:
33022
9abc0dbd6314 Cosmetic: Rename ERRORMESSAGE() skin_error().
ib
parents: 32980
diff changeset
658 skin_error(MSGTR_SKIN_FONT_TooManyFontsDeclared);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
659 return 1;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
660
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
661 case -3:
33022
9abc0dbd6314 Cosmetic: Rename ERRORMESSAGE() skin_error().
ib
parents: 32980
diff changeset
662 skin_error(MSGTR_SKIN_FONT_FontFileNotFound);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
663 return 1;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
664
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
665 case -4:
33022
9abc0dbd6314 Cosmetic: Rename ERRORMESSAGE() skin_error().
ib
parents: 32980
diff changeset
666 skin_error(MSGTR_SKIN_FONT_FontImageNotFound);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
667 return 1;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
668 }
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
669
33092
83052a4ac698 Use more appropriate name for variable and reduce it to reasonable size.
ib
parents: 33091
diff changeset
670 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] font: %s (#%d)\n", fnt, fntFindID(fnt));
32951
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
671
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
672 return 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
673 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
674
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
675 // slabel=x,y,fontfile,"text"
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
676 static int item_slabel(char *in)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
677 {
33094
2faf1c3ded5d Cosmetic: Rearrange variable declarations to match parameters.
ib
parents: 33093
diff changeset
678 int x, y, id;
33090
db699b367260 Reduce resp. increase arrays to reasonable size.
ib
parents: 33089
diff changeset
679 char fnt[256];
33094
2faf1c3ded5d Cosmetic: Rearrange variable declarations to match parameters.
ib
parents: 33093
diff changeset
680 char txt[256];
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
681 wItem *item;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
682
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
683 if (!window_item("slabel"))
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
684 return 1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
685
33058
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
686 if (in_window("sub"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
687 return 1;
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
688 if (in_window("menu"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
689 return 1;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
690
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
691 x = cutItemToInt(in, ',', 0);
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
692 y = cutItemToInt(in, ',', 1);
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
693 cutItem(in, fnt, ',', 2);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
694 cutItem(in, txt, ',', 3);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
695 cutItem(txt, txt, '"', 1);
32951
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
696
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
697 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] slabel: \"%s\"\n", txt);
32951
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
698 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] pos: %d,%d\n", x, y);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
699
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
700 id = fntFindID(fnt);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
701
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
702 if (id < 0) {
33097
533c658a18da Revise font related error messages.
ib
parents: 33096
diff changeset
703 skin_error(MSGTR_SKIN_FONT_NonExistentFont, fnt);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
704 return 1;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
705 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
706
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
707 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] font: %s (#%d)\n", fnt, id);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
708
33098
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
709 item = next_item();
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
710
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
711 if (!item)
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
712 return 1;
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
713
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
714 item->type = itSLabel;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
715 item->x = x;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
716 item->y = y;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
717 item->width = -1;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
718 item->height = -1;
33101
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
719 item->fontid = id;
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
720 item->label = strdup(txt);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
721
32979
4905f5a87357 Replace some awkward and unnecessary usages of strlen().
ib
parents: 32958
diff changeset
722 if (!item->label) {
33097
533c658a18da Revise font related error messages.
ib
parents: 33096
diff changeset
723 skin_error(MSGTR_SKIN_NotEnoughMemory);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
724 return 1;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
725 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
726
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
727 return 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
728 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
729
32910
f34e21c5dc2f Improve documentation on dlabel.
ib
parents: 32893
diff changeset
730 // dlabel=x,y,width,align,fontfile,"text"
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
731 static int item_dlabel(char *in)
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
732 {
33094
2faf1c3ded5d Cosmetic: Rearrange variable declarations to match parameters.
ib
parents: 33093
diff changeset
733 int x, y, w, a, id;
33090
db699b367260 Reduce resp. increase arrays to reasonable size.
ib
parents: 33089
diff changeset
734 char fnt[256];
33094
2faf1c3ded5d Cosmetic: Rearrange variable declarations to match parameters.
ib
parents: 33093
diff changeset
735 char txt[256];
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
736 wItem *item;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
737
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
738 if (!window_item("dlabel"))
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
739 return 1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
740
33058
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
741 if (in_window("sub"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
742 return 1;
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
743 if (in_window("menu"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
744 return 1;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
745
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
746 x = cutItemToInt(in, ',', 0);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
747 y = cutItemToInt(in, ',', 1);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
748 w = cutItemToInt(in, ',', 2);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
749 a = cutItemToInt(in, ',', 3);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
750 cutItem(in, fnt, ',', 4);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
751 cutItem(in, txt, ',', 5);
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
752 cutItem(txt, txt, '"', 1);
32951
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
753
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
754 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] dlabel: \"%s\"\n", txt);
32951
c11e65fcb818 Clean up debug messages.
ib
parents: 32950
diff changeset
755 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] pos: %d,%d\n", x, y);
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
756 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] width: %d, align: %d\n", w, a);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
757
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
758 id = fntFindID(fnt);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
759
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
760 if (id < 0) {
33097
533c658a18da Revise font related error messages.
ib
parents: 33096
diff changeset
761 skin_error(MSGTR_SKIN_FONT_NonExistentFont, fnt);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
762 return 1;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
763 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
764
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
765 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] font: %s (#%d)\n", fnt, id);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
766
33098
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
767 item = next_item();
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
768
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
769 if (!item)
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
770 return 1;
b61dff4c9a35 Prevent an out-of-bounds array access.
ib
parents: 33097
diff changeset
771
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
772 item->type = itDLabel;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
773 item->x = x;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
774 item->y = y;
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
775 item->width = w;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
776 item->height = -1;
33101
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
777 item->fontid = id;
930338bde973 Order member assignments according to their definition in the structure.
ib
parents: 33100
diff changeset
778 item->align = a;
33089
d22b498bb573 Cosmetic: Use more appropriate variable names.
ib
parents: 33088
diff changeset
779 item->label = strdup(txt);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
780
32979
4905f5a87357 Replace some awkward and unnecessary usages of strlen().
ib
parents: 32958
diff changeset
781 if (!item->label) {
33097
533c658a18da Revise font related error messages.
ib
parents: 33096
diff changeset
782 skin_error(MSGTR_SKIN_NotEnoughMemory);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
783 return 1;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
784 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
785
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
786 return 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
787 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
788
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
789 // decoration=enable|disable
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
790 static int item_decoration(char *in)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
791 {
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
792 if (!window_item("decoration"))
33054
ed66afc0b06c Replace macros to check whether a command is allowed by functions.
ib
parents: 33053
diff changeset
793 return 1;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
794
33058
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
795 if (in_window("sub"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
796 return 1;
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
797 if (in_window("playbar"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
798 return 1;
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
799 if (in_window("menu"))
b8374f9dc87b Replace macro by function.
ib
parents: 33057
diff changeset
800 return 1;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
801
33086
1b9f989855f3 Remove needless variable.
ib
parents: 33084
diff changeset
802 strlower(in);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
803
33086
1b9f989855f3 Remove needless variable.
ib
parents: 33084
diff changeset
804 if (strcmp(in, "enable") != 0 && strcmp(in, "disable") != 0) {
1b9f989855f3 Remove needless variable.
ib
parents: 33084
diff changeset
805 skin_error(MSGTR_SKIN_UnknownParameter, in);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
806 return 1;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
807 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
808
33087
ca17f301336d Simplify parameter analysis.
ib
parents: 33086
diff changeset
809 skin->mainDecoration = (strcmp(in, "enable") == 0);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
810
33086
1b9f989855f3 Remove needless variable.
ib
parents: 33084
diff changeset
811 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] decoration: %s\n", in);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
812
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
813 return 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
814 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
815
32878
afa6f80b0867 Limit scope of internally used skinItem array.
ib
parents: 32877
diff changeset
816 static _item skinItem[] = {
33106
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
817 { "background", item_background },
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
818 { "base", item_base },
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
819 { "button", item_button },
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
820 { "decoration", item_decoration },
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
821 { "dlabel", item_dlabel },
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
822 { "end", item_end },
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
823 { "font", item_font },
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
824 { "hpotmeter", item_hpotmeter },
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
825 { "menu", item_menu },
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
826 { "potmeter", item_potmeter },
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
827 { "section", item_section },
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
828 { "selected", item_selected },
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
829 { "slabel", item_slabel },
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
830 { "vpotmeter", item_vpotmeter },
e9e5ee3a1a82 Cosmetic: Rename cmd functions item.
ib
parents: 33105
diff changeset
831 { "window", item_window }
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
832 };
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
833
33081
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
834 static char *setname(char *dir, char *sname)
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
835 {
33081
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
836 static char skinfname[512];
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
837
33081
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
838 av_strlcpy(skinfname, dir, sizeof(skinfname));
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
839 av_strlcat(skinfname, "/", sizeof(skinfname));
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
840 av_strlcat(skinfname, sname, sizeof(skinfname));
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
841 av_strlcat(skinfname, "/", sizeof(skinfname));
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
842 av_strlcpy(path, skinfname, sizeof(path));
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
843 av_strlcat(skinfname, "skin", sizeof(skinfname));
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
844
33081
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
845 return skinfname;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
846 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
847
33081
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
848 int skinRead(char *sname)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
849 {
33081
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
850 char *skinfname;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
851 FILE *skinFile;
33081
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
852 unsigned char line[256];
33075
c7cfa1a653c8 Cosmetic: Rename command item.
ib
parents: 33073
diff changeset
853 unsigned char item[32];
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
854 unsigned char param[256];
32944
27a98940e3aa Use FF_ARRAY_ELEMS() rather than a separate constant.
ib
parents: 32937
diff changeset
855 unsigned int i;
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
856
33081
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
857 skinfname = setname(skinDirInHome, sname);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
858
33081
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
859 if ((skinFile = fopen(skinfname, "rt")) == NULL) {
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
860 skinfname = setname(skinMPlayerDir, sname);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
861
33081
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
862 if ((skinFile = fopen(skinfname, "rt")) == NULL) {
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
863 mp_msg(MSGT_GPLAYER, MSGL_ERR, MSGTR_SKIN_SkinFileNotFound, skinfname);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
864 return -1;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
865 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
866 }
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
867
33081
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
868 mp_dbg(MSGT_GPLAYER, MSGL_DBG2, "[skin] configuration file: %s\n", skinfname);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
869
32932
e95ec1b2feea Cosmetic: Rename appInitStruct() to appFreeStruct().
ib
parents: 32931
diff changeset
870 appFreeStruct();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
871
33078
c84938655cf4 Reset skin pointer and window name.
ib
parents: 33077
diff changeset
872 skin = NULL;
c84938655cf4 Reset skin pointer and window name.
ib
parents: 33077
diff changeset
873 currWinName[0] = 0;
33079
25c467321c98 Cosmetic: Adjust indent.
ib
parents: 33078
diff changeset
874 linenumber = 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
875
33081
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
876 while (fgets(line, sizeof(line), skinFile)) {
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
877 linenumber++;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
878
33081
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
879 line[strcspn(line, "\n\r")] = 0; // remove any kind of newline, if any
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
880 strswap(line, '\t', ' ');
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
881 trim(line);
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
882 decomment(line);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
883
33081
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
884 if (!*line)
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
885 continue;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
886
33081
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
887 cutItem(line, item, '=', 0);
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
888 cutItem(line, param, '=', 1);
33075
c7cfa1a653c8 Cosmetic: Rename command item.
ib
parents: 33073
diff changeset
889 strlower(item);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
890
33076
27999e9c1b3f Leave loop after item function has been found and called.
ib
parents: 33075
diff changeset
891 for (i = 0; i < FF_ARRAY_ELEMS(skinItem); i++) {
27999e9c1b3f Leave loop after item function has been found and called.
ib
parents: 33075
diff changeset
892 if (!strcmp(item, skinItem[i].name)) {
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
893 if (skinItem[i].func(param) != 0)
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
894 return -2;
33076
27999e9c1b3f Leave loop after item function has been found and called.
ib
parents: 33075
diff changeset
895 else
27999e9c1b3f Leave loop after item function has been found and called.
ib
parents: 33075
diff changeset
896 break;
27999e9c1b3f Leave loop after item function has been found and called.
ib
parents: 33075
diff changeset
897 }
27999e9c1b3f Leave loop after item function has been found and called.
ib
parents: 33075
diff changeset
898 }
33077
706f36627399 Add a check for unknown items.
ib
parents: 33076
diff changeset
899
706f36627399 Add a check for unknown items.
ib
parents: 33076
diff changeset
900 if (i == FF_ARRAY_ELEMS(skinItem)) {
706f36627399 Add a check for unknown items.
ib
parents: 33076
diff changeset
901 skin_error(MSGTR_SKIN_UNKNOWN_ITEM, item);
706f36627399 Add a check for unknown items.
ib
parents: 33076
diff changeset
902 return -2;
706f36627399 Add a check for unknown items.
ib
parents: 33076
diff changeset
903 }
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
904 }
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
905
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
906 if (linenumber == 0) {
33081
d217fdc83e63 (Almost entirely) cosmetic: Use more appropriate variable names.
ib
parents: 33079
diff changeset
907 mp_msg(MSGT_GPLAYER, MSGL_ERR, MSGTR_SKIN_SkinFileNotReadable, skinfname);
32873
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
908 return -1;
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
909 }
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
910
cf385b1901cb Cosmetic: Format to MPlayer coding style.
ib
parents: 32856
diff changeset
911 return 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
912 }