1 /*****************************************************************************
2 * libdvdcss.h: private DVD reading library data
3 *****************************************************************************
4 * Copyright (C) 1998-2001 VideoLAN
7 * Authors: Stéphane Borel <stef@via.ecp.fr>
8 * Sam Hocevar <sam@zoy.org>
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
20 * You should have received a copy of the GNU General Public License along
21 * with libdvdcss; if not, write to the Free Software Foundation, Inc.,
22 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
23 *****************************************************************************/
27 /*****************************************************************************
28 * The libdvdcss structure
29 *****************************************************************************/
39 int ( * pf_seek
) ( dvdcss_t
, int );
40 int ( * pf_read
) ( dvdcss_t
, void *, int );
41 int ( * pf_readv
) ( dvdcss_t
, struct iovec
*, int );
43 /* Decryption stuff */
48 dvd_title_t
*p_titles
;
50 /* Key cache directory and pointer to the filename */
51 char psz_cachefile
[PATH_MAX
];
54 /* Error management */
61 char * p_readv_buffer
;
65 #if !defined(WIN32) && !defined(SYS_OS2)
70 /*****************************************************************************
71 * libdvdcss method: used like init flags
72 *****************************************************************************/
73 #define DVDCSS_METHOD_KEY 0
74 #define DVDCSS_METHOD_DISC 1
75 #define DVDCSS_METHOD_TITLE 2
77 /*****************************************************************************
78 * Functions used across the library
79 *****************************************************************************/
80 #define print_error(dvdcss,msg) _print_error(dvdcss,msg)
81 #if defined( _MSC_VER )
83 __forceinline
void print_debug(dvdcss_t dvdcss
, const char *msg
,...)
87 fprintf( stderr
, "libdvdcss debug: " );
88 va_start( args
, msg
);
89 vfprintf( stderr
, msg
, args
);
91 fprintf( stderr
, "\n" );
94 #define print_debug(dvdcss,msg,args...) \
95 if( dvdcss->b_debug ) \
97 fprintf( stderr, "libdvdcss debug: " ); \
98 fprintf( stderr, msg, ##args ); \
99 fprintf( stderr, "\n" ); \
103 void _print_error ( dvdcss_t
, char * );