00001 #ifndef DVD_READER_H_INCLUDED
00002 #define DVD_READER_H_INCLUDED
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifdef _MSC_VER
00025 #include <config.h>
00026
00027 #include <stdio.h>
00028 #include <stdlib.h>
00029 #endif
00030
00031 #include <sys/types.h>
00032 #include <inttypes.h>
00033
00044 #define DVDREAD_VERSION 904
00045
00049 #define DVD_VIDEO_LB_LEN 2048
00050
00054 #define MAX_UDF_FILE_NAME_LEN 2048
00055
00056 #ifdef __cplusplus
00057 extern "C" {
00058 #endif
00059
00063 typedef struct dvd_reader_s dvd_reader_t;
00064
00068 typedef struct dvd_file_s dvd_file_t;
00069
00092 dvd_reader_t *DVDOpen( const char * );
00093
00103 void DVDClose( dvd_reader_t * );
00104
00108 typedef enum {
00109 DVD_READ_INFO_FILE,
00110 DVD_READ_INFO_BACKUP_FILE,
00111 DVD_READ_MENU_VOBS,
00112 DVD_READ_TITLE_VOBS
00115 } dvd_read_domain_t;
00116
00130 dvd_file_t *DVDOpenFile( dvd_reader_t *, int, dvd_read_domain_t );
00131
00139 void DVDCloseFile( dvd_file_t * );
00140
00156 ssize_t DVDReadBlocks( dvd_file_t *, int, size_t, unsigned char * );
00157
00170 int32_t DVDFileSeek( dvd_file_t *, int32_t );
00171
00184 ssize_t DVDReadBytes( dvd_file_t *, void *, size_t );
00185
00194 ssize_t DVDFileSize( dvd_file_t * );
00195
00209 int DVDDiscID( dvd_reader_t *, unsigned char * );
00210
00229 int DVDUDFVolumeInfo( dvd_reader_t *, char *, unsigned int,
00230 unsigned char *, unsigned int );
00231
00253 int DVDISOVolumeInfo( dvd_reader_t *, char *, unsigned int,
00254 unsigned char *, unsigned int );
00255
00268 int DVDUDFCacheLevel( dvd_reader_t *, int );
00269
00270 #ifdef __cplusplus
00271 };
00272 #endif
00273 #endif