]> git.sesse.net Git - vlc/blob - extras/libdvdcss/libdvdcss.h
36bd7482442307847928e5637e315ebfc895db44
[vlc] / extras / libdvdcss / libdvdcss.h
1 /*****************************************************************************
2  * private.h: private DVD reading library data
3  *****************************************************************************
4  * Copyright (C) 1998-2001 VideoLAN
5  * $Id: libdvdcss.h,v 1.5 2001/07/25 00:23:40 sam Exp $
6  *
7  * Authors: Stéphane Borel <stef@via.ecp.fr>
8  *          Samuel Hocevar <sam@zoy.org>
9  *
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.
14  * 
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.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
23  *****************************************************************************/
24
25 /*****************************************************************************
26  * Needed headers
27  *****************************************************************************/
28 #include "css.h"
29
30 /*****************************************************************************
31  * The libdvdcss structure
32  *****************************************************************************/
33 struct dvdcss_s
34 {
35     /* File descriptor */
36     int i_fd;
37     int i_seekpos;
38
39     /* Decryption stuff */
40     css_t        css;
41     boolean_t    b_encrypted;
42     dvd_title_t *p_titles;
43
44     /* Error management */
45     char     *psz_error;
46     boolean_t b_errors;
47     boolean_t b_debug;
48
49 };
50
51 /*****************************************************************************
52  * Error management
53  *****************************************************************************/
54 #if defined( _WIN32 ) && defined( _MSC_VER )
55 #   define DVDCSS_ERROR( x ) fprintf( stderr, "libdvdcss error: %s\n", x );
56 #   define DVDCSS_DEBUG( x ) fprintf( stderr, "libdvdcss debug: %s\n", x );
57 #else
58 #   define DVDCSS_ERROR( x... ) fprintf( stderr, "libdvdcss error: %s\n", ##x );
59 #   define DVDCSS_DEBUG( x... ) fprintf( stderr, "libdvdcss debug: %s\n", ##x );
60 #endif
61
62 static __inline__ void _dvdcss_error( dvdcss_handle dvdcss, char *psz_string )
63 {
64     if( dvdcss->b_errors )
65     {
66         DVDCSS_ERROR( psz_string );
67     }
68
69     dvdcss->psz_error = psz_string;
70 }
71
72 static __inline__ void _dvdcss_debug( dvdcss_handle dvdcss, char *psz_string )
73 {
74     if( dvdcss->b_debug )
75     {
76         DVDCSS_DEBUG( psz_string );
77     }
78 }
79
80