~ubuntu-branches/ubuntu/trusty/regionset/trusty

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/*
 * Some functions for UDF handling, originally part of dvd_disc_20000215.tar.gz
 * from convergence.
 *
 * cleanups (remove every with a relation to CSS)
 *   by Mirko Dölle <cooper@linvdr.org>
 */ 
#ifndef DVD_UDF_H
#define DVD_UDF_H

#define DVD_UDF_VERSION 20000215


/***********************************************************************************/
/* The length of one Logical Block of a DVD Video                                  */
/***********************************************************************************/
#define DVD_VIDEO_LB_LEN 2048

/***********************************************************************************/
/* reads Logical Block of the disc or image                                        */
/*   lb_number: disc-absolute logical block number                                 */
/*   block_count: number of 2048 byte blocks to read                               */
/*   data: pointer to enough allocated memory                                      */
/*   returns number of read bytes on success, 0 or negative error number on error  */
/***********************************************************************************/
int UDFReadLB(unsigned long int lb_number, unsigned int block_count, unsigned char *data);

/***********************************************************************************/
/* looks for a file on the UDF disc/imagefile                                      */
/*   filename: absolute pathname on the UDF filesystem, starting with '/'          */
/*   filesize will be set to the size of the file in bytes, on success             */
/*   returns absolute LB number, or 0 on error                                     */
/***********************************************************************************/
unsigned long int UDFFindFile(char *filename, unsigned long int *filesize);


/************************************/
/* DVD Copy Management:             */
/* RPC - Region Playback Control    */
/************************************/

/***********************************************************************************/
/* Query RPC status of the drive                                                   */
/* type: 0=NONE (no drive region setting)                                          */
/*       1=SET (drive region is set                                                */
/*       2=LAST CHANCE (drive region is set, only one change remains)              */
/*       3=PERM (region set permanently, may be reset by vendor)                   */
/* vra: number of vendor resets available                                          */
/* ucca: number of user controlled changes available                               */
/* region_mask: the bit of the drive's region is set to 0, all other 7 bits to 1   */
/* rpc_scheme: 0=unknown, 1=RPC Phase II, others reserved                          */
/* returns 0 on success, <0 on error                                               */
/***********************************************************************************/
int UDFRPCGet(int *type, int *vra, int *ucca, int *region_mask, int *rpc_scheme);

/***********************************************************************************/
/* Set new Region for drive                                                        */
/* region_mask: the bit of the new drive's region is set to 0, all other 7 bits to 1 */
/***********************************************************************************/
int UDFRPCSet(int region_mask);

/***********************************************************************************/
/* opens block device or image file                                                */
/*   filename: path to the DVD ROM block device or to the image file in UDF format */
/*   returns fileno() of the file on success, or -1 on error                       */
/***********************************************************************************/
int UDFOpenDisc(char *filename);

/***********************************************************************************/
/* closes previously opened block device or image file                             */
/*   returns 0 on success, or -1 on error                                          */
/***********************************************************************************/
int UDFCloseDisc(void);

#endif /* DVD_UDF_H */