libcdio  0.90
cd_types.h
Go to the documentation of this file.
00001 /*
00002     Copyright (C) 2003, 2006, 2008, 2012 Rocky Bernstein <rocky@gnu.org>
00003     Copyright (C) 1996,1997,1998  Gerd Knorr <kraxel@bytesex.org>
00004          and       Heiko Ei▀feldt <heiko@hexco.de>
00005 
00006     This program is free software: you can redistribute it and/or modify
00007     it under the terms of the GNU General Public License as published by
00008     the Free Software Foundation, either version 3 of the License, or
00009     (at your option) any later version.
00010 
00011     This program is distributed in the hope that it will be useful,
00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014     GNU General Public License for more details.
00015 
00016     You should have received a copy of the GNU General Public License
00017     along with this program.  If not, see <http://www.gnu.org/licenses/>.
00018 */
00019 
00026 #ifndef CDIO_CD_TYPES_H_
00027 #define CDIO_CD_TYPES_H_
00028 
00029 #ifdef __cplusplus
00030 extern "C" {
00031 #endif /* __cplusplus */
00032 
00037   typedef enum {
00038     CDIO_FS_AUDIO                = 1, 
00040     CDIO_FS_HIGH_SIERRA          = 2, 
00041     CDIO_FS_ISO_9660             = 3, 
00042     CDIO_FS_INTERACTIVE          = 4,
00043     CDIO_FS_HFS                  = 5, 
00046     CDIO_FS_UFS                  = 6, 
00054     CDIO_FS_EXT2                 = 7,
00055 
00056     CDIO_FS_ISO_HFS              = 8,  
00057     CDIO_FS_ISO_9660_INTERACTIVE = 9,  
00066     CDIO_FS_3DO                 = 10,
00067 
00068 
00072     CDIO_FS_XISO                = 11,
00073     CDIO_FS_UDFX                = 12,
00074     CDIO_FS_UDF                 = 13,
00075     CDIO_FS_ISO_UDF             = 14
00076   } cdio_fs_t;
00077 
00078 
00082 #define CDIO_FSTYPE(fs) (fs & CDIO_FS_MASK)
00083 
00089   typedef enum {
00090     CDIO_FS_MASK              =   0x000f, 
00093     CDIO_FS_ANAL_XA           =   0x00010, 
00094     CDIO_FS_ANAL_MULTISESSION =   0x00020, 
00095     CDIO_FS_ANAL_PHOTO_CD     =   0x00040, 
00096     CDIO_FS_ANAL_HIDDEN_TRACK =   0x00080, 
00098     CDIO_FS_ANAL_CDTV         =   0x00100,
00099     CDIO_FS_ANAL_BOOTABLE     =   0x00200, 
00100     CDIO_FS_ANAL_VIDEOCD      =   0x00400, 
00101     CDIO_FS_ANAL_ROCKRIDGE    =   0x00800, 
00103     CDIO_FS_ANAL_JOLIET       =   0x01000, 
00105     CDIO_FS_ANAL_SVCD         =   0x02000, 
00106     CDIO_FS_ANAL_CVD          =   0x04000, 
00107     CDIO_FS_ANAL_XISO         =   0x08000, 
00108     CDIO_FS_ANAL_ISO9660_ANY  =   0x10000, 
00109     CDIO_FS_ANAL_VCD_ANY      =   (CDIO_FS_ANAL_VIDEOCD|CDIO_FS_ANAL_SVCD|
00110                                    CDIO_FS_ANAL_CVD),
00111     CDIO_FS_MATCH_ALL         =  ~CDIO_FS_MASK 
00116   } cdio_fs_cap_t;
00117     
00118 
00119 #define CDIO_FS_UNKNOWN             CDIO_FS_MASK
00120 
00124 #define CDIO_FS_MATCH_ALL            (cdio_fs_anal_t) (~CDIO_FS_MASK)
00125 
00126 
00133 typedef struct 
00134 {
00135   unsigned int  joliet_level;  
00137   char          iso_label[33]; 
00139   unsigned int  isofs_size;
00140   uint8_t       UDFVerMinor;   
00141   uint8_t       UDFVerMajor;   
00142 } cdio_iso_analysis_t;
00143 
00149 cdio_fs_anal_t cdio_guess_cd_type(const CdIo_t *cdio, int start_session, 
00150                                   track_t track_num, 
00151                                   /*out*/ cdio_iso_analysis_t *iso_analysis);
00152 
00153 #ifdef __cplusplus
00154 }
00155 #endif /* __cplusplus */
00156 
00162 extern cdio_fs_cap_t debug_cdio_fs_cap;
00163 extern cdio_fs_t     debug_cdio_fs;
00164 
00165 #endif /* CDIO_CD_TYPES_H_ */
00166 
00167 /* 
00168  * Local variables:
00169  *  c-file-style: "gnu"
00170  *  tab-width: 8
00171  *  indent-tabs-mode: nil
00172  * End:
00173  */