a0fe4ca87b71193b76cbefd9c3ea325e38238613
[debian/cdck.git] / src / lib_main.h
1 /*
2  * $RCSfile: lib_main.h,v $
3  * $Author: swaj $
4  * $Revision: 1.5 $
5  */
6
7
8 #ifndef __LIB_MAIN_H_
9 #define __LIB_MAIN_H_ 1
10
11
12 #define DEFAULT_CDROM_DEV "/dev/cdrom"
13 #define FILE_MAX 1024
14 #define ERR_STR_MAX 512
15 #define DEFAULT_PLOT_FILE "cdck-plot.dat"
16 #define SECTOR_SIZE 2048
17 #define SECTOR_ERROR (-10)
18
19
20 class Ccdrom {
21
22  public:
23         Ccdrom ();
24         Ccdrom (const char *a_cdrom_dev);
25         ~Ccdrom();
26
27         const char * Error(void);
28         int ReadTOC();
29         void EnableInfo(bool a_enable_info);
30
31         int OpenPlotFile (const char *plotfile = DEFAULT_PLOT_FILE);
32         void WritePlotData();
33         void ClosePlotFile ();
34
35         int ReadCD ();
36         void DeallocateTimings();
37         void AnalyzeResults ();
38
39  private:
40         void Reset();
41         bool enable_info;
42         int fd;
43         char cdrom_dev[FILE_MAX];
44         char last_err[ERR_STR_MAX];
45
46         char toc_header[2];
47
48         int sectors_tot;
49         int disc_status;
50
51         FILE *pf;
52         int *timings;
53
54         void * smalloc (size_t size);
55         void sfree (void*& ptr);
56         void sfree (int*& ptr);
57
58         void read_super(int offset);
59         void read_super2(int offset);
60         void read_super3(int offset);
61         void read_super4(int offset);
62         void read_super5(int offset);
63         int is_isofs(void);
64         int is_hs(void);
65         int is_cdi(void);
66         int is_cd_rtos(void);
67         int is_bridge(void);
68         int is_xa(void);
69         int is_cdtv(void);
70         int is_photocd(void);
71         int is_hfs(void);
72         int is_ext2(void);
73         int is_ufs(void);
74         int is_bootable(void);
75         int is_video_cdi(void);
76         int get_size(void);
77         int guess_filesystem(int start_session);
78
79         char buffer[2048];
80         char buffer2[2048];
81         char buffer3[2048];
82         char buffer4[2048];
83         char buffer5[2048];
84
85         int isofs_size;
86 };
87
88
89 #endif /* __LIB_MAIN_H_ */
90
91
92
93 /*
94  *  __END__
95  */