[brasero: 2/3] 2009-04-22 Philippe Rouquier <bonfire-app wanadoo fr>



commit 086516f30d40464b7442b9199f4f9c1078a3d715
Author: Philippe Rouquier <bonfire-app wanadoo fr>
Date:   Wed Apr 22 20:30:32 2009 +0200

    2009-04-22  Philippe Rouquier  <bonfire-app wanadoo fr>
    
    	Move a few files to library again and create a new type of track
    	to have data projects autoconfigure themselves.
    
    	* libbrasero-burn/brasero-data-project.c
    	(brasero_data_project_file_signal),
    	(brasero_data_project_reference_new),
    	(brasero_data_project_reference_free),
    	(brasero_data_project_reference_get),
    	(brasero_data_project_reference_remove_children_cb),
    	(brasero_data_project_reference_invalidate),
    	(brasero_data_project_joliet_hash),
    	(brasero_data_project_joliet_equal),
    	(brasero_data_project_joliet_set_key),
    	(brasero_data_project_joliet_add_node),
    	(brasero_data_project_joliet_remove_node),
    	(brasero_data_project_joliet_remove_children_node_cb),
    	(brasero_data_project_joliet_remove_children_node),
    	(brasero_data_project_node_to_uri),
    	(brasero_data_project_find_child_node),
    	(brasero_data_project_uri_to_nodes),
    	(brasero_data_project_node_changed),
    	(brasero_data_project_reorder_children),
    	(brasero_data_project_resort_tree),
    	(brasero_data_project_reverse_children),
    	(brasero_data_project_reverse_tree),
    	(brasero_data_project_set_sort_function),
    	(brasero_data_project_uri_has_parent),
    	(brasero_data_project_uri_is_graft_needed),
    	(brasero_data_project_uri_remove_graft),
    	(brasero_data_project_graft_is_needed),
    	(brasero_data_project_uri_add_graft),
    	(brasero_data_project_uri_ensure_graft),
    	(brasero_data_project_uri_graft_nodes),
    	(brasero_data_project_add_node_and_children),
    	(brasero_data_project_remove_node_children_graft_cb),
    	(brasero_data_project_remove_node_children_graft),
    	(brasero_data_project_monitor_cancel_foreach_cb),
    	(brasero_data_project_node_removed),
    	(brasero_data_project_remove_real),
    	(brasero_data_project_convert_to_fake),
    	(brasero_data_project_remove_node),
    	(brasero_data_project_destroy_node),
    	(brasero_data_project_is_deep), (brasero_data_project_move_node),
    	(brasero_data_project_rename_node),
    	(brasero_data_project_add_node_real),
    	(brasero_data_project_restore_uri),
    	(brasero_data_project_exclude_uri),
    	(brasero_data_project_add_imported_session_file),
    	(brasero_data_project_add_empty_directory),
    	(brasero_data_project_update_uri),
    	(brasero_data_project_node_loaded),
    	(brasero_data_project_node_reloaded),
    	(brasero_data_project_add_loading_node),
    	(brasero_data_project_directory_node_loaded),
    	(brasero_data_project_add_node_from_info),
    	(brasero_data_project_node_to_path),
    	(_foreach_grafts_make_list_cb),
    	(_foreach_joliet_incompatible_make_list_cb),
    	(brasero_data_project_get_contents),
    	(brasero_data_project_has_symlinks),
    	(brasero_data_project_is_joliet_compliant),
    	(brasero_data_project_is_video_project),
    	(brasero_data_project_is_empty),
    	(brasero_data_project_create_path),
    	(brasero_data_project_skip_existing),
    	(brasero_data_project_add_path),
    	(brasero_data_project_add_excluded_uri),
    	(brasero_data_project_load_contents_notify_directory),
    	(brasero_data_project_load_contents_notify),
    	(brasero_data_project_load_contents),
    	(brasero_data_project_sum_graft_size_cb),
    	(brasero_data_project_get_size),
    	(brasero_data_project_folder_size_cb),
    	(brasero_data_project_get_folder_size),
    	(brasero_data_project_init), (brasero_data_project_get_root),
    	(brasero_data_project_clear_grafts_cb),
    	(brasero_data_project_clear_joliet_cb),
    	(brasero_data_project_clear), (brasero_data_project_reset),
    	(brasero_data_project_finalize), (brasero_data_project_file_added),
    	(brasero_data_project_file_update_URI),
    	(brasero_data_project_file_update_name),
    	(brasero_data_project_file_graft),
    	(brasero_data_project_file_renamed),
    	(brasero_data_project_file_moved),
    	(brasero_data_project_file_removed),
    	(brasero_data_project_file_modified),
    	(brasero_data_project_class_init):
    	* libbrasero-burn/brasero-data-project.h:
    	* libbrasero-burn/brasero-data-session.c
    	(brasero_io_image_directory_contents_destroy),
    	(brasero_io_image_directory_contents_thread),
    	(brasero_io_load_image_directory),
    	(brasero_data_session_check_size),
    	(brasero_data_session_size_changed),
    	(brasero_data_session_remove_last),
    	(brasero_data_session_load_dir_destroy),
    	(brasero_data_session_load_dir_result),
    	(brasero_data_session_load_directory_contents_real),
    	(brasero_data_session_load_directory_contents),
    	(brasero_data_session_add_last),
    	(brasero_data_session_has_available_media),
    	(brasero_data_session_get_available_media),
    	(brasero_data_session_get_loaded_medium),
    	(brasero_data_session_is_valid_multi),
    	(brasero_data_session_disc_added_cb),
    	(brasero_data_session_disc_removed_cb),
    	(brasero_data_session_init), (brasero_data_session_stop_io),
    	(brasero_data_session_reset), (brasero_data_session_finalize),
    	(brasero_data_session_class_init):
    	* libbrasero-burn/brasero-data-session.h:
    	* libbrasero-burn/brasero-data-tree-model.c
    	(brasero_data_tree_model_iter_parent),
    	(brasero_data_tree_model_iter_nth_child),
    	(brasero_data_tree_model_iter_n_children),
    	(brasero_data_tree_model_iter_has_child),
    	(brasero_data_tree_model_iter_children),
    	(brasero_data_tree_model_iter_next),
    	(brasero_data_tree_model_node_shown),
    	(brasero_data_tree_model_node_hidden),
    	(brasero_data_tree_model_get_value),
    	(brasero_data_tree_model_node_to_path),
    	(brasero_data_tree_model_get_path),
    	(brasero_data_tree_model_path_to_node),
    	(brasero_data_tree_model_get_iter),
    	(brasero_data_tree_model_get_column_type),
    	(brasero_data_tree_model_get_n_columns),
    	(brasero_data_tree_model_get_flags),
    	(brasero_data_tree_model_multi_row_draggable),
    	(brasero_data_tree_model_multi_drag_data_get),
    	(brasero_data_tree_model_multi_drag_data_delete),
    	(brasero_data_tree_model_drag_data_received),
    	(brasero_data_tree_model_row_drop_possible),
    	(brasero_data_tree_model_drag_data_delete),
    	(brasero_data_tree_model_get_sort_column_id),
    	(brasero_data_tree_model_set_sort_column_id),
    	(brasero_data_tree_model_has_default_sort_func),
    	(brasero_data_tree_model_clear), (brasero_data_tree_model_reset),
    	(brasero_data_tree_model_node_added),
    	(brasero_data_tree_model_node_removed),
    	(brasero_data_tree_model_node_changed),
    	(brasero_data_tree_model_node_reordered),
    	(brasero_data_tree_model_activity_changed),
    	(brasero_data_tree_model_init), (brasero_data_tree_model_finalize),
    	(brasero_data_tree_model_iface_init),
    	(brasero_data_tree_model_multi_drag_source_iface_init),
    	(brasero_data_tree_model_drag_source_iface_init),
    	(brasero_data_tree_model_drag_dest_iface_init),
    	(brasero_data_tree_model_sortable_iface_init),
    	(brasero_data_tree_model_class_init),
    	(brasero_data_tree_model_new):
    	* libbrasero-burn/brasero-data-tree-model.h:
    	* libbrasero-burn/brasero-data-vfs.c
    	(brasero_data_vfs_restored_list_cb),
    	(brasero_data_vfs_get_restored), (brasero_data_vfs_add_restored),
    	(brasero_data_vfs_remove_restored), (brasero_data_vfs_is_active),
    	(brasero_data_vfs_is_loading_uri),
    	(brasero_data_vfs_check_uri_result),
    	(brasero_data_vfs_remove_from_hash),
    	(brasero_data_vfs_directory_load_end),
    	(brasero_data_vfs_directory_check_symlink_loop),
    	(brasero_data_vfs_directory_load_result),
    	(brasero_data_vfs_load_directory),
    	(brasero_data_vfs_loading_node_end),
    	(brasero_data_vfs_emit_image_signal),
    	(brasero_data_vfs_loading_node_result),
    	(brasero_data_vfs_load_node), (brasero_data_vfs_loading_node),
    	(brasero_data_vfs_increase_priority_cb),
    	(brasero_data_vfs_require_higher_priority),
    	(brasero_data_vfs_require_directory_contents),
    	(brasero_data_vfs_require_node_load), (brasero_data_vfs_load_mime),
    	(brasero_data_vfs_node_added), (brasero_data_vfs_empty_loading_cb),
    	(brasero_data_vfs_empty_filtered_cb), (brasero_data_vfs_clear),
    	(brasero_data_vfs_remove_filtered_uris),
    	(brasero_data_vfs_uri_removed), (brasero_data_vfs_reset),
    	(brasero_data_vfs_filter_hidden_changed),
    	(brasero_data_vfs_filter_broken_sym_changed),
    	(brasero_data_vfs_replace_sym_changed), (brasero_data_vfs_init),
    	(brasero_data_vfs_finalize), (brasero_data_vfs_class_init):
    	* libbrasero-burn/brasero-data-vfs.h:
    	* libbrasero-burn/brasero-file-monitor.c
    	(brasero_inotify_file_data_free),
    	(brasero_file_monitor_moved_to_event),
    	(brasero_file_monitor_move_timeout_cb),
    	(brasero_file_monitor_moved_from_event),
    	(brasero_file_monitor_directory_event),
    	(brasero_file_monitor_inotify_file_event),
    	(brasero_file_monitor_inotify_monitor_cb),
    	(brasero_file_monitor_start_monitoring_real),
    	(brasero_file_monitor_single_file),
    	(brasero_file_monitor_directory_contents),
    	(brasero_file_monitor_foreach_cancel_file_cb),
    	(brasero_file_monitor_foreach_cancel_directory_cb),
    	(brasero_file_monitor_foreach_cancel),
    	(brasero_file_monitor_foreach_file_reset_cb),
    	(brasero_file_monitor_foreach_directory_reset_cb),
    	(brasero_file_monitor_reset), (brasero_file_monitor_init),
    	(brasero_file_monitor_finalize), (brasero_file_monitor_class_init):
    	* libbrasero-burn/brasero-file-monitor.h:
    	* libbrasero-burn/brasero-file-node.c (brasero_file_node_root_new),
    	(brasero_file_node_get_root), (brasero_file_node_get_depth),
    	(brasero_file_node_get_tree_stats),
    	(brasero_file_node_sort_default_cb),
    	(brasero_file_node_sort_name_cb), (brasero_file_node_sort_size_cb),
    	(brasero_file_node_sort_mime_cb), (brasero_file_node_insert),
    	(brasero_file_node_need_resort), (brasero_file_node_sort_children),
    	(brasero_file_node_reverse_children),
    	(brasero_file_node_nth_child), (brasero_file_node_get_n_children),
    	(brasero_file_node_get_pos_as_child),
    	(brasero_file_node_is_ancestor),
    	(brasero_file_node_check_name_existence),
    	(brasero_file_node_check_imported_sibling),
    	(brasero_file_node_validate_utf8_name), (brasero_file_node_graft),
    	(brasero_file_node_ungraft), (brasero_file_node_rename),
    	(brasero_file_node_add), (brasero_file_node_set_from_info),
    	(brasero_file_node_get_uri_name), (brasero_file_node_new_loading),
    	(brasero_file_node_new_from_info),
    	(brasero_file_node_new_imported_session_file),
    	(brasero_file_node_new_empty_folder), (brasero_file_node_unlink),
    	(brasero_file_node_move_from), (brasero_file_node_move_to),
    	(brasero_file_node_destroy_with_children),
    	(brasero_file_node_destroy),
    	(brasero_file_node_save_imported_children),
    	(brasero_file_node_save_imported):
    	* libbrasero-burn/brasero-file-node.h:
    	* libbrasero-burn/brasero-session-helper.h:
    	* libbrasero-burn/brasero-track-data-cfg.c
    	(brasero_track_data_cfg_add),
    	(brasero_track_data_cfg_add_empty_directory),
    	(brasero_track_data_cfg_remove), (brasero_track_data_cfg_rename),
    	(brasero_track_data_cfg_reset),
    	(brasero_track_data_cfg_get_restored_uri),
    	(brasero_track_data_cfg_exclude_uri),
    	(brasero_track_data_cfg_restore_uri),
    	(brasero_track_data_cfg_load_medium),
    	(brasero_track_data_cfg_unload_current_medium),
    	(brasero_track_data_cfg_get_current_medium),
    	(brasero_track_data_cfg_get_available_media),
    	(brasero_track_data_cfg_get_tree_model),
    	(brasero_track_data_cfg_get_fs),
    	(brasero_track_data_cfg_get_grafts),
    	(brasero_track_data_cfg_get_excluded),
    	(brasero_track_data_cfg_get_file_num),
    	(brasero_track_data_cfg_get_track_type),
    	(brasero_track_data_cfg_get_status),
    	(brasero_track_data_cfg_get_size), (brasero_track_data_cfg_init),
    	(brasero_track_data_cfg_finalize),
    	(brasero_track_data_cfg_class_init):
    	* libbrasero-burn/brasero-track-data-cfg.h:
    	* libbrasero-burn/eggtreemultidnd.c:
    	* libbrasero-burn/eggtreemultidnd.h:
    	* src/brasero-data-project.c:
    	* src/brasero-data-project.h:
    	* src/brasero-data-session.c:
    	* src/brasero-data-session.h:
    	* src/brasero-data-tree-model.c:
    	* src/brasero-data-tree-model.h:
    	* src/brasero-data-vfs.c:
    	* src/brasero-data-vfs.h:
    	* src/brasero-file-monitor.c:
    	* src/brasero-file-monitor.h:
    	* src/brasero-file-node.c:
    	* src/brasero-file-node.h:
