WinGui: Fix another instance of the Caliburn vs Json.net sillyness where objects...
[HandBrake.git] / libhb / dvd.h
blob55153381f0aeecf1ce8eee54da89b816b0eb58c0
1 /* dvd.h
3 Copyright (c) 2003-2015 HandBrake Team
4 This file is part of the HandBrake source code
5 Homepage: <http://handbrake.fr/>.
6 It may be used under the terms of the GNU General Public License v2.
7 For full terms see the file COPYING file or visit http://www.gnu.org/licenses/gpl-2.0.html
8 */
10 #ifndef HB_DVD_H
11 #define HB_DVD_H
13 #include "dvdnav/dvdnav.h"
14 #include "dvdread/ifo_read.h"
15 #include "dvdread/nav_read.h"
17 struct hb_dvdread_s
19 char * path;
21 dvd_reader_t * reader;
22 ifo_handle_t * vmg;
24 int vts;
25 int ttn;
26 ifo_handle_t * ifo;
27 dvd_file_t * file;
29 pgc_t * pgc;
30 int cell_start;
31 int cell_end;
32 int title_start;
33 int title_end;
34 int title_block_count;
35 int cell_cur;
36 int cell_next;
37 int cell_overlap;
38 int block;
39 int pack_len;
40 int next_vobu;
41 int in_cell;
42 int in_sync;
43 uint16_t cur_vob_id;
44 uint8_t cur_cell_id;
45 hb_handle_t * h;
48 struct hb_dvdnav_s
50 char * path;
52 dvdnav_t * dvdnav;
53 dvd_reader_t * reader;
54 ifo_handle_t * vmg;
55 int title;
56 int title_block_count;
57 int chapter;
58 int cell;
59 hb_list_t * list_chapter;
60 int stopped;
61 hb_handle_t * h;
64 typedef struct hb_dvdnav_s hb_dvdnav_t;
65 typedef struct hb_dvdread_s hb_dvdread_t;
67 union hb_dvd_s
69 hb_dvdread_t dvdread;
70 hb_dvdnav_t dvdnav;
74 struct hb_dvd_func_s
76 hb_dvd_t * (* init) ( hb_handle_t *, char * );
77 void (* close) ( hb_dvd_t ** );
78 char * (* name) ( char * );
79 int (* title_count) ( hb_dvd_t * );
80 hb_title_t * (* title_scan) ( hb_dvd_t *, int, uint64_t );
81 int (* start) ( hb_dvd_t *, hb_title_t *, int );
82 void (* stop) ( hb_dvd_t * );
83 int (* seek) ( hb_dvd_t *, float );
84 hb_buffer_t * (* read) ( hb_dvd_t * );
85 int (* chapter) ( hb_dvd_t * );
86 int (* angle_count) ( hb_dvd_t * );
87 void (* set_angle) ( hb_dvd_t *, int );
88 int (* main_feature)( hb_dvd_t *, hb_list_t * );
90 typedef struct hb_dvd_func_s hb_dvd_func_t;
92 hb_dvd_func_t * hb_dvdnav_methods( void );
93 hb_dvd_func_t * hb_dvdread_methods( void );
95 #endif // HB_DVD_H