Mercurial > mplayer.hg
annotate libass/ass_utils.c @ 25303:9139c368a493
Ignore heading spaces when parsing command.
author | ulion |
---|---|
date | Mon, 10 Dec 2007 01:46:02 +0000 |
parents | ca7c2ec2c66b |
children | e8289d9a4fec |
rev | line source |
---|---|
20008
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
1 // -*- c-basic-offset: 8; indent-tabs-mode: t -*- |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
2 // vim:ts=8:sw=8:noet:ai: |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
3 /* |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
4 Copyright (C) 2006 Evgeniy Stepanov <eugeni.stepanov@gmail.com> |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
5 |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
6 This program is free software; you can redistribute it and/or modify |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
7 it under the terms of the GNU General Public License as published by |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
8 the Free Software Foundation; either version 2 of the License, or |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
9 (at your option) any later version. |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
10 |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
11 This program is distributed in the hope that it will be useful, |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
12 but WITHOUT ANY WARRANTY; without even the implied warranty of |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
14 GNU General Public License for more details. |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
15 |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
16 You should have received a copy of the GNU General Public License |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
17 along with this program; if not, write to the Free Software |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
18 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
19 */ |
fa122b7c71c6
Add copyright notice and vim/emacs comments to libass and vf_ass.c.
eugeni
parents:
19405
diff
changeset
|
20 |
18937 | 21 #include "config.h" |
22 | |
23 #include <stdlib.h> | |
19405 | 24 #include <inttypes.h> |
18937 | 25 |
21026
d138463e820b
Collect all includes of mplayer headers in libass in a single file (mputils.h).
eugeni
parents:
20629
diff
changeset
|
26 #include "mputils.h" |
18937 | 27 #include "ass_utils.h" |
28 | |
29 int mystrtoi(char** p, int base, int* res) | |
30 { | |
31 char* start = *p; | |
32 *res = strtol(*p, p, base); | |
33 if (*p != start) return 1; | |
34 else return 0; | |
35 } | |
36 | |
37 int mystrtou32(char** p, int base, uint32_t* res) | |
38 { | |
39 char* start = *p; | |
40 *res = strtoll(*p, p, base); | |
41 if (*p != start) return 1; | |
42 else return 0; | |
43 } | |
44 | |
45 int mystrtod(char** p, double* res) | |
46 { | |
47 char* start = *p; | |
48 *res = strtod(*p, p); | |
49 if (*p != start) return 1; | |
50 else return 0; | |
51 } | |
52 | |
53 int strtocolor(char** q, uint32_t* res) | |
54 { | |
55 uint32_t color = 0; | |
56 int result; | |
57 char* p = *q; | |
58 | |
59 if (*p == '&') ++p; | |
20629
e8885ec63928
Introduce MSGT_ASS, use it for all libass messages.
eugeni
parents:
20503
diff
changeset
|
60 else mp_msg(MSGT_ASS, MSGL_DBG2, "suspicious color format: \"%s\"\n", p); |
18937 | 61 |
19003 | 62 if (*p == 'H' || *p == 'h') { |
18937 | 63 ++p; |
64 result = mystrtou32(&p, 16, &color); | |
65 } else { | |
19003 | 66 result = mystrtou32(&p, 0, &color); |
18937 | 67 } |
68 | |
69 { | |
70 unsigned char* tmp = (unsigned char*)(&color); | |
71 unsigned char b; | |
72 b = tmp[0]; tmp[0] = tmp[3]; tmp[3] = b; | |
73 b = tmp[1]; tmp[1] = tmp[2]; tmp[2] = b; | |
74 } | |
75 if (*p == '&') ++p; | |
76 *q = p; | |
77 | |
78 *res = color; | |
79 return result; | |
80 } | |
81 |