summaryrefslogtreecommitdiffstats
path: root/libass/ass_utils.c
diff options
context:
space:
mode:
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-07-07 18:26:51 +0000
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-07-07 18:26:51 +0000
commite15ae9a60043d8d9c1b110607c5059f13ca86421 (patch)
tree22b3b039cdc936ae7063c5fd0092c2c837292d0f /libass/ass_utils.c
parent2f2d8cef15ccef7f2e0882a482a4fa071054778d (diff)
downloadmpv-e15ae9a60043d8d9c1b110607c5059f13ca86421.tar.bz2
mpv-e15ae9a60043d8d9c1b110607c5059f13ca86421.tar.xz
Initial libass release (without mencoder support).
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18942 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libass/ass_utils.c')
-rw-r--r--libass/ass_utils.c63
1 files changed, 63 insertions, 0 deletions
diff --git a/libass/ass_utils.c b/libass/ass_utils.c
new file mode 100644
index 0000000000..7b381d3d38
--- /dev/null
+++ b/libass/ass_utils.c
@@ -0,0 +1,63 @@
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdint.h>
+#include <sys/time.h>
+#include <time.h>
+
+#include "mp_msg.h"
+#include "ass_utils.h"
+
+int mystrtoi(char** p, int base, int* res)
+{
+ char* start = *p;
+ *res = strtol(*p, p, base);
+ if (*p != start) return 1;
+ else return 0;
+}
+
+int mystrtou32(char** p, int base, uint32_t* res)
+{
+ char* start = *p;
+ *res = strtoll(*p, p, base);
+ if (*p != start) return 1;
+ else return 0;
+}
+
+int mystrtod(char** p, double* res)
+{
+ char* start = *p;
+ *res = strtod(*p, p);
+ if (*p != start) return 1;
+ else return 0;
+}
+
+int strtocolor(char** q, uint32_t* res)
+{
+ uint32_t color = 0;
+ int result;
+ char* p = *q;
+
+ if (*p == '&') ++p;
+ else mp_msg(MSGT_GLOBAL, MSGL_V, "bad color: \"%s\"\n", p);
+
+ if (*p == 'H') {
+ ++p;
+ result = mystrtou32(&p, 16, &color);
+ } else {
+ result = mystrtou32(&p, 10, &color);
+ }
+
+ {
+ unsigned char* tmp = (unsigned char*)(&color);
+ unsigned char b;
+ b = tmp[0]; tmp[0] = tmp[3]; tmp[3] = b;
+ b = tmp[1]; tmp[1] = tmp[2]; tmp[2] = b;
+ }
+ if (*p == '&') ++p;
+ *q = p;
+
+ *res = color;
+ return result;
+}
+