---
 ChangeLog                                          |  265 +++++++++++++
 libbrasero-burn/Makefile.am                        |   20 +-
 {src => libbrasero-burn}/brasero-data-project.c    |    6 +-
 {src => libbrasero-burn}/brasero-data-project.h    |    0
 {src => libbrasero-burn}/brasero-data-session.c    |    2 +-
 {src => libbrasero-burn}/brasero-data-session.h    |    0
 {src => libbrasero-burn}/brasero-data-tree-model.c |    3 +-
 {src => libbrasero-burn}/brasero-data-tree-model.h |    0
 {src => libbrasero-burn}/brasero-data-vfs.c        |   12 +-
 {src => libbrasero-burn}/brasero-data-vfs.h        |    0
 {src => libbrasero-burn}/brasero-file-monitor.c    |    0
 {src => libbrasero-burn}/brasero-file-monitor.h    |    0
 {src => libbrasero-burn}/brasero-file-node.c       |    4 +-
 {src => libbrasero-burn}/brasero-file-node.h       |    0
 libbrasero-burn/brasero-session-helper.h           |   79 ++++
 libbrasero-burn/brasero-track-data-cfg.c           |  401 ++++++++++++++++++++
 libbrasero-burn/brasero-track-data-cfg.h           |  112 ++++++
 libbrasero-burn/eggtreemultidnd.c                  |    1 +
 libbrasero-burn/eggtreemultidnd.h                  |    1 +
 libbrasero-burn/libbrasero-marshal.c               |  268 +++++++++++++-
 libbrasero-burn/libbrasero-marshal.h               |   54 +++-
 libbrasero-burn/libbrasero-marshal.list            |    6 +
 libbrasero-utils/brasero-misc.c                    |  118 ++++++
 libbrasero-utils/brasero-misc.h                    |    5 +
 src/Makefile.am                                    |   14 -
 src/brasero-audio-disc.c                           |    1 -
 src/brasero-utils.c                                |  118 ------
 src/brasero-utils.h                                |    7 -
 src/main.c                                         |    1 -
 29 files changed, 1338 insertions(+), 160 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 845a082..e7bac65 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,270 @@
 2009-04-22  Philippe Rouquier  <bonfire-app wanadoo fr>
 
