00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef LIBDVDREAD_DVD_READER_H
00024 #define LIBDVDREAD_DVD_READER_H
00025
00026 #ifdef _MSC_VER
00027 #include <config.h>
00028
00029 #include <stdio.h>
00030 #include <stdlib.h>
00031 #endif
00032
00033 #include <sys/types.h>
00034 #include <inttypes.h>
00035
00046 #define DVDREAD_VERSION 904
00047
00051 #define DVD_VIDEO_LB_LEN 2048
00052
00056 #define MAX_UDF_FILE_NAME_LEN 2048
00057
00058 #ifdef __cplusplus
00059 extern "C" {
00060 #endif
00061
00065 typedef struct dvd_reader_s dvd_reader_t;
00066
00070 typedef struct dvd_file_s dvd_file_t;
00071
00075 typedef struct {
00076 off_t size;
00077 int nr_parts;
00078 off_t parts_size[9];
00079 } dvd_stat_t;
00080
00103 dvd_reader_t *DVDOpen( const char * );
00104
00114 void DVDClose( dvd_reader_t * );
00115
00119 typedef enum {
00120 DVD_READ_INFO_FILE,
00121 DVD_READ_INFO_BACKUP_FILE,
00122 DVD_READ_MENU_VOBS,
00123 DVD_READ_TITLE_VOBS
00126 } dvd_read_domain_t;
00127
00153 int DVDFileStat(dvd_reader_t *, int, dvd_read_domain_t, dvd_stat_t *);
00154
00168 dvd_file_t *DVDOpenFile( dvd_reader_t *, int, dvd_read_domain_t );
00169
00177 void DVDCloseFile( dvd_file_t * );
00178
00194 ssize_t DVDReadBlocks( dvd_file_t *, int, size_t, unsigned char * );
00195
00208 int32_t DVDFileSeek( dvd_file_t *, int32_t );
00209
00222 ssize_t DVDReadBytes( dvd_file_t *, void *, size_t );
00223
00232 ssize_t DVDFileSize( dvd_file_t * );
00233
00247 int DVDDiscID( dvd_reader_t *, unsigned char * );
00248
00267 int DVDUDFVolumeInfo( dvd_reader_t *, char *, unsigned int,
00268 unsigned char *, unsigned int );
00269
00270 int DVDFileSeekForce( dvd_file_t *, int offset, int force_size);
00271
00293 int DVDISOVolumeInfo( dvd_reader_t *, char *, unsigned int,
00294 unsigned char *, unsigned int );
00295
00308 int DVDUDFCacheLevel( dvd_reader_t *, int );
00309
00310 #ifdef __cplusplus
00311 };
00312 #endif
00313 #endif