1/***
2 * CopyPolicy: GNU Lesser General Public License 2.1 applies
3 * Copyright (C) by Monty (xiphmont@mit.edu)
4 *
5 ***/
6
7#ifndef _CDROM_PARANOIA_
8#define _CDROM_PARANOIA_
9
10#define CD_FRAMEWORDS (CD_FRAMESIZE_RAW/2)
11
12#define PARANOIA_CB_READ 0
13#define PARANOIA_CB_VERIFY 1
14#define PARANOIA_CB_FIXUP_EDGE 2
15#define PARANOIA_CB_FIXUP_ATOM 3
16#define PARANOIA_CB_SCRATCH 4
17#define PARANOIA_CB_REPAIR 5
18#define PARANOIA_CB_SKIP 6
19#define PARANOIA_CB_DRIFT 7
20#define PARANOIA_CB_BACKOFF 8
21#define PARANOIA_CB_OVERLAP 9
22#define PARANOIA_CB_FIXUP_DROPPED 10
23#define PARANOIA_CB_FIXUP_DUPED 11
24#define PARANOIA_CB_READERR 12
25#define PARANOIA_CB_CACHEERR 13
26
27#define PARANOIA_MODE_FULL 0xff
28#define PARANOIA_MODE_DISABLE 0
29
30#define PARANOIA_MODE_VERIFY 1
31#define PARANOIA_MODE_FRAGMENT 2
32#define PARANOIA_MODE_OVERLAP 4
33#define PARANOIA_MODE_SCRATCH 8
34#define PARANOIA_MODE_REPAIR 16
35#define PARANOIA_MODE_NEVERSKIP 32
36
37#ifndef CDP_COMPILE
38typedef void cdrom_paranoia;
39#endif
40
41#include <stdio.h>
42
43extern char *paranoia_version();
44extern cdrom_paranoia *paranoia_init(cdrom_drive *d);
45extern void paranoia_modeset(cdrom_paranoia *p,int mode);
46extern long paranoia_seek(cdrom_paranoia *p,long seek,int mode);
47extern int16_t *paranoia_read(cdrom_paranoia *p,void(*callback)(long,int));
48extern int16_t *paranoia_read_limited(cdrom_paranoia *p,void(*callback)(long,int),int maxretries);
49extern void paranoia_free(cdrom_paranoia *p);
50extern void paranoia_overlapset(cdrom_paranoia *p,long overlap);
51extern int paranoia_cachemodel_size(cdrom_paranoia *p,int sectors);
52#endif
53