+	Move a few files to library again and create a new type of track
+	to have data projects autoconfigure themselves.
+
+	* libbrasero-burn/brasero-data-project.c
+	(brasero_data_project_file_signal),
+	(brasero_data_project_reference_new),
+	(brasero_data_project_reference_free),
+	(brasero_data_project_reference_get),
+	(brasero_data_project_reference_remove_children_cb),
+	(brasero_data_project_reference_invalidate),
+	(brasero_data_project_joliet_hash),
+	(brasero_data_project_joliet_equal),
+	(brasero_data_project_joliet_set_key),
+	(brasero_data_project_joliet_add_node),
+	(brasero_data_project_joliet_remove_node),
+	(brasero_data_project_joliet_remove_children_node_cb),
+	(brasero_data_project_joliet_remove_children_node),
+	(brasero_data_project_node_to_uri),
+	(brasero_data_project_find_child_node),
+	(brasero_data_project_uri_to_nodes),
+	(brasero_data_project_node_changed),
+	(brasero_data_project_reorder_children),
+	(brasero_data_project_resort_tree),
+	(brasero_data_project_reverse_children),
+	(brasero_data_project_reverse_tree),
+	(brasero_data_project_set_sort_function),
+	(brasero_data_project_uri_has_parent),
+	(brasero_data_project_uri_is_graft_needed),
+	(brasero_data_project_uri_remove_graft),
+	(brasero_data_project_graft_is_needed),
+	(brasero_data_project_uri_add_graft),
+	(brasero_data_project_uri_ensure_graft),
+	(brasero_data_project_uri_graft_nodes),
+	(brasero_data_project_add_node_and_children),
+	(brasero_data_project_remove_node_children_graft_cb),
+	(brasero_data_project_remove_node_children_graft),
+	(brasero_data_project_monitor_cancel_foreach_cb),
+	(brasero_data_project_node_removed),
+	(brasero_data_project_remove_real),
+	(brasero_data_project_convert_to_fake),
+	(brasero_data_project_remove_node),
+	(brasero_data_project_destroy_node),
+	(brasero_data_project_is_deep), (brasero_data_project_move_node),
+	(brasero_data_project_rename_node),
+	(brasero_data_project_add_node_real),
+	(brasero_data_project_restore_uri),
+	(brasero_data_project_exclude_uri),
+	(brasero_data_project_add_imported_session_file),
+	(brasero_data_project_add_empty_directory),
+	(brasero_data_project_update_uri),
+	(brasero_data_project_node_loaded),
+	(brasero_data_project_node_reloaded),
+	(brasero_data_project_add_loading_node),
+	(brasero_data_project_directory_node_loaded),
+	(brasero_data_project_add_node_from_info),
+	(brasero_data_project_node_to_path),
+	(_foreach_grafts_make_list_cb),
+	(_foreach_joliet_incompatible_make_list_cb),
+	(brasero_data_project_get_contents),
+	(brasero_data_project_has_symlinks),
+	(brasero_data_project_is_joliet_compliant),
+	(brasero_data_project_is_video_project),
+	(brasero_data_project_is_empty),
+	(brasero_data_project_create_path),
+	(brasero_data_project_skip_existing),
+	(brasero_data_project_add_path),
+	(brasero_data_project_add_excluded_uri),
+	(brasero_data_project_load_contents_notify_directory),
+	(brasero_data_project_load_contents_notify),
+	(brasero_data_project_load_contents),
+	(brasero_data_project_sum_graft_size_cb),
+	(brasero_data_project_get_size),
+	(brasero_data_project_folder_size_cb),
+	(brasero_data_project_get_folder_size),
+	(brasero_data_project_init), (brasero_data_project_get_root),
+	(brasero_data_project_clear_grafts_cb),
+	(brasero_data_project_clear_joliet_cb),
+	(brasero_data_project_clear), (brasero_data_project_reset),
+	(brasero_data_project_finalize), (brasero_data_project_file_added),
+	(brasero_data_project_file_update_URI),
+	(brasero_data_project_file_update_name),
+	(brasero_data_project_file_graft),
+	(brasero_data_project_file_renamed),
+	(brasero_data_project_file_moved),
+	(brasero_data_project_file_removed),
+	(brasero_data_project_file_modified),
+	(brasero_data_project_class_init):
+	* libbrasero-burn/brasero-data-project.h:
+	* libbrasero-burn/brasero-data-session.c
+	(brasero_io_image_directory_contents_destroy),
+	(brasero_io_image_directory_contents_thread),
+	(brasero_io_load_image_directory),
+	(brasero_data_session_check_size),
+	(brasero_data_session_size_changed),
+	(brasero_data_session_remove_last),
+	(brasero_data_session_load_dir_destroy),
+	(brasero_data_session_load_dir_result),
+	(brasero_data_session_load_directory_contents_real),
+	(brasero_data_session_load_directory_contents),
+	(brasero_data_session_add_last),
+	(brasero_data_session_has_available_media),
+	(brasero_data_session_get_available_media),
+	(brasero_data_session_get_loaded_medium),
+	(brasero_data_session_is_valid_multi),
+	(brasero_data_session_disc_added_cb),
+	(brasero_data_session_disc_removed_cb),
+	(brasero_data_session_init), (brasero_data_session_stop_io),
+	(brasero_data_session_reset), (brasero_data_session_finalize),
+	(brasero_data_session_class_init):
+	* libbrasero-burn/brasero-data-session.h:
+	* libbrasero-burn/brasero-data-tree-model.c
+	(brasero_data_tree_model_iter_parent),
+	(brasero_data_tree_model_iter_nth_child),
+	(brasero_data_tree_model_iter_n_children),
+	(brasero_data_tree_model_iter_has_child),
+	(brasero_data_tree_model_iter_children),
+	(brasero_data_tree_model_iter_next),
+	(brasero_data_tree_model_node_shown),
+	(brasero_data_tree_model_node_hidden),
+	(brasero_data_tree_model_get_value),
+	(brasero_data_tree_model_node_to_path),
+	(brasero_data_tree_model_get_path),
+	(brasero_data_tree_model_path_to_node),
+	(brasero_data_tree_model_get_iter),
+	(brasero_data_tree_model_get_column_type),
+	(brasero_data_tree_model_get_n_columns),
+	(brasero_data_tree_model_get_flags),
+	(brasero_data_tree_model_multi_row_draggable),
+	(brasero_data_tree_model_multi_drag_data_get),
+	(brasero_data_tree_model_multi_drag_data_delete),
+	(brasero_data_tree_model_drag_data_received),
+	(brasero_data_tree_model_row_drop_possible),
+	(brasero_data_tree_model_drag_data_delete),
+	(brasero_data_tree_model_get_sort_column_id),
+	(brasero_data_tree_model_set_sort_column_id),
+	(brasero_data_tree_model_has_default_sort_func),
+	(brasero_data_tree_model_clear), (brasero_data_tree_model_reset),
+	(brasero_data_tree_model_node_added),
+	(brasero_data_tree_model_node_removed),
+	(brasero_data_tree_model_node_changed),
+	(brasero_data_tree_model_node_reordered),
+	(brasero_data_tree_model_activity_changed),
+	(brasero_data_tree_model_init), (brasero_data_tree_model_finalize),
+	(brasero_data_tree_model_iface_init),
+	(brasero_data_tree_model_multi_drag_source_iface_init),
+	(brasero_data_tree_model_drag_source_iface_init),
+	(brasero_data_tree_model_drag_dest_iface_init),
+	(brasero_data_tree_model_sortable_iface_init),
+	(brasero_data_tree_model_class_init),
+	(brasero_data_tree_model_new):
+	* libbrasero-burn/brasero-data-tree-model.h:
+	* libbrasero-burn/brasero-data-vfs.c
+	(brasero_data_vfs_restored_list_cb),
+	(brasero_data_vfs_get_restored), (brasero_data_vfs_add_restored),
+	(brasero_data_vfs_remove_restored), (brasero_data_vfs_is_active),
+	(brasero_data_vfs_is_loading_uri),
+	(brasero_data_vfs_check_uri_result),
+	(brasero_data_vfs_remove_from_hash),
+	(brasero_data_vfs_directory_load_end),
+	(brasero_data_vfs_directory_check_symlink_loop),
+	(brasero_data_vfs_directory_load_result),
+	(brasero_data_vfs_load_directory),
+	(brasero_data_vfs_loading_node_end),
+	(brasero_data_vfs_emit_image_signal),
+	(brasero_data_vfs_loading_node_result),
+	(brasero_data_vfs_load_node), (brasero_data_vfs_loading_node),
+	(brasero_data_vfs_increase_priority_cb),
+	(brasero_data_vfs_require_higher_priority),
+	(brasero_data_vfs_require_directory_contents),
+	(brasero_data_vfs_require_node_load), (brasero_data_vfs_load_mime),
+	(brasero_data_vfs_node_added), (brasero_data_vfs_empty_loading_cb),
+	(brasero_data_vfs_empty_filtered_cb), (brasero_data_vfs_clear),
+	(brasero_data_vfs_remove_filtered_uris),
+	(brasero_data_vfs_uri_removed), (brasero_data_vfs_reset),
+	(brasero_data_vfs_filter_hidden_changed),
+	(brasero_data_vfs_filter_broken_sym_changed),
+	(brasero_data_vfs_replace_sym_changed), (brasero_data_vfs_init),
+	(brasero_data_vfs_finalize), (brasero_data_vfs_class_init):
+	* libbrasero-burn/brasero-data-vfs.h:
+	* libbrasero-burn/brasero-file-monitor.c
+	(brasero_inotify_file_data_free),
+	(brasero_file_monitor_moved_to_event),
+	(brasero_file_monitor_move_timeout_cb),
+	(brasero_file_monitor_moved_from_event),
+	(brasero_file_monitor_directory_event),
+	(brasero_file_monitor_inotify_file_event),
+	(brasero_file_monitor_inotify_monitor_cb),
+	(brasero_file_monitor_start_monitoring_real),
+	(brasero_file_monitor_single_file),
+	(brasero_file_monitor_directory_contents),
+	(brasero_file_monitor_foreach_cancel_file_cb),
+	(brasero_file_monitor_foreach_cancel_directory_cb),
+	(brasero_file_monitor_foreach_cancel),
+	(brasero_file_monitor_foreach_file_reset_cb),
+	(brasero_file_monitor_foreach_directory_reset_cb),
+	(brasero_file_monitor_reset), (brasero_file_monitor_init),
+	(brasero_file_monitor_finalize), (brasero_file_monitor_class_init):
+	* libbrasero-burn/brasero-file-monitor.h:
+	* libbrasero-burn/brasero-file-node.c (brasero_file_node_root_new),
+	(brasero_file_node_get_root), (brasero_file_node_get_depth),
+	(brasero_file_node_get_tree_stats),
+	(brasero_file_node_sort_default_cb),
+	(brasero_file_node_sort_name_cb), (brasero_file_node_sort_size_cb),
+	(brasero_file_node_sort_mime_cb), (brasero_file_node_insert),
+	(brasero_file_node_need_resort), (brasero_file_node_sort_children),
+	(brasero_file_node_reverse_children),
+	(brasero_file_node_nth_child), (brasero_file_node_get_n_children),
+	(brasero_file_node_get_pos_as_child),
+	(brasero_file_node_is_ancestor),
+	(brasero_file_node_check_name_existence),
+	(brasero_file_node_check_imported_sibling),
+	(brasero_file_node_validate_utf8_name), (brasero_file_node_graft),
+	(brasero_file_node_ungraft), (brasero_file_node_rename),
+	(brasero_file_node_add), (brasero_file_node_set_from_info),
+	(brasero_file_node_get_uri_name), (brasero_file_node_new_loading),
+	(brasero_file_node_new_from_info),
+	(brasero_file_node_new_imported_session_file),
+	(brasero_file_node_new_empty_folder), (brasero_file_node_unlink),
+	(brasero_file_node_move_from), (brasero_file_node_move_to),
+	(brasero_file_node_destroy_with_children),
+	(brasero_file_node_destroy),
+	(brasero_file_node_save_imported_children),
+	(brasero_file_node_save_imported):
+	* libbrasero-burn/brasero-file-node.h:
+	* libbrasero-burn/brasero-session-helper.h:
+	* libbrasero-burn/brasero-track-data-cfg.c
+	(brasero_track_data_cfg_add),
+	(brasero_track_data_cfg_add_empty_directory),
+	(brasero_track_data_cfg_remove), (brasero_track_data_cfg_rename),
+	(brasero_track_data_cfg_reset),
+	(brasero_track_data_cfg_get_restored_uri),
+	(brasero_track_data_cfg_exclude_uri),
+	(brasero_track_data_cfg_restore_uri),
+	(brasero_track_data_cfg_load_medium),
+	(brasero_track_data_cfg_unload_current_medium),
+	(brasero_track_data_cfg_get_current_medium),
+	(brasero_track_data_cfg_get_available_media),
+	(brasero_track_data_cfg_get_tree_model),
+	(brasero_track_data_cfg_get_fs),
+	(brasero_track_data_cfg_get_grafts),
+	(brasero_track_data_cfg_get_excluded),
+	(brasero_track_data_cfg_get_file_num),
+	(brasero_track_data_cfg_get_track_type),
+	(brasero_track_data_cfg_get_status),
+	(brasero_track_data_cfg_get_size), (brasero_track_data_cfg_init),
+	(brasero_track_data_cfg_finalize),
+	(brasero_track_data_cfg_class_init):
+	* libbrasero-burn/brasero-track-data-cfg.h:
+	* libbrasero-burn/eggtreemultidnd.c:
+	* libbrasero-burn/eggtreemultidnd.h:
+	* src/brasero-data-project.c:
+	* src/brasero-data-project.h:
+	* src/brasero-data-session.c:
+	* src/brasero-data-session.h:
+	* src/brasero-data-tree-model.c:
+	* src/brasero-data-tree-model.h:
+	* src/brasero-data-vfs.c:
+	* src/brasero-data-vfs.h:
+	* src/brasero-file-monitor.c:
+	* src/brasero-file-monitor.h:
+	* src/brasero-file-node.c:
+	* src/brasero-file-node.h:
+
+2009-04-22  Philippe Rouquier  <bonfire-app wanadoo fr>
+
 	Moved some files to libbrasero-utils so they can be used by
 	libbrasero-burn as well
 
diff --git a/libbrasero-burn/Makefile.am b/libbrasero-burn/Makefile.am
index 57e84c2..3cf34d6 100644
--- a/libbrasero-burn/Makefile.am
+++ b/libbrasero-burn/Makefile.am
@@ -172,7 +172,25 @@ libbrasero_burn_la_SOURCES = 		\
 	brasero-status.h                 \
 	brasero-status-dialog.c                 \
 	brasero-status-dialog.h                 \
-	brasero-session-helper.h
+	brasero-session-helper.h                 \
+	brasero-data-project.c                 \
+	brasero-data-project.h                 \
+	brasero-data-session.c                 \
+	brasero-data-session.h                 \
+	brasero-data-vfs.c                 \
+	brasero-data-vfs.h                 \
+	brasero-file-node.c                 \
+	brasero-file-node.h                 \
+	brasero-data-tree-model.c                 \
+	brasero-data-tree-model.h                 \
+	brasero-track-data-cfg.c                 \
+	brasero-track-data-cfg.h                 \
+	eggtreemultidnd.c                 \
+	eggtreemultidnd.h
+
+if BUILD_INOTIFY
+libbrasero_burn_la_SOURCES += brasero-file-monitor.c brasero-file-monitor.h
+endif
 
 EXTRA_DIST =			\
 	libbrasero-marshal.list
