libdvdread 7.0.1
dvd_reader.h
1/*
2 * Copyright (C) 2001, 2002 Billy Biggs <vektor@dumbterm.net>,
3 * Håkan Hjort <d95hjort@dtek.chalmers.se>,
4 * Björn Englund <d4bjorn@dtek.chalmers.se>
5 *
6 * This file is part of libdvdread.
7 *
8 * libdvdread is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * libdvdread is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License along
19 * with libdvdread; if not, write to the Free Software Foundation, Inc.,
20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 */
22
23#ifndef LIBDVDREAD_DVD_READER_H
24#define LIBDVDREAD_DVD_READER_H
25
26#ifdef _MSC_VER
27#include <config.h>
28
29#include <stdio.h>
30#include <stdlib.h>
31#endif
32
33#include <sys/types.h>
34#include <inttypes.h>
35#include <stdarg.h>
36
37#ifdef _MSC_VER
38typedef ptrdiff_t ssize_t;
39#endif
40
41#include <dvdread/attributes.h>
42
49
53#include <dvdread/version.h>
54
58#define DVD_VIDEO_LB_LEN 2048
59
63#define MAX_UDF_FILE_NAME_LEN 2048
64
65#ifdef __cplusplus
66extern "C" {
67#endif
68
72typedef struct dvd_reader_s dvd_reader_t;
73typedef struct dvd_reader_device_s dvd_reader_device_t;
74
78typedef struct dvd_file_s dvd_file_t;
79
81{
82 int ( *pf_seek ) ( void *p_stream, uint64_t i_pos);
83 int ( *pf_read ) ( void *p_stream, void* buffer, int i_read);
84 int ( *pf_readv ) ( void *p_stream, void *p_iovec, int i_blocks);
85};
87
96typedef enum
97{
98 DVD_LOGGER_LEVEL_INFO,
99 DVD_LOGGER_LEVEL_ERROR,
100 DVD_LOGGER_LEVEL_WARN,
101 DVD_LOGGER_LEVEL_DEBUG,
102} dvd_logger_level_t;
103
104typedef struct
105{
106 void ( *pf_log ) ( void *, dvd_logger_level_t, const char *, va_list );
108
112typedef struct {
113 off_t size;
115 off_t parts_size[9];
116} dvd_stat_t;
117
145DVDREAD_API dvd_reader_t *DVDOpen( const char * );
146DVDREAD_API dvd_reader_t *DVDOpenStream( void *, dvd_reader_stream_cb * );
147
160DVDREAD_API dvd_reader_t *DVDOpen2( void *, const dvd_logger_cb *, const char *);
161DVDREAD_API dvd_reader_t *DVDOpenStream2( void *, const dvd_logger_cb *, dvd_reader_stream_cb *);
162
163/* same as the functions above, but with the dvd_a flag passed to dvdopencommon*/
164DVDREAD_API dvd_reader_t *DVDOpenAudio( void *, const dvd_logger_cb *, const char *);
165DVDREAD_API dvd_reader_t *DVDOpenStreamAudio( void *, const dvd_logger_cb *, dvd_reader_stream_cb *);
166
167
177DVDREAD_API void DVDClose( dvd_reader_t * );
178
182typedef enum {
183 DVD_READ_INFO_FILE,
184 DVD_READ_INFO_BACKUP_FILE,
185 DVD_READ_MENU_VOBS,
186 DVD_READ_TITLE_VOBS,
189 DVD_READ_SAMG_INFO, /* for the AUDIO_PP.IFO */
190} dvd_read_domain_t;
191
217DVDREAD_API int DVDFileStat(dvd_reader_t *, int, dvd_read_domain_t, dvd_stat_t *);
218
232DVDREAD_API dvd_file_t *DVDOpenFile( dvd_reader_t *, int, dvd_read_domain_t );
233
241DVDREAD_API void DVDCloseFile( dvd_file_t * );
242
258DVDREAD_API ssize_t DVDReadBlocks( dvd_file_t *, int, size_t, unsigned char * );
259
272DVDREAD_API int32_t DVDFileSeek( dvd_file_t *, int32_t );
273
286DVDREAD_API ssize_t DVDReadBytes( dvd_file_t *, void *, size_t );
287
296DVDREAD_API ssize_t DVDFileSize( dvd_file_t * );
297
311DVDREAD_API int DVDDiscID( dvd_reader_t *, unsigned char * );
312
331DVDREAD_API int DVDUDFVolumeInfo( dvd_reader_t *, char *, unsigned int,
332 unsigned char *, unsigned int );
333
334DVDREAD_API int DVDFileSeekForce( dvd_file_t *, int offset, int force_size);
335
357DVDREAD_API int DVDISOVolumeInfo( dvd_reader_t *, char *, unsigned int,
358 unsigned char *, unsigned int );
359
372DVDREAD_API int DVDUDFCacheLevel( dvd_reader_t *, int );
373
374#ifdef __cplusplus
375};
376#endif
377#endif /* LIBDVDREAD_DVD_READER_H */
Definition dvd_reader.h:105
Definition dvd_reader.h:81
Definition dvd_reader.h:112
off_t size
Definition dvd_reader.h:113
off_t parts_size[9]
Definition dvd_reader.h:115
int nr_parts
Definition dvd_reader.h:114