/* vim: set ai et ts=4 sw=4: */ #ifdef HAVE_CONFIG_H #include #endif #include #include "liteamp.h" /*-----------------------------------------------------------------*/ static gint save_yourself_cb( GnomeClient *client, gint phase, GnomeSaveStyle save_style, gint is_shutdown, GnomeInteractStyle interact_style, gint is_fast, gpointer client_data); static void die_cb(GnomeClient* client, gpointer client_data); /*-----------------------------------------------------------------*/ int main(int argc, char *argv[]) { GnomeProgram* program; GnomeClient* client; #ifdef ENABLE_NLS bindtextdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); textdomain(GETTEXT_PACKAGE); #endif // init thread api g_thread_init(NULL); gdk_threads_init(); program = gnome_program_init( PACKAGE, VERSION, LIBGNOMEUI_MODULE, argc, argv, GNOME_PARAM_APP_DATADIR, PACKAGE_DATA_DIR, NULL); // session management // FIXME: not yet implemented. client = gnome_master_client(); gtk_signal_connect(GTK_OBJECT(client), "save_yourself", GTK_SIGNAL_FUNC(save_yourself_cb), argv[0]); gtk_signal_connect (GTK_OBJECT(client), "die", GTK_SIGNAL_FUNC(die_cb), NULL); liteamp_init(program); liteamp_main(); liteamp_quit(); return 0; } /*-----------------------------------------------------------------*/ static gint save_yourself_cb( GnomeClient *client, gint phase, GnomeSaveStyle save_style, gint is_shutdown, GnomeInteractStyle interact_style, gint is_fast, gpointer client_data) { gchar** argv; guint argc; // allocate 0-filled, so it will be NULL-terminated argv = g_malloc0(sizeof(gchar*) * 4);//4 is max # of args argc = 1; argv[0] = client_data; gnome_client_set_clone_command(client, argc, argv); gnome_client_set_restart_command(client, argc, argv); return TRUE; } static void die_cb(GnomeClient* client, gpointer client_data) { liteamp_quit(); } /*main.c*/