diff --git a/src/brasero-data-project.c b/libbrasero-burn/brasero-data-project.c
similarity index 99%
rename from src/brasero-data-project.c
rename to libbrasero-burn/brasero-data-project.c
index 5a7cb7d..b87cc42 100644
--- a/src/brasero-data-project.c
+++ b/libbrasero-burn/brasero-data-project.c
@@ -36,10 +36,12 @@
 
 #include <gconf/gconf-client.h>
 
+#include "brasero-units.h"
+
 #include "brasero-data-project.h"
-#include "brasero-marshal.h"
+#include "libbrasero-marshal.h"
 
-#include "brasero-utils.h"
+#include "brasero-misc.h"
 #include "brasero-io.h"
 
 #include "brasero-track-data.h"
diff --git a/src/brasero-data-project.h b/libbrasero-burn/brasero-data-project.h
similarity index 100%
rename from src/brasero-data-project.h
rename to libbrasero-burn/brasero-data-project.h
diff --git a/src/brasero-data-session.c b/libbrasero-burn/brasero-data-session.c
similarity index 99%
rename from src/brasero-data-session.c
rename to libbrasero-burn/brasero-data-session.c
index 73acb60..9b731e0 100644
--- a/src/brasero-data-session.c
+++ b/libbrasero-burn/brasero-data-session.c
@@ -43,7 +43,7 @@
 #include "brasero-file-node.h"
 #include "brasero-io.h"
 
-#include "brasero-marshal.h"
+#include "libbrasero-marshal.h"
 
 typedef struct _BraseroDataSessionPrivate BraseroDataSessionPrivate;
 struct _BraseroDataSessionPrivate
diff --git a/src/brasero-data-session.h b/libbrasero-burn/brasero-data-session.h
similarity index 100%
rename from src/brasero-data-session.h
rename to libbrasero-burn/brasero-data-session.h
diff --git a/src/brasero-data-tree-model.c b/libbrasero-burn/brasero-data-tree-model.c
similarity index 99%
rename from src/brasero-data-tree-model.c
rename to libbrasero-burn/brasero-data-tree-model.c
index 490cc38..4d90c71 100644
--- a/src/brasero-data-tree-model.c
+++ b/libbrasero-burn/brasero-data-tree-model.c
@@ -37,7 +37,6 @@
 #include "brasero-data-project.h"
 #include "brasero-data-vfs.h"
 #include "brasero-file-node.h"
-#include "brasero-utils.h"
 
 #include "eggtreemultidnd.h"
 
@@ -547,7 +546,7 @@ brasero_data_tree_model_get_value (GtkTreeModel *model,
 			g_value_set_string (value, "media-cdrom");
 		}
 		else if (BRASERO_FILE_NODE_MIME (node)) {
-			const gchar *icon_string = BRASERO_DEFAULT_ICON;
+			const gchar *icon_string = "text-x-preview";
 			GIcon *icon;
 
 			/* NOTE: implemented in glib 2.15.6 (not for windows though) */
diff --git a/src/brasero-data-tree-model.h b/libbrasero-burn/brasero-data-tree-model.h
similarity index 100%
rename from src/brasero-data-tree-model.h
rename to libbrasero-burn/brasero-data-tree-model.h
diff --git a/src/brasero-data-vfs.c b/libbrasero-burn/brasero-data-vfs.c
similarity index 99%
rename from src/brasero-data-vfs.c
rename to libbrasero-burn/brasero-data-vfs.c
index 36fbc18..de509fc 100644
--- a/src/brasero-data-vfs.c
+++ b/libbrasero-burn/brasero-data-vfs.c
@@ -31,13 +31,13 @@
 
 #include <gconf/gconf-client.h>
 
+#include "brasero-misc.h"
+
 #include "brasero-data-vfs.h"
 #include "brasero-data-project.h"
 #include "brasero-file-node.h"
 #include "brasero-io.h"
-#include "brasero-utils.h"
-#include "brasero-marshal.h"
-#include "brasero-utils.h"
+#include "libbrasero-marshal.h"
 
 #include "burn-debug.h"
 
@@ -201,7 +201,7 @@ brasero_data_vfs_check_uri_result (BraseroDataVFS *self,
 					       0,
 					       uri);
 		}
