#include "ecdb.h"

/* Global Variables */
int ECDB_DRIVE_ACTION_FINISHED = 0;
int ECDB_DRIVE_ACTION_BEGUN = 0;
int ECDB_DRIVE_ACTION_UPDATE = 0;

Ecdb_Main *em;
int ecdb_setup();

int
main(int argc, char **argv)
{
	int ret = 0;

	if (!ecore_init())
	{
		printf("Cannot initialize Ecore!\n");
		ret = 1;
		return 1;
	}

	if (!ecore_file_init())
	{
		printf("Cannot initialize Ecore_File!\n");
		ret = 1;
		goto SHUTDOWN;
	}

	if (!ewl_init(&argc, argv))
	{
		printf("Cannot initialize EWL!\n");
		ret = 1;
		goto SHUTDOWN;
	}

	if (!ecdb_setup())
	{
		printf("Setup failed\n");
		ret = 1;
		goto SHUTDOWN;
	}

	ecdb_print_drive_info();
	ecdb_create_main_gui();

	/*

	Ecdb_Audio_Project *proj;
	Ecdb_Source *src;
	proj = ecdb_audio_project_new();

	i = 1;
	while ((i < argc) && (argv))
	{
		if (ecore_file_exists(argv[i]))
		{
			if (!ecore_file_is_dir(argv[i]))
			{
				src = ecdb_source_new();
				ecdb_source_data_set(src, argv[i], 0);
				ecdb_source_child_append(proj->tracks, src);
			}
		}
		i++;
	}

	ecdb_audio_project_start(proj);

	proj->publisher_id = proj->data_preparer_id = proj->system_id =
		proj->application_id = proj->copywrite_id =
			proj->abstract_id = proj->biblio_id = strdup("ecdb");
	
	if (!ecdb_aquire_drive(ECDB_PROJECT(proj), 0))
	{
		printf("Couldn't grab drive!\n");
		ret = 1;
		goto SHUTDOWN;
	}

	if (!ecdb_burn_project(proj))
	{
		printf("Burn was unsuccessful\n");
		ret = 1;
		goto SHUTDOWN;
	}

	*/

	ecore_main_loop_begin();

	/* End testing */

SHUTDOWN:
	burn_finish();
	iso_finish();
	ecore_file_shutdown();
	ecore_shutdown();
	printf("Program Done\n");
	return ret;
};

int
ecdb_setup(void)
{
	em = NULL;
	em = calloc(1, sizeof(Ecdb_Main));
	em->drives = NULL;

	if (!ecore_file_mkdir("/tmp/ecdb"))
		printf("Creation of temporary directory failed!\n");

	ECDB_DRIVE_ACTION_FINISHED = ecore_event_type_new();
	ECDB_DRIVE_ACTION_BEGUN = ecore_event_type_new();
	ECDB_DRIVE_ACTION_UPDATE = ecore_event_type_new();
	ecdb_image_init();
	ecdb_burn_init();

	ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, ecdb_shutdown,
			NULL);

	if (!ecdb_aquire_drive_info())
	{
		printf("Aquiring drives failed!\n");
		return FALSE;
	}
	
	return TRUE;
}

