/* vim: set sw=2 ts=2 sts=2 et: */ #include <gnome-autoar/autoar.h> #include <glib.h> #include <locale.h> #include <stdlib.h> static void my_handler_decide_dest (AutoarCreate *arcreate, GFile *dest) { char *path, *uri; path = g_file_get_path (dest); uri = g_file_get_uri (dest); g_print ("Destination Path: %s\n", path); g_print ("Destination URI: %s\n", uri); g_free (path); g_free (uri); } static void my_handler_progress (AutoarCreate *arcreate, guint64 completed_size, guint completed_files, gpointer data) { g_print ("\rProgress: %"G_GUINT64_FORMAT" bytes, %u files read", completed_size, completed_files); } static void my_handler_error (AutoarCreate *arcreate, GError *error, gpointer data) { g_printerr ("\nError %d: %s\n", error->code, error->message); } static void my_handler_completed (AutoarCreate *arcreate, gpointer data) { g_print ("\nCompleted!\n"); } int main (int argc, char* argv[]) { AutoarCreate *arcreate; AutoarPref *arpref; if (argc < 5) { g_printerr ("Usage: %s format filter output_dir source ...\n", argv[0]); return 255; } setlocale (LC_ALL, ""); arpref = autoar_pref_new (); autoar_pref_set_default_format (arpref, atoi (argv[1])); autoar_pref_set_default_filter (arpref, atoi (argv[2])); arcreate = autoar_create_newv (arpref, argv[3], (const GStrv)argv + 4); g_signal_connect (arcreate, "decide-dest", G_CALLBACK (my_handler_decide_dest), NULL); g_signal_connect (arcreate, "progress", G_CALLBACK (my_handler_progress), NULL); g_signal_connect (arcreate, "error", G_CALLBACK (my_handler_error), NULL); g_signal_connect (arcreate, "completed", G_CALLBACK (my_handler_completed), NULL); autoar_create_start (arcreate, NULL); g_object_unref (arpref); g_object_unref (arcreate); return 0; }