1 /* 2 xcdrdata.h 3 */ 4 5 #include <time.h> 6 #include <unistd.h> 7 #include <sys/types.h> 8 9 10 typedef struct geometry { 11 gint x; 12 gint y; 13 gint width; 14 gint height; 15 } geometry_t; 16 17 typedef struct setup_data { 18 gint writer_devnr; 19 gint reader_devnr; 20 21 GList *image_dirs; 22 23 gchar *dsp_device; 24 gchar *mix_device; 25 gint notify_via; 26 gint notify_at; 27 28 gchar *cddb_host; 29 gint cddb_port; 30 gchar *cddb_proxy_host; 31 gint cddb_proxy_port; 32 gint cddb_use_http; 33 gint cddb_use_proxy; 34 35 gchar *logfile; 36 gint loglevel; 37 38 gchar *language; 39 40 gboolean option_tooltips; 41 gboolean option_autoraise; 42 gboolean option_savepos; 43 gboolean option_personimage; 44 gboolean option_overwritewarn; 45 gboolean option_autodelete; 46 gboolean option_titleprogress; 47 gboolean option_displaycdtext; 48 gboolean option_selectionmode; 49 50 gint root_users_access; 51 GList *root_users_lists; 52 53 gint root_hosts_access; 54 GList *root_hosts_lists; 55 56 gboolean root_option_change_writer; 57 gboolean root_option_change_writeparam; 58 gboolean root_option_change_reader; 59 gboolean root_option_change_readparam; 60 gboolean root_option_change_imagedirs; 61 gboolean root_option_change_logoptions; 62 63 gchar *ProDVDkey; 64 geometry_t mainwindow; 65 geometry_t burnwindow; 66 67 } setup_data_t; 68 69 typedef struct scsi_devices { 70 gint devnr; 71 gint transport; 72 gint bus; 73 gint id; 74 gchar vendor[9]; 75 gchar model[17]; 76 gchar rev[5]; 77 gint removable; 78 gint type; 79 gint alt_dev; 80 gint sector_size; 81 } scsi_devices_t; 82 83 typedef struct writerreader_devices { 84 gint devnr; 85 gchar *devicestr; 86 gchar vendor[9]; 87 gchar model[17]; 88 gchar rev[5]; 89 gint writer_readmaxspeed; 90 gint writer_cdrmaxspeed; 91 gint writer_dvdmaxspeed; 92 gchar *writer_flags; 93 gchar *writer_modes; 94 gint is_cdrwriter; 95 gint is_dvdreader; 96 gint is_dvdwriter; 97 gint sector_size; 98 /* --- user editable values below */ 99 gint writer_drvmode; 100 gint writer_mode; 101 gint writer_speed; 102 gint writer_fifo; 103 gint audioread_interface; 104 gint audioread_speed; 105 gint audioread_overlap; 106 gint audioread_sectorburst; 107 gint audioread_useparanoia; 108 gint audioread_paranoiaretries; 109 } writerreader_devices_t; 110 111 /* 10 user editable values to backup in setup */ 112 typedef struct writerreader_bak { 113 gint devnr; 114 gint values[10]; 115 } writerreader_bak_t; 116 117 typedef struct writer_driver { 118 gchar *driver; 119 gchar *desc; 120 } writer_driver_t; 121 122 typedef struct current_set { 123 gint isProDVD; 124 gint support_ontheflyaudio; 125 gint writer_devnr; 126 gint reader_devnr; 127 gint image_index; /* index in image_dir-glist, -1 = automatic */ 128 gint proc_view; 129 gchar *file_prefix; 130 gchar *tocfile; 131 gint cdrtype; /* in minutes */ 132 gboolean writesimul; 133 gboolean writeeject; 134 gboolean writepad; 135 gboolean writeswap; 136 gboolean nofixate; 137 gboolean multisession; 138 gboolean writecdtext; 139 gboolean writeoverburn; 140 gboolean writeburnfree; 141 gboolean writeaudiomaster; 142 gboolean writeforcespeed; 143 gint writevarirec; 144 gboolean writeignsize; 145 gboolean writeimmed; 146 gint blankmode; 147 gboolean blank_force; 148 gboolean blank_eject; 149 gboolean noaudioverify; 150 gboolean verifyfailabort; 151 gboolean indexscan; 152 gboolean sync_cdtext_artist; 153 gboolean mstr_auto_calc; 154 gchar *sudo_passwd; 155 } current_set_t; 156 157 typedef struct cd_info { 158 gint nr_tracks; /* -1 = no cd loaded */ 159 gint total_size; /* all sizes in frames */ 160 gchar cddb_discid[9]; 161 gint have_cdtext; 162 gint have_cdextra; 163 gchar *title; 164 gchar *artist; 165 gchar *cddb_dtitle; 166 gint leadout; 167 } cd_info_t; 168 169 typedef struct track_info { 170 gint track_nr; 171 gint start_sec; 172 gint size; /* in frames */ 173 gint type; /* 0: data, 1: audio */ 174 gint rec_type; /* 0: incremental, 1: uninterrupted */ 175 gint preemp; /* 0: linear, 1: preemp */ 176 gint copyperm; /* 0: denied, 1: allowed */ 177 gint stereo; /* 0: quadro, 1: stereo */ 178 gchar *volname; 179 gchar *title; 180 gchar *artist; 181 gchar *cddb_ttitle; 182 gint isosize; /* only for datatracks, else set to -1 */ 183 } track_info_t; 184 185 typedef struct cddb_match { 186 gint exact; /* 0: not exact match, 1: exact */ 187 gchar *categ; 188 gchar *discid; 189 gchar *dtitle; 190 } cddb_match_t; 191 192 typedef struct image_files { 193 gchar *path; 194 off_t size; /* in bytes */ 195 time_t mtime; /* modification time */ 196 gint type; /* 0: iso9660 data, 1: valid audio, 2: invalid audio, 197 3: unknown data, 4: toc-file */ 198 gint readable; /* 0: no, 1: yes */ 199 gint from_track; 200 gchar *volname; 201 gchar *title; 202 gchar *artist; 203 gchar *cddb_ttitle; 204 gchar *cd_discid; 205 gint isosize; /* in sectors */ 206 gint last_session_start; 207 gint next_session_start; 208 } image_files_t; 209 210 typedef struct track_read_param { 211 gint trackinfo_index; 212 gint starttrack; 213 gint endtrack; /* set to 0 when not used */ 214 gint tracktype; /* 0: data, 1: audio */ 215 gint start_sec; /* for audio tracks */ 216 gint startoffset; /* for data tracks: startsector */ 217 gint endoffset; /* for data tracks: endsector */ 218 gfloat percent; /* how many percent does this track take on cd */ 219 gint kbyte; 220 gint frames; 221 gchar *trackfile; 222 } track_read_param_t; 223 224 typedef struct track_read_set { 225 gint nrtracks; 226 gint cdsize; /* in frames */ 227 gchar *tocfile; 228 gchar *cdtitle; 229 gchar *cd_discid; 230 GList *trackparams; 231 } track_read_set_t; 232 233 typedef struct image_dir_free { 234 gchar *path; 235 gint free; 236 } image_dir_free_t; 237 238 typedef struct write_track_param { 239 gint nrtracks; 240 gint simulation; 241 gint *tracktype; 242 gint *frames; 243 gfloat *pct_so_far_arr; 244 gfloat *pct_this_track_arr; 245 } write_track_param_t; 246 247 typedef struct mstr_redirect { 248 gchar *mstr_path; 249 gchar *redir_path; 250 } mstr_redirect_t; 251 252 typedef struct master_param { 253 GList *mstr_redir; 254 GList *exclude_paths; 255 gint image_type; 256 gboolean show_only_dirs; 257 gboolean show_hidden_files; 258 gboolean opt[24]; 259 gint bootable; 260 gchar *boot_image; 261 gchar *boot_catalog; 262 gint boot_type; 263 gint boot_load_size; 264 gint boot_info_table; 265 gchar *sparc_boot; 266 gchar *volid; 267 gchar *publisher; 268 gchar *preparer; 269 gchar *application; 270 gchar *abstract; 271 gchar *biblio; 272 gchar *copyright; 273 gchar *image_filename; 274 gint old_session_size; /* in 2048 byte blocks */ 275 gint session_size; /* in 2048 byte blocks */ 276 gint charset; 277 gint outcharset; 278 gint redirtype; 279 gchar *lastredirpath; 280 gint redirtype2; 281 gchar *lastredirpath2; 282 gint last_session_start; 283 gint next_session_start; 284 } master_param_t; 285 286 typedef struct nonroot_flags { 287 gchar *path; 288 uid_t uid; 289 gid_t gid; 290 mode_t mode; 291 } nonroot_flags_t; 292 293 typedef struct version_id { 294 gint major; 295 gint minor; 296 gint branch; 297 char devel; 298 gint patch; 299 } version_id_t; 300 301 typedef struct cddb_connect { 302 gchar *hostname; 303 gchar *username; 304 gchar *server; 305 gint port; 306 gchar *proxy; 307 gchar *authstring; 308 gint proxyport; 309 gint useproxy; 310 gint usehttp; 311 gint useauth; 312 } cddb_connect_t; 313 314