/* vim: set sw=3 ts=3 sts=3 expandtab: */ #include "ecdb.h" int ecdb_project_init(Ecdb_Project *proj); int ecdb_burn_project_init(Ecdb_Burn_Project *proj); int ecdb_erase_project_init(Ecdb_Erase_Project *proj); int ecdb_audio_project_init(Ecdb_Audio_Project *proj); int ecdb_data_project_init(Ecdb_Data_Project *proj); int ecdb_image_project_init(Ecdb_Image_Project *proj); Ecdb_Project * ecdb_project_new(void) { Ecdb_Project *proj; proj = calloc(1, sizeof(Ecdb_Project)); if (!proj) { return NULL; } if (!ecdb_project_init(proj)) { FREE(proj); return NULL; } return proj; } int ecdb_project_init(Ecdb_Project *proj) { return TRUE; } void ecdb_project_destroy(Ecdb_Project *proj) { if (proj->ev_handler) ecore_event_handler_del(proj->ev_handler); if (proj->pipe) ecore_pipe_del(proj->pipe); EINA_ERROR_PINFO("base\n"); } void ecdb_project_type_set(Ecdb_Project *proj, unsigned int t) { proj->type = t; } Ecdb_Burn_Project * ecdb_burn_project_new(void) { Ecdb_Burn_Project *proj; proj = calloc(1, sizeof(Ecdb_Burn_Project)); if (!proj) return NULL; if (!ecdb_burn_project_init(proj)) { FREE(proj); return NULL; } return proj; } int ecdb_burn_project_init(Ecdb_Burn_Project *proj) { if (!ecdb_project_init(ECDB_PROJECT(proj))) return FALSE; /* Create some sane defaults */ ecdb_project_type_set(ECDB_PROJECT(proj), ECDB_BURN_PROJECT); proj->burn_mode = BURN_MODE1; proj->fifo_chunksize = 2048; proj->fifo_chunks = 2048; proj->underrun_proof = TRUE; proj->files = ecdb_source_new(); proj->opc = TRUE; proj->multi = TRUE; return TRUE; } void ecdb_burn_project_destroy(Ecdb_Burn_Project *proj) { EINA_ERROR_PINFO("burn\n"); if (proj->files) { ecdb_source_destroy(proj->files); proj->files = NULL; } ecdb_project_destroy(ECDB_PROJECT(proj)); } Ecdb_Erase_Project * ecdb_erase_project_new(void) { Ecdb_Erase_Project *proj; proj = calloc(1, sizeof(Ecdb_Erase_Project)); if (!proj) { return NULL; } if (!ecdb_erase_project_init(proj)) { FREE(proj); return NULL; } return proj; } int ecdb_erase_project_init(Ecdb_Erase_Project *proj) { if (!ecdb_project_init(ECDB_PROJECT(proj))) { return FALSE; } /* Proper defaults */ ecdb_project_type_set(ECDB_PROJECT(proj), ECDB_ERASE_PROJECT); proj->quick = TRUE; proj->format = FALSE; return TRUE; } void ecdb_erase_project_destroy(Ecdb_Erase_Project *proj) { EINA_ERROR_PINFO("Destroying: erase\n"); ecdb_project_destroy(ECDB_PROJECT(proj)); FREE(proj); } Ecdb_Audio_Project * ecdb_audio_project_new(void) { Ecdb_Audio_Project *proj; proj = calloc(1, sizeof(Ecdb_Audio_Project)); if (!proj) { return NULL; } if (!ecdb_audio_project_init(proj)) { FREE(proj); return NULL; } return proj; } int ecdb_audio_project_init(Ecdb_Audio_Project *proj) { if (!ecdb_burn_project_init(ECDB_BURN(proj))) { return FALSE; } ecdb_project_type_set(ECDB_PROJECT(proj), ECDB_AUDIO_PROJECT); return TRUE; } void ecdb_audio_project_destroy(Ecdb_Audio_Project *proj) { EINA_ERROR_PINFO("Destroying: audio\n"); ecdb_burn_project_destroy(ECDB_BURN(proj)); FREE(proj); } Ecdb_Data_Project * ecdb_data_project_new(void) { Ecdb_Data_Project *proj; proj = calloc(1, sizeof(Ecdb_Data_Project)); if (!proj) { return NULL; } if (!ecdb_data_project_init(proj)) { FREE(proj); return NULL; } return proj; } int ecdb_data_project_init(Ecdb_Data_Project *proj) { if (!ecdb_burn_project_init(ECDB_BURN(proj))) { return FALSE; } ecdb_project_type_set(ECDB_PROJECT(proj), ECDB_DATA_PROJECT); proj->use_joliet = TRUE; proj->use_rockridge = TRUE; proj->iso_level = 3; return TRUE; } void ecdb_data_project_destroy(Ecdb_Data_Project *proj) { EINA_ERROR_PINFO("Destroying: data\n"); FREE(proj->volume_id); FREE(proj->publisher_id); FREE(proj->data_preparer_id); FREE(proj->system_id); FREE(proj->application_id); FREE(proj->copywrite_id); FREE(proj->abstract_id); FREE(proj->biblio_id); ecdb_burn_project_destroy(ECDB_BURN(proj)); FREE(proj); } Ecdb_Image_Project * ecdb_image_project_new(void) { Ecdb_Image_Project *proj; proj = calloc(1, sizeof(Ecdb_Image_Project)); if (!proj) { return NULL; } if (!ecdb_image_project_init(proj)) { FREE(proj); return NULL; } return proj; } int ecdb_image_project_init(Ecdb_Image_Project *proj) { if (!ecdb_burn_project_init(ECDB_BURN(proj))) return FALSE; ecdb_project_type_set(ECDB_PROJECT(proj), ECDB_IMAGE_PROJECT); return TRUE; } void ecdb_image_project_destroy(Ecdb_Image_Project *proj) { EINA_ERROR_PINFO("Destroying: image\n"); ecdb_burn_project_destroy(ECDB_BURN(proj)); FREE(proj); }