annotate gui/skin/skin.c @ 35418:cedb0ba2b5c6

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