SR_API int sr_parse_sizestring(const char *sizestring, uint64_t *size);
SR_API uint64_t sr_parse_timestring(const char *timestring);
SR_API gboolean sr_parse_boolstring(const char *boolstring);
+SR_API int sr_parse_period(const char *periodstr, struct sr_rational *r);
/*--- version.c -------------------------------------------------------------*/
return FALSE;
}
+
+SR_API int sr_parse_period(const char *periodstr, struct sr_rational *r)
+{
+ char *s;
+
+ r->p = strtoull(periodstr, &s, 10);
+ if (r->p == 0 && s == periodstr)
+ /* No digits found. */
+ return SR_ERR_ARG;
+
+ if (s && *s) {
+ while (*s == ' ')
+ s++;
+ if (!strcmp(s, "ns"))
+ r->q = 1000000000L;
+ else if (!strcmp(s, "us"))
+ r->q = 1000000;
+ else if (!strcmp(s, "ms"))
+ r->q = 1000;
+ else if (!strcmp(s, "s"))
+ r->q = 1;
+ else
+ /* Must have a time suffix. */
+ return SR_ERR_ARG;
+ }
+
+ return SR_OK;
+}
+
+