Proper inheritance, etc
This commit is contained in:
114
experimental/ecdb/trunk/src/ecdb_common.h
Normal file
114
experimental/ecdb/trunk/src/ecdb_common.h
Normal file
@ -0,0 +1,114 @@
|
||||
#ifndef ECDB_COMMON_H
|
||||
#define ECDB_COMMON_H
|
||||
|
||||
/* Typdefs */
|
||||
typedef struct burn_source BurnSource;
|
||||
typedef struct burn_disc BurnDisc;
|
||||
typedef struct burn_session BurnSession;
|
||||
typedef struct burn_write_opts BurnWriteOpts;
|
||||
typedef struct burn_track BurnTrack;
|
||||
typedef struct burn_progress BurnProgress;
|
||||
typedef struct burn_drive_info BurnDriveInfo;
|
||||
typedef enum burn_drive_status BurnDriveStatus;
|
||||
|
||||
typedef struct _Ecdb_Drive_Info Ecdb_Drive_Info;
|
||||
struct _Ecdb_Drive_Info
|
||||
{
|
||||
/* Speeds */
|
||||
int *read_speeds;
|
||||
int *write_speeds;
|
||||
|
||||
/* Profiles */
|
||||
char *profile_name;
|
||||
int profile_loaded;
|
||||
|
||||
/* Drive info */
|
||||
char *vendor;
|
||||
char *product;
|
||||
char *revision;
|
||||
char *location;
|
||||
|
||||
unsigned char read_dvdram:1;
|
||||
unsigned char read_dvdr:1;
|
||||
unsigned char read_dvdrom:1;
|
||||
unsigned char read_cdr:1;
|
||||
unsigned char read_cdrw:1;
|
||||
unsigned char write_dvdram:1;
|
||||
unsigned char write_dvdr:1;
|
||||
unsigned char write_cdr:1;
|
||||
unsigned char write_simulate:1;
|
||||
|
||||
BurnDriveInfo *tangible;
|
||||
};
|
||||
|
||||
typedef struct _Ecdb_Project_Info Ecdb_Project;
|
||||
struct _Ecdb_Project_Info
|
||||
{
|
||||
/* The drive reference */
|
||||
Ecdb_Drive_Info *drive;
|
||||
BurnProgress progress;
|
||||
BurnDriveStatus stat;
|
||||
};
|
||||
|
||||
/* Typecast a pointer to an Ecdb_Project */
|
||||
#define ECDB_PROJECT(proj) ((Ecdb_Project *) proj)
|
||||
|
||||
typedef struct _Ecdb_Burn_Project Ecdb_Burn_Project;
|
||||
struct _Ecdb_Burn_Project
|
||||
{
|
||||
/* Inherit from normal project */
|
||||
Ecdb_Project proj;
|
||||
|
||||
/* Files are important here */
|
||||
Ecore_List *files;
|
||||
|
||||
/* Ids */
|
||||
char *volume_id;
|
||||
char *publisher_id;
|
||||
char *data_preparer_id;
|
||||
char *system_id;
|
||||
char *application_id;
|
||||
char *copywrite_id;
|
||||
char *abstract_id;
|
||||
char *biblio_id;
|
||||
|
||||
/* iso options */
|
||||
unsigned char iso_level:1;
|
||||
unsigned char use_joliet:1;
|
||||
unsigned char use_rockridge:1;
|
||||
unsigned char follow_symlinks:1;
|
||||
unsigned char ignore_hidden:1;
|
||||
unsigned char ignore_special:1;
|
||||
unsigned char iso1990:1;
|
||||
|
||||
/* burn options */
|
||||
unsigned char opc:1;
|
||||
unsigned char multi:1;
|
||||
unsigned char simulate:1;
|
||||
unsigned char underrun_proof:1;
|
||||
int speed;
|
||||
|
||||
/* burn stuff */
|
||||
int fifo_chunksize;
|
||||
int fifo_chunks;
|
||||
int burn_mode;
|
||||
};
|
||||
|
||||
/* Typecast a pointer to an Ecdb_Burn_Project */
|
||||
#define ECDB_BURN(proj) ((Ecdb_Burn_Project *) proj)
|
||||
|
||||
typedef struct _Ecdb_Erase_Project Ecdb_Erase_Project;
|
||||
struct _Ecdb_Erase_Project
|
||||
{
|
||||
/* Inherit from normal project */
|
||||
Ecdb_Project proj;
|
||||
|
||||
/* Speed */
|
||||
unsigned char quick:1;
|
||||
unsigned char format:1;
|
||||
};
|
||||
|
||||
/* Typecast a pointer to an Ecdb_Erase_Project */
|
||||
#define ECDB_ERASE(proj) ((Ecdb_Erase_Project *) proj)
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user