X-Git-Url: https://git.distorted.org.uk/~mdw/dvdrip/blobdiff_plain/00a5be1d63549628d56e33118d54f1a0f650b312..75711dd7be0d6814bc7060d9f7c90f74fafb90c8:/lib.h diff --git a/lib.h b/lib.h index c3ed607..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 @@ -65,11 +66,19 @@ extern const char *prog; extern void set_prog(const char *p); extern void vmoan(const char *fmt, va_list ap); +extern void vmoan_syserr(int err, const char *fmt, va_list ap); extern PRINTF_LIKE(1, 2) void moan(const char *fmt, ...); +extern PRINTF_LIKE(2, 3) void moan_syserr(int err, const char *fmt, ...); 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); @@ -77,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; @@ -90,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;