X-Git-Url: https://git.distorted.org.uk/~mdw/dvdrip/blobdiff_plain/7ea9ce2be26022ace385842dd14ef8c21c105fb6..4144e376c9ecfba9fa3703312a2cf3c8f8620831:/lib.h diff --git a/lib.h b/lib.h index dc8d7de..ceba762 100644 --- a/lib.h +++ b/lib.h @@ -43,6 +43,7 @@ #define STRCMP(a, op, b) (strcmp((a), (b)) op 0) #define STRNCMP(a, op, b, n) (strncmp((a), (b), (n)) op 0) +#define MEMCMP(a, op, b, n) (memcmp((a), (b), (n)) op 0) #ifdef DEBUG # define D(x) x @@ -72,6 +73,12 @@ extern PRINTF_LIKE(1, 2) NORETURN void bail(const char *fmt, ...); extern PRINTF_LIKE(2, 3) NORETURN void bail_syserr(int err, const char *fmt, ...); +#define PNF_JUNK 1u +extern double parse_float(const char **p_inout, unsigned f, + double min, double max, const char *what); +extern long parse_int(const char **p_inout, unsigned f, + long min, long max, const char *what); + extern void sit(double t); extern void carefully_write(int fd, const void *buf, size_t sz); @@ -79,6 +86,7 @@ extern void open_file_on_demand(const char *file, FILE **fp_inout, const char *what); extern void check_write(FILE *fp, const char *what); extern void carefully_fclose(FILE *fp, const char *what); +extern off_t device_size(int fd, const char *file, int *blksz_out); enum { RAW, IFO, VOB, BUP }; typedef uint_least32_t ident; @@ -92,6 +100,11 @@ static inline unsigned id_part(ident id) { return ((id >> 16)&0x0ff); } #define MAXFNSZ (1 + 8 + 1 + 12 + 1) extern void store_filename(char *buf, ident id); +#define DIF_MUSTVOLINF 1u +#define DIF_MUSTIFOHASH 2u +#define MAXIDSZ 99 +extern int dvd_id(char *p, dvd_reader_t *dvd, unsigned f, const char *file); + struct banner_progress_item { struct progress_item _base; const char *msg;