1 /* 2 $Id$ 3 4 Copyright (C) 2000 Herbert Valerio Riedel <hvr@gnu.org> 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2 of the License, or 9 (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program; if not, write to the Free Software 18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 */ 20 21 #ifndef VCDFILES_H 22 #define VCDFILES_H 23 24 #include <libvcd/types.h> 25 26 #define INFO_VCD_SECTOR 150 27 #define ENTRIES_VCD_SECTOR 151 28 #define LOT_VCD_SECTOR 152 29 #define LOT_VCD_SIZE 32 30 #define PSD_VCD_SECTOR (LOT_VCD_SECTOR+LOT_VCD_SIZE) 31 32 #define MAX_SEGMENTS 1980 33 #define MAX_ENTRIES 500 34 #define MAX_SEQ_ENTRIES 99 35 36 /* these are used for SVCDs only */ 37 #define TRACKS_SVD_SECTOR (PSD_VCD_SECTOR+1) 38 #define SEARCH_DAT_SECTOR (TRACKS_SVD_SECTOR+1) 39 40 /* Maximum index of optional LOT.VCD (the List ID Offset Table.) */ 41 #define LOT_VCD_OFFSETS ((1 << 15)-1) 42 43 typedef enum { 44 PSD_TYPE_PLAY_LIST = 0x10, /* Play List */ 45 PSD_TYPE_SELECTION_LIST = 0x18, /* Selection List (+Ext. for SVCD) */ 46 PSD_TYPE_EXT_SELECTION_LIST = 0x1a, /* Extended Selection List (VCD2.0) */ 47 PSD_TYPE_END_LIST = 0x1f, /* End List */ 48 PSD_TYPE_COMMAND_LIST = 0x20 /* Command List */ 49 } psd_descriptor_types; 50 51 #define ENTRIES_ID_VCD "ENTRYVCD" 52 #define ENTRIES_ID_VCD3 "ENTRYSVD" 53 #define ENTRIES_ID_SVCD "ENTRYVCD" /* not ENTRYSVD! */ 54 55 #define SCANDATA_VERSION_VCD2 0x02 56 #define SCANDATA_VERSION_SVCD 0x01 57 58 void 59 set_entries_vcd(VcdObj_t *p_vcdobj, void *p_buf); 60 61 void 62 set_info_vcd (VcdObj_t *p_vcdobj, void *p_buf); 63 64 uint32_t 65 get_psd_size (VcdObj_t *p_vcdobj, bool extended); 66 67 void 68 set_lot_vcd (VcdObj_t *p_vcdobj, void *p_buf, bool extended); 69 70 void 71 set_psd_vcd (VcdObj_t *p_vcdobj, void *p_buf, bool extended); 72 73 void 74 set_tracks_svd (VcdObj_t *p_vcdobj, void *p_buf); 75 76 uint32_t 77 get_search_dat_size (const VcdObj_t *p_vcdobj); 78 79 void 80 set_search_dat (VcdObj_t *p_vcdobj, void *p_buf); 81 82 uint32_t 83 get_scandata_dat_size (const VcdObj_t *p_vcdobj); 84 85 void 86 set_scandata_dat (VcdObj_t *p_vcdobj, void *p_buf); 87 88 89 vcd_type_t 90 vcd_files_info_detect_type (const void *info_buf); 91 92 #endif /* VCDFILES_H */ 93 94 95 /* 96 * Local variables: 97 * c-file-style: "gnu" 98 * tab-width: 8 99 * indent-tabs-mode: nil 100 * End: 101 */ 102