-		else if (error->domain == BRASERO_ERROR && error->code == BRASERO_ERROR_SYMLINK_LOOP) {
+		else if (error->domain == BRASERO_UTILS_ERROR && error->code == BRASERO_UTILS_ERROR_SYMLINK_LOOP) {
 			brasero_data_project_exclude_uri (BRASERO_DATA_PROJECT (self),
 							  uri);
 
@@ -237,8 +237,8 @@ brasero_data_vfs_check_uri_result (BraseroDataVFS *self,
 		if (g_hash_table_lookup (priv->loading, uri)) {
 			GError *error;
 
-			error = g_error_new (BRASERO_ERROR,
-					     BRASERO_ERROR_GENERAL,
+			error = g_error_new (BRASERO_UTILS_ERROR,
+					     BRASERO_UTILS_ERROR_GENERAL,
 					     _("\"%s\" cannot be read"),
 					     g_file_info_get_name (info));
 			g_signal_emit (self,
diff --git a/src/brasero-data-vfs.h b/libbrasero-burn/brasero-data-vfs.h
similarity index 100%
rename from src/brasero-data-vfs.h
rename to libbrasero-burn/brasero-data-vfs.h
diff --git a/src/brasero-file-monitor.c b/libbrasero-burn/brasero-file-monitor.c
similarity index 100%
rename from src/brasero-file-monitor.c
rename to libbrasero-burn/brasero-file-monitor.c
diff --git a/src/brasero-file-monitor.h b/libbrasero-burn/brasero-file-monitor.h
similarity index 100%
rename from src/brasero-file-monitor.h
rename to libbrasero-burn/brasero-file-monitor.h
diff --git a/src/brasero-file-node.c b/libbrasero-burn/brasero-file-node.c
similarity index 99%
rename from src/brasero-file-node.c
rename to libbrasero-burn/brasero-file-node.c
index 17a1b4a..b4eb831 100644
--- a/src/brasero-file-node.c
+++ b/libbrasero-burn/brasero-file-node.c
@@ -31,12 +31,14 @@ fy
 
 #include <gio/gio.h>
 
+#include "brasero-misc.h"
+
 #include "burn-basics.h"
 
 #include "brasero-file-node.h"
-#include "brasero-utils.h"
 #include "brasero-io.h"
 
+
 BraseroFileNode *
 brasero_file_node_root_new (void)
 {
diff --git a/src/brasero-file-node.h b/libbrasero-burn/brasero-file-node.h
similarity index 100%
rename from src/brasero-file-node.h
rename to libbrasero-burn/brasero-file-node.h
diff --git a/libbrasero-burn/brasero-session-helper.h b/libbrasero-burn/brasero-session-helper.h
new file mode 100644
index 0000000..75577b0
--- /dev/null
+++ b/libbrasero-burn/brasero-session-helper.h
@@ -0,0 +1,79 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+/*
+ * Libbrasero-burn
+ * Copyright (C) Philippe Rouquier 2005-2009 <bonfire-app wanadoo fr>
+ *
+ * Libbrasero-burn is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * The Libbrasero-burn authors hereby grant permission for non-GPL compatible
+ * GStreamer plugins to be used and distributed together with GStreamer
+ * and Libbrasero-burn. This permission is above and beyond the permissions granted
+ * by the GPL license by which Libbrasero-burn is covered. If you modify this code
+ * you may extend this exception to your version of the code, but you are not
+ * obligated to do so. If you do not wish to do so, delete this exception
+ * statement from your version.
+ * 
+ * Libbrasero-burn is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Library General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to:
+ * 	The Free Software Foundation, Inc.,
+ * 	51 Franklin Street, Fifth Floor
+ * 	Boston, MA  02110-1301, USA.
+ */
+
+#ifndef _BURN_SESSION_HELPER_H_
+#define _BURN_SESSION_HELPER_H_
+
+#include <glib.h>
+
+#include "brasero-media.h"
+#include "brasero-drive.h"
+
+#include "brasero-session.h"
+
+G_BEGIN_DECLS
+
+/**
+ * Some convenience functions used internally
+ */
+
+BraseroMedia
+brasero_burn_session_get_dest_media (BraseroBurnSession *session);
+
+BraseroDrive *
+brasero_burn_session_get_src_drive (BraseroBurnSession *session);
+
+BraseroMedium *
+brasero_burn_session_get_src_medium (BraseroBurnSession *session);
+
+gboolean
+brasero_burn_session_is_dest_file (BraseroBurnSession *session);
+
+gboolean
+brasero_burn_session_same_src_dest_drive (BraseroBurnSession *session);
+
+#define BRASERO_BURN_SESSION_EJECT(session)					\
+(brasero_burn_session_get_flags ((session)) & BRASERO_BURN_FLAG_EJECT)
+
+#define BRASERO_BURN_SESSION_CHECK_SIZE(session)				\
+(brasero_burn_session_get_flags ((session)) & BRASERO_BURN_FLAG_CHECK_SIZE)
+
+#define BRASERO_BURN_SESSION_NO_TMP_FILE(session)				\
+(brasero_burn_session_get_flags ((session)) & BRASERO_BURN_FLAG_NO_TMP_FILES)
+
+#define BRASERO_BURN_SESSION_OVERBURN(session)					\
+(brasero_burn_session_get_flags ((session)) & BRASERO_BURN_FLAG_OVERBURN)
+
+#define BRASERO_BURN_SESSION_APPEND(session)					\
+(brasero_burn_session_get_flags ((session)) & (BRASERO_BURN_FLAG_APPEND|BRASERO_BURN_FLAG_MERGE))
+
+G_END_DECLS
+
+#endif
diff --git a/libbrasero-burn/brasero-track-data-cfg.c b/libbrasero-burn/brasero-track-data-cfg.c
new file mode 100644
index 0000000..1c56126
--- /dev/null
+++ b/libbrasero-burn/brasero-track-data-cfg.c
@@ -0,0 +1,401 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+/*
+ * Libbrasero-burn
+ * Copyright (C) Philippe Rouquier 2005-2009 <bonfire-app wanadoo fr>
+ *
+ * Libbrasero-burn is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * The Libbrasero-burn authors hereby grant permission for non-GPL compatible
+ * GStreamer plugins to be used and distributed together with GStreamer
+ * and Libbrasero-burn. This permission is above and beyond the permissions granted
+ * by the GPL license by which Libbrasero-burn is covered. If you modify this code
+ * you may extend this exception to your version of the code, but you are not
+ * obligated to do so. If you do not wish to do so, delete this exception
+ * statement from your version.
+ * 
+ * Libbrasero-burn is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Library General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to:
+ * 	The Free Software Foundation, Inc.,
+ * 	51 Franklin Street, Fifth Floor
+ * 	Boston, MA  02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include <glib.h>
+#include <glib/gi18n-lib.h>
+
+#include <gtk/gtk.h>
+
+#include "brasero-units.h"
+
+#include "brasero-track-data-cfg.h"
+
+#include "brasero-data-project.h"
+#include "brasero-data-tree-model.h"
+
+typedef struct _BraseroTrackDataCfgPrivate BraseroTrackDataCfgPrivate;
+struct _BraseroTrackDataCfgPrivate
+{
+	BraseroDataTreeModel *tree;
+};
+
+#define BRASERO_TRACK_DATA_CFG_PRIVATE(o)  (G_TYPE_INSTANCE_GET_PRIVATE ((o), BRASERO_TYPE_TRACK_DATA_CFG, BraseroTrackDataCfgPrivate))
+
+
+G_DEFINE_TYPE (BraseroTrackDataCfg, brasero_track_data_cfg, BRASERO_TYPE_TRACK_DATA);
+
+gboolean
+brasero_track_data_cfg_add (BraseroTrackDataCfg *track,
+			    const gchar *uri,
+			    GtkTreePath *parent)
+{
+	BraseroTrackDataCfgPrivate *priv;
+	BraseroFileNode *parent_node;
+
+	g_return_val_if_fail (BRASERO_TRACK_DATA_CFG (track), FALSE);
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+	parent_node = brasero_data_tree_model_path_to_node (BRASERO_DATA_TREE_MODEL (priv->tree), parent);
+	return (brasero_data_project_add_loading_node (BRASERO_DATA_PROJECT (priv->tree), uri, parent_node) != NULL);
+}
+
+gboolean
+brasero_track_data_cfg_add_empty_directory (BraseroTrackDataCfg *track,
+					    const gchar *name,
+					    GtkTreePath *parent)
+{
+	BraseroTrackDataCfgPrivate *priv;
+	BraseroFileNode *parent_node;
+
+	g_return_val_if_fail (BRASERO_TRACK_DATA_CFG (track), FALSE);
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+	parent_node = brasero_data_tree_model_path_to_node (BRASERO_DATA_TREE_MODEL (priv->tree), parent);
+	return (brasero_data_project_add_empty_directory (BRASERO_DATA_PROJECT (priv->tree), name, parent_node) != NULL);
+}
+
+void
+brasero_track_data_cfg_remove (BraseroTrackDataCfg *track,
+			       GtkTreePath *treepath)
+{
+	BraseroTrackDataCfgPrivate *priv;
+	BraseroFileNode *node;
+
+	g_return_if_fail (BRASERO_TRACK_DATA_CFG (track));
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+	node = brasero_data_tree_model_path_to_node (BRASERO_DATA_TREE_MODEL (priv->tree), treepath);
+	return brasero_data_project_remove_node (BRASERO_DATA_PROJECT (priv->tree), node);
+}
+
+gboolean
+brasero_track_data_cfg_rename (BraseroTrackDataCfg *track,
+			       const gchar *newname,
+			       GtkTreePath *treepath)
+{
+	BraseroTrackDataCfgPrivate *priv;
+	BraseroFileNode *node;
+
+	g_return_val_if_fail (BRASERO_TRACK_DATA_CFG (track), FALSE);
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+	node = brasero_data_tree_model_path_to_node (BRASERO_DATA_TREE_MODEL (priv->tree), treepath);
+	return brasero_data_project_rename_node (BRASERO_DATA_PROJECT (priv->tree),
+						 node,
+						 newname);
+}
+
+void
+brasero_track_data_cfg_reset (BraseroTrackDataCfg *track)
+{
+	BraseroTrackDataCfgPrivate *priv;
+
+	g_return_if_fail (BRASERO_TRACK_DATA_CFG (track));
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+	brasero_data_project_reset (BRASERO_DATA_PROJECT (priv->tree));
+}
+
+GSList *
+brasero_track_data_cfg_get_restored_uri (BraseroTrackDataCfg *track)
+{
+	BraseroTrackDataCfgPrivate *priv;
+	GSList *list = NULL;
+
+	g_return_val_if_fail (BRASERO_TRACK_DATA_CFG (track), NULL);
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+	brasero_data_vfs_get_restored (BRASERO_DATA_VFS (priv->tree), &list);
+	return list;
+}
+
+void
+brasero_track_data_cfg_exclude_uri (BraseroTrackDataCfg *track,
+				    const gchar *uri)
+{
+	BraseroTrackDataCfgPrivate *priv;
+
+	g_return_if_fail (BRASERO_TRACK_DATA_CFG (track));
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+	brasero_data_vfs_remove_restored (BRASERO_DATA_VFS (priv->tree), uri);
+	brasero_data_project_exclude_uri (BRASERO_DATA_PROJECT (priv->tree), uri);
+}
+
+void
+brasero_track_data_cfg_restore_uri (BraseroTrackDataCfg *track,
+				    const gchar *uri)
+{
+	BraseroTrackDataCfgPrivate *priv;
+
+	g_return_if_fail (BRASERO_TRACK_DATA_CFG (track));
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+	brasero_data_vfs_add_restored (BRASERO_DATA_VFS (priv->tree), uri);
+	brasero_data_project_restore_uri (BRASERO_DATA_PROJECT (priv->tree), uri);
+}
+
+gboolean
+brasero_track_data_cfg_load_medium (BraseroTrackDataCfg *track,
+				    BraseroMedium *medium,
+				    GError **error)
+{
+	BraseroTrackDataCfgPrivate *priv;
+
+	g_return_val_if_fail (BRASERO_TRACK_DATA_CFG (track), FALSE);
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+	return brasero_data_session_add_last (BRASERO_DATA_SESSION (track),
+					      medium,
+					      error);
+}
+
+void
+brasero_track_data_cfg_unload_current_medium (BraseroTrackDataCfg *track)
+{
+	BraseroTrackDataCfgPrivate *priv;
+
+	g_return_if_fail (BRASERO_TRACK_DATA_CFG (track));
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+	brasero_data_session_remove_last (BRASERO_DATA_SESSION (track));
+}
+
+BraseroMedium *
+brasero_track_data_cfg_get_current_medium (BraseroTrackDataCfg *track)
+{
+	BraseroTrackDataCfgPrivate *priv;
+
+	g_return_val_if_fail (BRASERO_TRACK_DATA_CFG (track), NULL);
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+	return brasero_data_session_get_loaded_medium (BRASERO_DATA_SESSION (track));
+}
+
+GSList *
+brasero_track_data_cfg_get_available_media (BraseroTrackDataCfg *track)
+{
+	BraseroTrackDataCfgPrivate *priv;
+
+	g_return_val_if_fail (BRASERO_TRACK_DATA_CFG (track), NULL);
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+	return brasero_data_session_get_available_media (BRASERO_DATA_SESSION (track));
+}
+
+GtkTreeModel *
+brasero_track_data_cfg_get_tree_model (BraseroTrackDataCfg *track)
+{
+	BraseroTrackDataCfgPrivate *priv;
+
+	g_return_val_if_fail (BRASERO_IS_TRACK_DATA_CFG (track), NULL);
+
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+	return GTK_TREE_MODEL (priv->tree);
+}
+
+static BraseroImageFS
+brasero_track_data_cfg_get_fs (BraseroTrackData *track)
+{
+	BraseroTrackDataCfgPrivate *priv;
+	BraseroFileTreeStats *stats;
+	BraseroImageFS fs_type;
+	BraseroFileNode *root;
+
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+
+	root = brasero_data_project_get_root (BRASERO_DATA_PROJECT (priv->tree));
+	stats = BRASERO_FILE_NODE_STATS (root);
+
+	fs_type = BRASERO_IMAGE_FS_ISO;
+	if (brasero_data_project_has_symlinks (BRASERO_DATA_PROJECT (priv->tree)))
+		fs_type |= BRASERO_IMAGE_FS_SYMLINK;
+	else {
+		/* These two are incompatible with symlinks */
+		if (brasero_data_project_is_joliet_compliant (BRASERO_DATA_PROJECT (priv->tree)))
+			fs_type |= BRASERO_IMAGE_FS_JOLIET;
+
+		if (brasero_data_project_is_video_project (BRASERO_DATA_PROJECT (priv->tree)))
+			fs_type |= BRASERO_IMAGE_FS_VIDEO;
+	}
+
+	if (stats->num_2GiB != 0) {
+		fs_type |= BRASERO_IMAGE_ISO_FS_LEVEL_3;
+		if (!(fs_type & BRASERO_IMAGE_FS_SYMLINK))
+			fs_type |= BRASERO_IMAGE_FS_UDF;
+	}
+
+	if (stats->num_deep != 0)
+		fs_type |= BRASERO_IMAGE_ISO_FS_DEEP_DIRECTORY;
+
+	return fs_type;
+}
+
+static GSList *
+brasero_track_data_cfg_get_grafts (BraseroTrackData *track)
+{
+	BraseroTrackDataCfgPrivate *priv;
+	BraseroImageFS fs_type;
+	GSList *grafts = NULL;
+
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+
+	/* append a slash for mkisofs */
+	brasero_data_project_get_contents (BRASERO_DATA_PROJECT (priv->tree),
+					   &grafts,
+					   NULL,
+					   (fs_type & BRASERO_IMAGE_FS_JOLIET) != 0,
+					   TRUE);
+	return grafts;
+}
+
+static GSList *
+brasero_track_data_cfg_get_excluded (BraseroTrackData *track)
+{
+	BraseroTrackDataCfgPrivate *priv;
+	GSList *unreadable = NULL;
+	BraseroImageFS fs_type;
+
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+
+	/* append a slash for mkisofs */
+	brasero_data_project_get_contents (BRASERO_DATA_PROJECT (priv->tree),
+					   NULL,
+					   &unreadable,
+					   (fs_type & BRASERO_IMAGE_FS_JOLIET) != 0,
+					   TRUE);
+	return unreadable;
+}
+
+static guint64
+brasero_track_data_cfg_get_file_num (BraseroTrackData *track)
+{
+	BraseroTrackDataCfgPrivate *priv;
+	BraseroFileTreeStats *stats;
+	BraseroFileNode *root;
+
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+
+	root = brasero_data_project_get_root (BRASERO_DATA_PROJECT (priv->tree));
+	stats = BRASERO_FILE_NODE_STATS (root);
+
+	return stats->children;
+}
+
+static BraseroTrackDataType
+brasero_track_data_cfg_get_track_type (BraseroTrack *track,
+				       BraseroTrackType *type)
+{
+	BraseroTrackDataCfgPrivate *priv;
+
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+
+	if (!type)
+		return BRASERO_TRACK_TYPE_DATA;
+
+	brasero_track_type_set_has_data (type);
+	brasero_track_type_set_data_fs (type, brasero_track_data_cfg_get_fs (BRASERO_TRACK_DATA (track)));
+
+	return BRASERO_TRACK_TYPE_DATA;
+}
+
+static BraseroBurnResult
+brasero_track_data_cfg_get_status (BraseroTrack *track,
+				   BraseroStatus *status)
+{
+	BraseroTrackDataCfgPrivate *priv;
+
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+
+	/* This one goes before the next since a node may be loading but not
+	 * yet in the project and therefore project will look empty */
+	if (brasero_data_vfs_is_active (BRASERO_DATA_VFS (priv->tree))) {
+		if (status)
+			brasero_status_set_not_ready (status,
+						      -1,
+						      g_strdup (_("Analysing files")));
+
+		return BRASERO_BURN_NOT_READY;
+	}
+
+	if (brasero_data_project_is_empty (BRASERO_DATA_PROJECT (priv->tree)))
+		return BRASERO_BURN_ERR;
+
+	return BRASERO_BURN_OK;
+}
+
+static BraseroBurnResult
+brasero_track_data_cfg_get_size (BraseroTrack *track,
+				 goffset *blocks,
+				 goffset *block_size)
+{
+	BraseroTrackDataCfgPrivate *priv;
+	goffset bytes = 0;
+
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
+
+	bytes = brasero_data_project_get_size (BRASERO_DATA_PROJECT (priv->tree));
+	if (blocks)
+		*blocks = BRASERO_BYTES_TO_SECTORS (bytes, 2048);
+
+	if (block_size)
+		*block_size = 2048;
+
+	return BRASERO_BURN_OK;
+}
+
+static void
+brasero_track_data_cfg_init (BraseroTrackDataCfg *object)
+{
+	BraseroTrackDataCfgPrivate *priv;
+
+	priv = BRASERO_TRACK_DATA_CFG_PRIVATE (object);
+	priv->tree = brasero_data_tree_model_new ();
+}
+
+static void
+brasero_track_data_cfg_finalize (GObject *object)
+{
+	G_OBJECT_CLASS (brasero_track_data_cfg_parent_class)->finalize (object);
+}
+
+static void
+brasero_track_data_cfg_class_init (BraseroTrackDataCfgClass *klass)
+{
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+	BraseroTrackClass *track_class = BRASERO_TRACK_CLASS (klass);
+	BraseroTrackDataClass *parent_class = BRASERO_TRACK_DATA_CLASS (klass);
+
+	g_type_class_add_private (klass, sizeof (BraseroTrackDataCfgPrivate));
+
+	object_class->finalize = brasero_track_data_cfg_finalize;
+
+	track_class->get_size = brasero_track_data_cfg_get_size;
+	track_class->get_type = brasero_track_data_cfg_get_track_type;
+	track_class->get_status = brasero_track_data_cfg_get_status;
+
+	parent_class->get_fs = brasero_track_data_cfg_get_fs;
+	parent_class->get_grafts = brasero_track_data_cfg_get_grafts;
+	parent_class->get_excluded = brasero_track_data_cfg_get_excluded;
+	parent_class->get_file_num = brasero_track_data_cfg_get_file_num;
+}
+
diff --git a/libbrasero-burn/brasero-track-data-cfg.h b/libbrasero-burn/brasero-track-data-cfg.h
new file mode 100644
index 0000000..4c7292e
--- /dev/null
+++ b/libbrasero-burn/brasero-track-data-cfg.h
@@ -0,0 +1,112 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+/*
+ * Libbrasero-burn
+ * Copyright (C) Philippe Rouquier 2005-2009 <bonfire-app wanadoo fr>
+ *
+ * Libbrasero-burn is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * The Libbrasero-burn authors hereby grant permission for non-GPL compatible
+ * GStreamer plugins to be used and distributed together with GStreamer
+ * and Libbrasero-burn. This permission is above and beyond the permissions granted
+ * by the GPL license by which Libbrasero-burn is covered. If you modify this code
+ * you may extend this exception to your version of the code, but you are not
+ * obligated to do so. If you do not wish to do so, delete this exception
+ * statement from your version.
+ * 
+ * Libbrasero-burn is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Library General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to:
+ * 	The Free Software Foundation, Inc.,
+ * 	51 Franklin Street, Fifth Floor
+ * 	Boston, MA  02110-1301, USA.
+ */
+
+#ifndef _BRASERO_TRACK_DATA_CFG_H_
+#define _BRASERO_TRACK_DATA_CFG_H_
+
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <brasero-track-data.h>
+
+G_BEGIN_DECLS
+
+#define BRASERO_TYPE_TRACK_DATA_CFG             (brasero_track_data_cfg_get_type ())
+#define BRASERO_TRACK_DATA_CFG(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), BRASERO_TYPE_TRACK_DATA_CFG, BraseroTrackDataCfg))
+#define BRASERO_TRACK_DATA_CFG_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), BRASERO_TYPE_TRACK_DATA_CFG, BraseroTrackDataCfgClass))
+#define BRASERO_IS_TRACK_DATA_CFG(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BRASERO_TYPE_TRACK_DATA_CFG))
+#define BRASERO_IS_TRACK_DATA_CFG_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), BRASERO_TYPE_TRACK_DATA_CFG))
+#define BRASERO_TRACK_DATA_CFG_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), BRASERO_TYPE_TRACK_DATA_CFG, BraseroTrackDataCfgClass))
+
+typedef struct _BraseroTrackDataCfgClass BraseroTrackDataCfgClass;
+typedef struct _BraseroTrackDataCfg BraseroTrackDataCfg;
+
+struct _BraseroTrackDataCfgClass
+{
+	BraseroTrackDataClass parent_class;
+};
+
+struct _BraseroTrackDataCfg
+{
+	BraseroTrackData parent_instance;
+};
+
+GType brasero_track_data_cfg_get_type (void) G_GNUC_CONST;
+
+BraseroTrackDataCfg *
+brasero_track_data_cfg_new (void);
+
+GtkTreeModel *
+brasero_track_data_cfg_get_tree_model (BraseroTrackDataCfg *track);
+
+gboolean
+brasero_track_data_cfg_add (BraseroTrackDataCfg *track,
+			    const gchar *uri,
+			    GtkTreePath *parent);
+gboolean
+brasero_track_data_cfg_add_empty_directory (BraseroTrackDataCfg *track,
+					    const gchar *name,
+					    GtkTreePath *parent);
+
+void
+brasero_track_data_cfg_remove (BraseroTrackDataCfg *track,
+			       GtkTreePath *treepath);
+gboolean
+brasero_track_data_cfg_rename (BraseroTrackDataCfg *track,
+			       const gchar *newname,
+			       GtkTreePath *treepath);
+
+void
+brasero_track_data_cfg_reset (BraseroTrackDataCfg *track);
+
+void
+brasero_track_data_cfg_exclude_uri (BraseroTrackDataCfg *track,
+				    const gchar *uri);
+void
+brasero_track_data_cfg_restore_uri (BraseroTrackDataCfg *track,
+				    const gchar *uri);
+GSList *
+brasero_track_data_cfg_get_restored_uri (BraseroTrackDataCfg *track);
+
+gboolean
+brasero_track_data_cfg_load_medium (BraseroTrackDataCfg *track,
+				    BraseroMedium *medium,
+				    GError **error);
+void
+brasero_track_data_cfg_unload_current_medium (BraseroTrackDataCfg *track);
+
+BraseroMedium *
+brasero_track_data_cfg_get_current_medium (BraseroTrackDataCfg *track);
+
+GSList *
+brasero_track_data_cfg_get_available_media (BraseroTrackDataCfg *track);
+
+G_END_DECLS
+
+#endif /* _BRASERO_TRACK_DATA_CFG_H_ */
diff --git a/libbrasero-burn/eggtreemultidnd.c b/libbrasero-burn/eggtreemultidnd.c
new file mode 120000
index 0000000..31450fe
--- /dev/null
+++ b/libbrasero-burn/eggtreemultidnd.c
@@ -0,0 +1 @@
+../src/eggtreemultidnd.c
\ No newline at end of file
diff --git a/libbrasero-burn/eggtreemultidnd.h b/libbrasero-burn/eggtreemultidnd.h
new file mode 120000
index 0000000..116ea8e
--- /dev/null
+++ b/libbrasero-burn/eggtreemultidnd.h
@@ -0,0 +1 @@
+../src/eggtreemultidnd.h
\ No newline at end of file
diff --git a/libbrasero-burn/libbrasero-marshal.c b/libbrasero-burn/libbrasero-marshal.c
index 77b3db5..e6dcc55 100644
--- a/libbrasero-burn/libbrasero-marshal.c
+++ b/libbrasero-burn/libbrasero-marshal.c
@@ -139,7 +139,52 @@ brasero_marshal_INT__INT (GClosure     *closure,
   g_value_set_int (return_value, v_return);
 }
 
-/* INT:OBJECT,INT,INT (./libbrasero-marshal.list:3) */
+/* INT:STRING (./libbrasero-marshal.list:3) */
+extern void brasero_marshal_INT__STRING (GClosure     *closure,
+                                         GValue       *return_value,
+                                         guint         n_param_values,
+                                         const GValue *param_values,
+                                         gpointer      invocation_hint,
+                                         gpointer      marshal_data);
+void
+brasero_marshal_INT__STRING (GClosure     *closure,
+                             GValue       *return_value G_GNUC_UNUSED,
+                             guint         n_param_values,
+                             const GValue *param_values,
+                             gpointer      invocation_hint G_GNUC_UNUSED,
+                             gpointer      marshal_data)
+{
+  typedef gint (*GMarshalFunc_INT__STRING) (gpointer     data1,
+                                            gpointer     arg_1,
+                                            gpointer     data2);
+  register GMarshalFunc_INT__STRING callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gint v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 2);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_INT__STRING) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_string (param_values + 1),
+                       data2);
+
+  g_value_set_int (return_value, v_return);
+}
+
+/* INT:OBJECT,INT,INT (./libbrasero-marshal.list:4) */
 extern void brasero_marshal_INT__OBJECT_INT_INT (GClosure     *closure,
                                                  GValue       *return_value,
                                                  guint         n_param_values,
@@ -188,7 +233,7 @@ brasero_marshal_INT__OBJECT_INT_INT (GClosure     *closure,
   g_value_set_int (return_value, v_return);
 }
 
-/* INT:POINTER,BOOLEAN (./libbrasero-marshal.list:4) */
+/* INT:POINTER,BOOLEAN (./libbrasero-marshal.list:5) */
 extern void brasero_marshal_INT__POINTER_BOOLEAN (GClosure     *closure,
                                                   GValue       *return_value,
                                                   guint         n_param_values,
@@ -235,7 +280,224 @@ brasero_marshal_INT__POINTER_BOOLEAN (GClosure     *closure,
   g_value_set_int (return_value, v_return);
 }
 
-/* VOID:DOUBLE,DOUBLE,LONG (./libbrasero-marshal.list:5) */
+/* BOOLEAN:STRING (./libbrasero-marshal.list:6) */
+extern void brasero_marshal_BOOLEAN__STRING (GClosure     *closure,
+                                             GValue       *return_value,
+                                             guint         n_param_values,
+                                             const GValue *param_values,
+                                             gpointer      invocation_hint,
+                                             gpointer      marshal_data);
+void
+brasero_marshal_BOOLEAN__STRING (GClosure     *closure,
+                                 GValue       *return_value G_GNUC_UNUSED,
+                                 guint         n_param_values,
+                                 const GValue *param_values,
+                                 gpointer      invocation_hint G_GNUC_UNUSED,
+                                 gpointer      marshal_data)
+{
+  typedef gboolean (*GMarshalFunc_BOOLEAN__STRING) (gpointer     data1,
+                                                    gpointer     arg_1,
+                                                    gpointer     data2);
+  register GMarshalFunc_BOOLEAN__STRING callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gboolean v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 2);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_BOOLEAN__STRING) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_string (param_values + 1),
+                       data2);
+
+  g_value_set_boolean (return_value, v_return);
+}
+
+/* VOID:INT,STRING (./libbrasero-marshal.list:7) */
+extern void brasero_marshal_VOID__INT_STRING (GClosure     *closure,
+                                              GValue       *return_value,
+                                              guint         n_param_values,
+                                              const GValue *param_values,
+                                              gpointer      invocation_hint,
+                                              gpointer      marshal_data);
+void
+brasero_marshal_VOID__INT_STRING (GClosure     *closure,
+                                  GValue       *return_value G_GNUC_UNUSED,
+                                  guint         n_param_values,
+                                  const GValue *param_values,
+                                  gpointer      invocation_hint G_GNUC_UNUSED,
+                                  gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__INT_STRING) (gpointer     data1,
+                                                 gint         arg_1,
+                                                 gpointer     arg_2,
+                                                 gpointer     data2);
+  register GMarshalFunc_VOID__INT_STRING callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__INT_STRING) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_int (param_values + 1),
+            g_marshal_value_peek_string (param_values + 2),
+            data2);
+}
+
+/* VOID:POINTER,STRING (./libbrasero-marshal.list:8) */
+extern void brasero_marshal_VOID__POINTER_STRING (GClosure     *closure,
+                                                  GValue       *return_value,
+                                                  guint         n_param_values,
+                                                  const GValue *param_values,
+                                                  gpointer      invocation_hint,
+                                                  gpointer      marshal_data);
+void
+brasero_marshal_VOID__POINTER_STRING (GClosure     *closure,
+                                      GValue       *return_value G_GNUC_UNUSED,
+                                      guint         n_param_values,
+                                      const GValue *param_values,
+                                      gpointer      invocation_hint G_GNUC_UNUSED,
+                                      gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__POINTER_STRING) (gpointer     data1,
+                                                     gpointer     arg_1,
+                                                     gpointer     arg_2,
+                                                     gpointer     data2);
+  register GMarshalFunc_VOID__POINTER_STRING callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__POINTER_STRING) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_pointer (param_values + 1),
+            g_marshal_value_peek_string (param_values + 2),
+            data2);
+}
+
+/* VOID:OBJECT,BOOLEAN (./libbrasero-marshal.list:9) */
+extern void brasero_marshal_VOID__OBJECT_BOOLEAN (GClosure     *closure,
+                                                  GValue       *return_value,
+                                                  guint         n_param_values,
+                                                  const GValue *param_values,
+                                                  gpointer      invocation_hint,
+                                                  gpointer      marshal_data);
+void
+brasero_marshal_VOID__OBJECT_BOOLEAN (GClosure     *closure,
+                                      GValue       *return_value G_GNUC_UNUSED,
+                                      guint         n_param_values,
+                                      const GValue *param_values,
+                                      gpointer      invocation_hint G_GNUC_UNUSED,
+                                      gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__OBJECT_BOOLEAN) (gpointer     data1,
+                                                     gpointer     arg_1,
+                                                     gboolean     arg_2,
+                                                     gpointer     data2);
+  register GMarshalFunc_VOID__OBJECT_BOOLEAN callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__OBJECT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_object (param_values + 1),
+            g_marshal_value_peek_boolean (param_values + 2),
+            data2);
+}
+
+/* VOID:BOOLEAN,BOOLEAN (./libbrasero-marshal.list:10) */
+extern void brasero_marshal_VOID__BOOLEAN_BOOLEAN (GClosure     *closure,
+                                                   GValue       *return_value,
+                                                   guint         n_param_values,
+                                                   const GValue *param_values,
+                                                   gpointer      invocation_hint,
+                                                   gpointer      marshal_data);
+void
+brasero_marshal_VOID__BOOLEAN_BOOLEAN (GClosure     *closure,
+                                       GValue       *return_value G_GNUC_UNUSED,
+                                       guint         n_param_values,
+                                       const GValue *param_values,
+                                       gpointer      invocation_hint G_GNUC_UNUSED,
+                                       gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__BOOLEAN_BOOLEAN) (gpointer     data1,
+                                                      gboolean     arg_1,
+                                                      gboolean     arg_2,
+                                                      gpointer     data2);
+  register GMarshalFunc_VOID__BOOLEAN_BOOLEAN callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__BOOLEAN_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_boolean (param_values + 1),
+            g_marshal_value_peek_boolean (param_values + 2),
+            data2);
+}
+
+/* VOID:DOUBLE,DOUBLE,LONG (./libbrasero-marshal.list:11) */
 extern void brasero_marshal_VOID__DOUBLE_DOUBLE_LONG (GClosure     *closure,
                                                       GValue       *return_value,
                                                       guint         n_param_values,
diff --git a/libbrasero-burn/libbrasero-marshal.h b/libbrasero-burn/libbrasero-marshal.h
index 016f485..75e03f7 100644
--- a/libbrasero-burn/libbrasero-marshal.h
+++ b/libbrasero-burn/libbrasero-marshal.h
@@ -22,7 +22,15 @@ extern void brasero_marshal_INT__INT (GClosure     *closure,
                                       gpointer      invocation_hint,
                                       gpointer      marshal_data);
 
-/* INT:OBJECT,INT,INT (./libbrasero-marshal.list:3) */
+/* INT:STRING (./libbrasero-marshal.list:3) */
+extern void brasero_marshal_INT__STRING (GClosure     *closure,
+                                         GValue       *return_value,
+                                         guint         n_param_values,
+                                         const GValue *param_values,
+                                         gpointer      invocation_hint,
+                                         gpointer      marshal_data);
+
+/* INT:OBJECT,INT,INT (./libbrasero-marshal.list:4) */
 extern void brasero_marshal_INT__OBJECT_INT_INT (GClosure     *closure,
                                                  GValue       *return_value,
                                                  guint         n_param_values,
@@ -30,7 +38,7 @@ extern void brasero_marshal_INT__OBJECT_INT_INT (GClosure     *closure,
                                                  gpointer      invocation_hint,
                                                  gpointer      marshal_data);
 
-/* INT:POINTER,BOOLEAN (./libbrasero-marshal.list:4) */
+/* INT:POINTER,BOOLEAN (./libbrasero-marshal.list:5) */
 extern void brasero_marshal_INT__POINTER_BOOLEAN (GClosure     *closure,
                                                   GValue       *return_value,
                                                   guint         n_param_values,
@@ -38,7 +46,47 @@ extern void brasero_marshal_INT__POINTER_BOOLEAN (GClosure     *closure,
                                                   gpointer      invocation_hint,
                                                   gpointer      marshal_data);
 
-/* VOID:DOUBLE,DOUBLE,LONG (./libbrasero-marshal.list:5) */
+/* BOOLEAN:STRING (./libbrasero-marshal.list:6) */
+extern void brasero_marshal_BOOLEAN__STRING (GClosure     *closure,
+                                             GValue       *return_value,
+                                             guint         n_param_values,
+                                             const GValue *param_values,
+                                             gpointer      invocation_hint,
+                                             gpointer      marshal_data);
+
+/* VOID:INT,STRING (./libbrasero-marshal.list:7) */
+extern void brasero_marshal_VOID__INT_STRING (GClosure     *closure,
+                                              GValue       *return_value,
+                                              guint         n_param_values,
+                                              const GValue *param_values,
+                                              gpointer      invocation_hint,
+                                              gpointer      marshal_data);
+
+/* VOID:POINTER,STRING (./libbrasero-marshal.list:8) */
+extern void brasero_marshal_VOID__POINTER_STRING (GClosure     *closure,
+                                                  GValue       *return_value,
+                                                  guint         n_param_values,
+                                                  const GValue *param_values,
+                                                  gpointer      invocation_hint,
+                                                  gpointer      marshal_data);
+
+/* VOID:OBJECT,BOOLEAN (./libbrasero-marshal.list:9) */
+extern void brasero_marshal_VOID__OBJECT_BOOLEAN (GClosure     *closure,
+                                                  GValue       *return_value,
+                                                  guint         n_param_values,
+                                                  const GValue *param_values,
+                                                  gpointer      invocation_hint,
+                                                  gpointer      marshal_data);
+
+/* VOID:BOOLEAN,BOOLEAN (./libbrasero-marshal.list:10) */
+extern void brasero_marshal_VOID__BOOLEAN_BOOLEAN (GClosure     *closure,
+                                                   GValue       *return_value,
+                                                   guint         n_param_values,
+                                                   const GValue *param_values,
+                                                   gpointer      invocation_hint,
+                                                   gpointer      marshal_data);
+
+/* VOID:DOUBLE,DOUBLE,LONG (./libbrasero-marshal.list:11) */
 extern void brasero_marshal_VOID__DOUBLE_DOUBLE_LONG (GClosure     *closure,
                                                       GValue       *return_value,
                                                       guint         n_param_values,
diff --git a/libbrasero-burn/libbrasero-marshal.list b/libbrasero-burn/libbrasero-marshal.list
index e2435cb..83a5de2 100644
--- a/libbrasero-burn/libbrasero-marshal.list
+++ b/libbrasero-burn/libbrasero-marshal.list
@@ -1,5 +1,11 @@
 INT:VOID
 INT:INT
+INT:STRING
 INT:OBJECT,INT,INT
 INT:POINTER,BOOLEAN
+BOOLEAN:STRING
+VOID:INT,STRING
+VOID:POINTER,STRING
+VOID:OBJECT,BOOLEAN
+VOID:BOOLEAN,BOOLEAN
 VOID:DOUBLE,DOUBLE,LONG
diff --git a/libbrasero-utils/brasero-misc.c b/libbrasero-utils/brasero-misc.c
index 228b978..63919eb 100644
--- a/libbrasero-utils/brasero-misc.c
+++ b/libbrasero-utils/brasero-misc.c
@@ -44,6 +44,9 @@
 
 #include "brasero-misc.h"
 
+static GHashTable *stringsH = NULL;
+G_LOCK_DEFINE_STATIC (stringsH);
+
 
 /**
  * Error reporting
@@ -98,6 +101,121 @@ brasero_utils_debug_message (const gchar *domain,
 	g_free (format_real);
 }
 
+static gboolean
+brasero_utils_clear_strings_cb (gchar *string,
+				guint ref,
+				gpointer NULL_data)
+{
+	g_free (string);
+	return TRUE;
+}
+
+static void
+brasero_utils_free (void)
+{
+	if (stringsH) {
+		G_LOCK (stringsH);
+		g_hash_table_foreach_remove (stringsH,
+					     (GHRFunc) brasero_utils_clear_strings_cb,
+					     NULL);
+		g_hash_table_destroy (stringsH);
+		stringsH = NULL;
+		G_UNLOCK (stringsH);
+	}
+}
+
+void
+brasero_utils_init (void)
+{
+	g_atexit (brasero_utils_free);
+}
+
+/**
+ * Allows multiple uses of the same string
+ */
+
+gchar *
+brasero_utils_register_string (const gchar *string)
+{
+	gboolean success;
+	gpointer key, reftmp;
+	guint ref;
+
+	if (!string) {
+		g_warning ("Null string to be registered");
+		return NULL;
+	}
+
+	G_LOCK (stringsH);
+
+	if (!stringsH) {
+		stringsH = g_hash_table_new (g_str_hash, g_str_equal);
+		success = FALSE;
+	}
+	else
+		success = g_hash_table_lookup_extended (stringsH,
+							string,
+							&key,
+							&reftmp);
+
+	if (!success) {
+		key = g_strdup (string);
+		g_hash_table_insert (stringsH,
+				     key,
+				     GINT_TO_POINTER (1));
+		G_UNLOCK (stringsH);
+		return key;
+	}
+
+	ref = GPOINTER_TO_INT(reftmp) + 1;
+	g_hash_table_insert (stringsH,
+			     key,
+			     GINT_TO_POINTER (ref));
+
+	G_UNLOCK (stringsH);
+	return key;
+}
+
+void
+brasero_utils_unregister_string (const gchar *string)
+{
+	gboolean success;
+	gpointer key, reftmp;
+	guint ref;
+
+	if (!string) {
+		g_warning ("Null string to be unregistered");
+		return;
+	}
+
+	G_LOCK (stringsH);
+
+	if (!stringsH) {
+		G_UNLOCK (stringsH);
+		return;
+	}
+
+	success = g_hash_table_lookup_extended (stringsH,
+						string,
+						&key,
+						&reftmp);
+	if (!success) {
+		G_UNLOCK (stringsH);
+		return;
+	}
+
+	ref = GPOINTER_TO_INT(reftmp) - 1;
+
+	if (ref > 0)
+		g_hash_table_insert (stringsH, key, GINT_TO_POINTER (ref));
+	else if (ref <= 0) {
+		g_hash_table_remove (stringsH, string);
+		g_free (key);
+	}
+
+	G_UNLOCK (stringsH);
+}
+
 GtkWidget *
 brasero_utils_pack_properties_list (const gchar *title, GSList *list)
 {
diff --git a/libbrasero-utils/brasero-misc.h b/libbrasero-utils/brasero-misc.h
index 9a74e93..a0be14d 100644
--- a/libbrasero-utils/brasero-misc.h
+++ b/libbrasero-utils/brasero-misc.h
@@ -75,6 +75,11 @@ brasero_utils_debug_message (const gchar *domain,
 	g_free (escaped_basename);						\
 }
 
+gchar *
+brasero_utils_register_string (const gchar *string);
+void
+brasero_utils_unregister_string (const gchar *string);
+
 GtkWidget *
 brasero_utils_pack_properties (const gchar *title, ...);
 GtkWidget *
diff --git a/src/Makefile.am b/src/Makefile.am
index ba9576e..404d7d2 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -91,16 +91,6 @@ brasero_SOURCES = \
 	brasero-time-button.c         \
 	brasero-preview.h         \
 	brasero-preview.c         \
-	brasero-data-project.c         \
-	brasero-data-project.h         \
-	brasero-data-session.c         \
-	brasero-data-session.h         \
-	brasero-data-tree-model.c         \
-	brasero-data-tree-model.h         \
-	brasero-data-vfs.c         \
-	brasero-data-vfs.h         \
-	brasero-file-node.c         \
-	brasero-file-node.h         \
 	brasero-data-disc.h         \
 	brasero-data-disc.c         \
 	brasero-file-filtered.h         \
@@ -134,10 +124,6 @@ brasero_SOURCES = \
 	eggsmclient-private.h        \
 	eggsmclient-xsmp.c
 
-if BUILD_INOTIFY
-brasero_SOURCES += brasero-file-monitor.c brasero-file-monitor.h
-endif
-
 brasero_LDADD =						\
 	../libbrasero-media/libbrasero-media.la		\
 	../libbrasero-burn/libbrasero-burn.la		\
diff --git a/src/brasero-audio-disc.c b/src/brasero-audio-disc.c
index ee6d0ca..fe8ea7b 100644
--- a/src/brasero-audio-disc.c
+++ b/src/brasero-audio-disc.c
@@ -52,7 +52,6 @@
 #include "brasero-io.h"
 #include "brasero-split-dialog.h"
 #include "brasero-session-cfg.h"
-#include "eggtreemultidnd.h"
 
 #include "brasero-tags.h"
 
diff --git a/src/brasero-utils.c b/src/brasero-utils.c
index bc397d1..31641d3 100644
--- a/src/brasero-utils.c
+++ b/src/brasero-utils.c
@@ -43,9 +43,6 @@
 
 #define BRASERO_ERROR brasero_error_quark()
 
-static GHashTable *stringsH = NULL;
-G_LOCK_DEFINE_STATIC (stringsH);
-
 GQuark
 brasero_error_quark (void)
 {
@@ -57,121 +54,6 @@ brasero_error_quark (void)
 	return quark;
 }
 
-static gboolean
-brasero_utils_clear_strings_cb (gchar *string,
-				guint ref,
-				gpointer NULL_data)
-{
-	g_free (string);
-	return TRUE;
-}
-
-static void
-brasero_utils_free (void)
-{
-	if (stringsH) {
-		G_LOCK (stringsH);
-		g_hash_table_foreach_remove (stringsH,
-					     (GHRFunc) brasero_utils_clear_strings_cb,
-					     NULL);
-		g_hash_table_destroy (stringsH);
-		stringsH = NULL;
-		G_UNLOCK (stringsH);
-	}
-}
-
-void
-brasero_utils_init (void)
-{
-	g_atexit (brasero_utils_free);
-}
-
-/**
- * Allows multiple uses of the same string
- */
-
-gchar *
-brasero_utils_register_string (const gchar *string)
-{
-	gboolean success;
-	gpointer key, reftmp;
-	guint ref;
-
-	if (!string) {
-		g_warning ("Null string to be registered");
-		return NULL;
-	}
-
-	G_LOCK (stringsH);
-
-	if (!stringsH) {
-		stringsH = g_hash_table_new (g_str_hash, g_str_equal);
-		success = FALSE;
-	}
-	else
-		success = g_hash_table_lookup_extended (stringsH,
-							string,
-							&key,
-							&reftmp);
-
-	if (!success) {
-		key = g_strdup (string);
-		g_hash_table_insert (stringsH,
-				     key,
-				     GINT_TO_POINTER (1));
-		G_UNLOCK (stringsH);
-		return key;
-	}
-
-	ref = GPOINTER_TO_INT(reftmp) + 1;
-	g_hash_table_insert (stringsH,
-			     key,
-			     GINT_TO_POINTER (ref));
-
-	G_UNLOCK (stringsH);
-	return key;
-}
-
-void
-brasero_utils_unregister_string (const gchar *string)
-{
-	gboolean success;
-	gpointer key, reftmp;
-	guint ref;
-
-	if (!string) {
-		g_warning ("Null string to be unregistered");
-		return;
-	}
-
-	G_LOCK (stringsH);
-
-	if (!stringsH) {
-		G_UNLOCK (stringsH);
-		return;
-	}
-
-	success = g_hash_table_lookup_extended (stringsH,
-						string,
-						&key,
-						&reftmp);
-	if (!success) {
-		G_UNLOCK (stringsH);
-		return;
-	}
-
-	ref = GPOINTER_TO_INT(reftmp) - 1;
-
-	if (ref > 0)
-		g_hash_table_insert (stringsH, key, GINT_TO_POINTER (ref));
-	else if (ref <= 0) {
-		g_hash_table_remove (stringsH, string);
-		g_free (key);
-	}
-
-	G_UNLOCK (stringsH);
-}
-
 void
 brasero_utils_launch_app (GtkWidget *widget,
 			  GSList *list)
diff --git a/src/brasero-utils.h b/src/brasero-utils.h
index 73856f6..bfaa47b 100644
--- a/src/brasero-utils.h
+++ b/src/brasero-utils.h
@@ -48,15 +48,8 @@ typedef enum {
 
 #define BRASERO_DEFAULT_ICON		"text-x-preview"
 
-void brasero_utils_init (void);
-
 GQuark brasero_error_quark (void);
 
-gchar *
-brasero_utils_register_string (const gchar *string);
-void
-brasero_utils_unregister_string (const gchar *string);
-
 void
 brasero_utils_launch_app (GtkWidget *widget,
 			  GSList *list);
diff --git a/src/main.c b/src/main.c
index 4cb6ef3..5a54333 100644
--- a/src/main.c
+++ b/src/main.c
@@ -538,7 +538,6 @@ main (int argc, char **argv)
 	brasero_burn_library_start ();
 
 	brasero_enable_multi_DND ();
-	brasero_utils_init ();
 
 	current_app = brasero_app_new ();
 	if (current_app == NULL)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]