Tue May 30 02:29:48 BST 2006  ats@offog.org
  * Fix up a load of things that cause compiler warnings
diff -rN -u old-jack-rack/src/control_callbacks.c new-jack-rack/src/control_callbacks.c
--- old-jack-rack/src/control_callbacks.c	2006-05-30 04:26:01.000000000 +0100
+++ new-jack-rack/src/control_callbacks.c	2006-05-30 04:26:01.000000000 +0100
@@ -192,8 +192,6 @@
   guint copy;
   gchar *str;
 
-  //g_print("float value-changed cb... "); fflush(stdout);
-  
   port_controls = (port_controls_t *) user_data;
   value = gtk_range_get_value (range);
   if (port_controls->logarithmic)
@@ -211,8 +209,6 @@
   if (port_controls->plugin_slot->plugin->copies > 1
       && port_controls->locked)
     {
-      //g_printf("setting %d peers... ", port_controls->plugin_slot->plugin->copies);
-      fflush(stdout);
       guint i;
       for (i = 0; i < port_controls->plugin_slot->plugin->copies; i++)
         {
diff -rN -u old-jack-rack/src/file.c new-jack-rack/src/file.c
--- old-jack-rack/src/file.c	2006-05-30 04:26:01.000000000 +0100
+++ new-jack-rack/src/file.c	2006-05-30 04:26:01.000000000 +0100
@@ -65,7 +65,7 @@
   xmlNewChild (jackrack, NULL, "channels", num);
   
   /* samplerate */
-  sprintf (num, "%ld", sample_rate);
+  sprintf (num, "%ld", (long) sample_rate);
   xmlNewChild (jackrack, NULL, "samplerate", num);
   
   for (list = jack_rack->slots; list; list = g_list_next (list))
@@ -188,8 +188,6 @@
 {
   plugin_desc_t * desc;
   settings_t * settings = NULL;
-  xmlNodePtr controlrow;
-  xmlNodePtr value;
   xmlNodePtr node;
   xmlNodePtr sub_node;
   xmlChar *content;
@@ -405,12 +403,6 @@
 static void
 saved_rack_destroy (saved_rack_t * saved_rack)
 {
-  GSList * list;
-  
-/*  for (list = saved_rack->settings; list; list = g_slist_next (list))
-    settings_destroy ((settings_t *) list->data); */
-/*  g_slist_free (saved_rack->settings); */
-  
   g_free (saved_rack);
 }
 
@@ -420,7 +412,6 @@
 {
   xmlDocPtr doc;
   saved_rack_t * saved_rack;
-  ctrlmsg_t ctrlmsg;
   GSList * list;
   saved_plugin_t * saved_plugin;
 
diff -rN -u old-jack-rack/src/file.h new-jack-rack/src/file.h
--- old-jack-rack/src/file.h	2006-05-30 04:26:01.000000000 +0100
+++ new-jack-rack/src/file.h	2006-05-30 04:26:01.000000000 +0100
@@ -56,9 +56,6 @@
   GSList *       plugins;
 };
 
-int ui_save_file (ui_t * ui, const char * filename);
-int ui_open_file (ui_t * ui, const char * filename);
-
 
 #endif /* HAVE_XML */
 
diff -rN -u old-jack-rack/src/globals.h new-jack-rack/src/globals.h
--- old-jack-rack/src/globals.h	2006-05-30 04:26:01.000000000 +0100
+++ new-jack-rack/src/globals.h	2006-05-30 04:26:01.000000000 +0100
@@ -79,19 +79,14 @@
     (property) = g_strdup (value); \
   else \
     (property) = NULL;
-    
-//#ifdef HAVE_GNOME
-//#if 0
-//	#include <libgnome/gnome-i18n.h>
-//#else
-#       ifdef ENABLE_NLS
-#               include <libintl.h>
-#               define _(x) gettext(x)
-#       else
-#               define _(x) x
-#       endif
-#       define N_(x) x
-//#endif
+
+#ifdef ENABLE_NLS
+#       include <libintl.h>
+#       define _(x) gettext(x)
+#else
+#       define _(x) x
+#endif
+#define N_(x) x
 
 extern struct _ui *global_ui;
 extern gboolean   connect_inputs;
diff -rN -u old-jack-rack/src/midi.c new-jack-rack/src/midi.c
--- old-jack-rack/src/midi.c	2006-05-30 04:26:01.000000000 +0100
+++ new-jack-rack/src/midi.c	2006-05-30 04:26:01.000000000 +0100
@@ -91,7 +91,6 @@
 midi_info_new (struct _ui * ui)
 {
   midi_info_t * minfo;
-  snd_seq_t * seq;
   
   minfo = g_malloc (sizeof (midi_info_t));
   
@@ -232,7 +231,6 @@
 midi_get_events (midi_info_t *minfo)
 {
   snd_seq_event_t *event;
-  int i;
   
   do
     {
@@ -278,9 +276,6 @@
    
   memset(&rt_param, 0, sizeof(rt_param));
   
-  /* need to wait until after jack_activate() has been run */
-  //sleep (3);
-
   jack_thread = jack_client_thread_id (minfo->ui->procinfo->jack_client);
   err = pthread_getschedparam (jack_thread, &policy, &rt_param);
   if (err)
diff -rN -u old-jack-rack/src/midi_control.c new-jack-rack/src/midi_control.c
--- old-jack-rack/src/midi_control.c	2006-05-30 04:26:01.000000000 +0100
+++ new-jack-rack/src/midi_control.c	2006-05-30 04:26:01.000000000 +0100
@@ -24,6 +24,7 @@
 
 #include <math.h>
 #include <ctype.h>
+#include <string.h>
 
 #include "midi_control.h"
 #include "plugin_slot.h"
diff -rN -u old-jack-rack/src/midi_window.c new-jack-rack/src/midi_window.c
--- old-jack-rack/src/midi_window.c	2006-05-30 04:26:01.000000000 +0100
+++ new-jack-rack/src/midi_window.c	2006-05-30 04:26:01.000000000 +0100
@@ -126,7 +126,6 @@
   mwin->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_default_size        (GTK_WINDOW (mwin->window), 400, 200);
   gtk_window_set_title               (GTK_WINDOW (mwin->window), _("JACK Rack MIDI Controls"));
-  gtk_window_set_policy              (GTK_WINDOW (mwin->window), FALSE, TRUE, FALSE);
   gtk_window_set_transient_for       (GTK_WINDOW (mwin->window), GTK_WINDOW (ui->main_window));
   gtk_window_set_destroy_with_parent (GTK_WINDOW (mwin->window), TRUE);
   g_signal_connect (G_OBJECT (mwin->window), "delete_event",
diff -rN -u old-jack-rack/src/plugin_desc.c new-jack-rack/src/plugin_desc.c
--- old-jack-rack/src/plugin_desc.c	2006-05-30 04:26:01.000000000 +0100
+++ new-jack-rack/src/plugin_desc.c	2006-05-30 04:26:01.000000000 +0100
@@ -19,6 +19,7 @@
 
 #include <math.h>
 #include <float.h>
+#include <string.h>
 
 #include "plugin_desc.h"
 #include "globals.h"
diff -rN -u old-jack-rack/src/plugin_settings.c new-jack-rack/src/plugin_settings.c
--- old-jack-rack/src/plugin_settings.c	2006-05-30 04:26:01.000000000 +0100
+++ new-jack-rack/src/plugin_settings.c	2006-05-30 04:26:01.000000000 +0100
@@ -320,7 +320,7 @@
 gboolean
 settings_get_lock          (const settings_t * settings, unsigned long control_index)
 {
-  g_return_if_fail (settings != NULL);
+  g_return_val_if_fail (settings != NULL, FALSE);
   
   return settings->locks[control_index]; 
 }
@@ -328,7 +328,7 @@
 gboolean
 settings_get_lock_all      (const settings_t * settings)
 {
-  g_return_if_fail (settings != NULL);
+  g_return_val_if_fail (settings != NULL, FALSE);
 
   return settings->lock_all;
 }
@@ -336,7 +336,7 @@
 gboolean
 settings_get_enabled      (const settings_t * settings)
 {
-  g_return_if_fail (settings != NULL);
+  g_return_val_if_fail (settings != NULL, FALSE);
   
   return settings->enabled;
 }
@@ -344,7 +344,7 @@
 guint
 settings_get_copies        (const settings_t * settings)
 {
-  g_return_if_fail (settings != NULL);
+  g_return_val_if_fail (settings != NULL, 0);
   
   return settings->copies;
 }
@@ -353,7 +353,7 @@
 unsigned long
 settings_get_channels        (const settings_t * settings)
 {
-  g_return_if_fail (settings != NULL);
+  g_return_val_if_fail (settings != NULL, 0);
   
   return settings->channels;
 }
@@ -361,7 +361,7 @@
 gboolean
 settings_get_wet_dry_enabled (const settings_t * settings)
 {
-  g_return_if_fail (settings != NULL);
+  g_return_val_if_fail (settings != NULL, FALSE);
 
   return settings->wet_dry_enabled;
 }
@@ -369,7 +369,7 @@
 gboolean
 settings_get_wet_dry_locked  (const settings_t * settings)
 {
-  g_return_if_fail (settings != NULL);
+  g_return_val_if_fail (settings != NULL, FALSE);
   
   return settings->wet_dry_locked;
 }
@@ -377,7 +377,7 @@
 LADSPA_Data
 settings_get_wet_dry_value   (settings_t * settings, unsigned long channel)
 {
-  g_return_if_fail (settings != NULL);
+  g_return_val_if_fail (settings != NULL, 0);
 
   if (channel >= settings->channels)
     settings_set_channels (settings, channel + 1);
diff -rN -u old-jack-rack/src/plugin_slot.c new-jack-rack/src/plugin_slot.c
--- old-jack-rack/src/plugin_slot.c	2006-05-30 04:26:01.000000000 +0100
+++ new-jack-rack/src/plugin_slot.c	2006-05-30 04:26:01.000000000 +0100
@@ -161,9 +161,6 @@
   if (port_controls->plugin_slot->plugin->copies > 1
       && port_controls->locked)
     {
-      /*g_printf("plugin_slot_set_port_controls(): setting %d peers... ",
-	       port_controls->plugin_slot->plugin->copies);*/
-      fflush(stdout);
       guint i;
       for (i = 0; i < port_controls->plugin_slot->plugin->copies; i++)
         {
diff -rN -u old-jack-rack/src/plugin_slot_callbacks.c new-jack-rack/src/plugin_slot_callbacks.c
--- old-jack-rack/src/plugin_slot_callbacks.c	2006-05-30 04:26:01.000000000 +0100
+++ new-jack-rack/src/plugin_slot_callbacks.c	2006-05-30 04:26:01.000000000 +0100
@@ -60,7 +60,6 @@
 void
 slot_move_cb (GtkButton * button, gpointer user_data)
 {
-  ctrlmsg_t ctrlmsg;
   plugin_slot_t * plugin_slot;
   gboolean up;
 
@@ -161,7 +160,6 @@
 {
   gboolean lock_all;
   plugin_slot_t * plugin_slot;
-  unsigned long i;
   guint lock_copy;
   
   lock_all = gtk_toggle_button_get_active (button);
diff -rN -u old-jack-rack/src/process.c new-jack-rack/src/process.c
--- old-jack-rack/src/process.c	2006-05-30 04:26:01.000000000 +0100
+++ new-jack-rack/src/process.c	2006-05-30 04:26:01.000000000 +0100
@@ -156,6 +156,9 @@
         quitting = 1;
         err = lff_write (procinfo->process_to_ui, &ctrlmsg);
         return 1;
+
+      default:
+        break;
       }
     
     if (err)
@@ -273,7 +276,6 @@
   plugin_t * first_enabled, * last_enabled, * plugin;
   gint copy;
   unsigned long channel;
-  unsigned long rack_channel;
   if (!procinfo->chain) return;
   
   first_enabled = get_first_enabled_plugin (procinfo);
@@ -518,7 +520,7 @@
   gshort in;
   
   if (procinfo->port_count >= port_count)
-      return;
+      return 0;
   
   if (procinfo->port_count == 0)
     {
diff -rN -u old-jack-rack/src/ui.c new-jack-rack/src/ui.c
--- old-jack-rack/src/ui.c	2006-05-30 04:26:01.000000000 +0100
+++ new-jack-rack/src/ui.c	2006-05-30 04:26:01.000000000 +0100
@@ -48,7 +48,6 @@
   GtkWidget *file_menuitem;
   
   GtkWidget *file_menu;
-  GtkWidget *reconnect;
 #ifdef HAVE_XML
   GtkWidget *save;
   GtkWidget *save_as;
@@ -383,7 +382,6 @@
   gtk_window_set_resizable (GTK_WINDOW (ui->splash_screen), FALSE);
   gtk_window_set_title (GTK_WINDOW (ui->splash_screen), PACKAGE_NAME);
   gtk_container_set_resize_mode (GTK_CONTAINER (ui->splash_screen), GTK_RESIZE_IMMEDIATE);
-  gtk_window_set_policy (GTK_WINDOW (ui->splash_screen), FALSE, TRUE, FALSE);
   
   box = gtk_vbox_new (FALSE, 0);
   gtk_container_set_border_width (GTK_CONTAINER (box), 3);
@@ -398,7 +396,6 @@
   ui->splash_screen_text = gtk_label_new (NULL);
   gtk_widget_show (ui->splash_screen_text);
   gtk_box_pack_start (GTK_BOX (box), ui->splash_screen_text, TRUE, TRUE, 0);
-  //  gtk_misc_set_alignment (GTK_MISC (ui->splash_screen_text), 0.0, 0.5);
   gtk_label_set_justify (GTK_LABEL (ui->splash_screen_text), GTK_JUSTIFY_CENTER);
   
   gtk_window_get_size (GTK_WINDOW (ui->splash_screen), &w, &h);
@@ -471,7 +468,7 @@
   plugin_mgr_set_plugins (ui->plugin_mgr, channels);
   ui->jack_rack = jack_rack_new (ui, channels);
 
-  gtk_idle_add (idle_cb, ui);
+  g_idle_add (idle_cb, ui);
 
   ui_init_gui (ui, channels);
 
diff -rN -u old-jack-rack/src/ui.h new-jack-rack/src/ui.h
--- old-jack-rack/src/ui.h	2006-05-30 04:26:01.000000000 +0100
+++ new-jack-rack/src/ui.h	2006-05-30 04:26:01.000000000 +0100
@@ -114,5 +114,7 @@
 void     ui_display_splash_text (void* data, const char* format, ...);
 gboolean ui_get_ok              (ui_t* ui, const char* format, ...);
 
+int ui_save_file (ui_t * ui, const char * filename);
+int ui_open_file (ui_t * ui, const char * filename);
 
 #endif /* __JR_UI_H__ */
diff -rN -u old-jack-rack/src/ui_callbacks.c new-jack-rack/src/ui_callbacks.c
--- old-jack-rack/src/ui_callbacks.c	2006-05-30 04:26:01.000000000 +0100
+++ new-jack-rack/src/ui_callbacks.c	2006-05-30 04:26:01.000000000 +0100
@@ -115,7 +115,6 @@
 new_cb (GtkWidget * widget, gpointer user_data)
 {
   ui_t * ui;
-  ctrlmsg_t ctrlmsg;
   
   ui = (ui_t *) user_data;
   
@@ -303,7 +302,7 @@
   ui_t * ui = user_data;
   gtk_widget_show (ui->midi_window->window);
 }
-#endif /* HAVE_ALSA
+#endif /* HAVE_ALSA */
 
 
 /** callback for plugin menu buttons ("Add" and the plugin slots' change buttons) */
@@ -400,8 +399,6 @@
 static void
 ui_set_wet_dry_value (ui_t *ui, midi_control_t *midi_control, LADSPA_Data value)
 {
-  GtkWidget * widget;
-  
   if (!midi_control_get_locked (midi_control))
     settings_set_wet_dry_value (midi_control->plugin_slot->settings,
                                 midi_control->control.wet_dry.channel,
@@ -445,13 +442,15 @@
           else
             ui_set_wet_dry_value (ui, ctrlmsg.data.midi.midi_control, ctrlmsg.data.midi.value);
           break;
+        default:
+          break;
         }
     }
 }  
 #endif /* HAVE_ALSA */
 
 
-static struct reconnect_data
+struct reconnect_data
 {
         gboolean active;
         GtkWidget* dialog;
@@ -473,18 +472,12 @@
         struct reconnect_data*  rcdata = (struct reconnect_data*)data;
 
         process_info_t*         procinfo = rcdata->ui->procinfo;
-        extern GString*         client_name;
-        
-        //g_printf("reconnect_cb() called -- reconnect_active = %d\n",
-        //                rcdata->active );
         
         if ( rcdata->active == FALSE )
                 return FALSE;
 
         /* reconnect */
-        //g_printf("%s: reconnect attempt\n", __func__);
         procinfo = process_info_new (rcdata->ui, 2);
-        /*gtk_main_iteration_do (FALSE);*/
         
         if (!procinfo)
                 /* attempt not successful, maintain callback */
@@ -505,6 +498,9 @@
         static GtkWidget* dialog = NULL;
         static int active = TRUE;
         static struct reconnect_data rcdata;
+	guint tid;
+	gint answer;
+	GtkWidget *rcnotice;
 
         ui_t* ui = (ui_t*)data;
         
@@ -517,16 +513,16 @@
                                 NULL, GTK_DIALOG_MODAL,
                                 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
                                 NULL );
-        GtkWidget* rcnotice = gtk_label_new("Connecting to JACK server...");
-        gtk_container_add (GTK_DIALOG(dialog)->vbox, rcnotice);
-        gtk_container_set_border_width (GTK_DIALOG(dialog)->vbox, 50);
+        rcnotice = gtk_label_new("Connecting to JACK server...");
+        gtk_container_add (GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), rcnotice);
+        gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), 50);
         gtk_widget_set_size_request (GTK_DIALOG(dialog)->vbox, 250, 100); 
         gtk_widget_show_all (GTK_DIALOG(dialog)->vbox);
         rcdata.dialog = dialog;
         
-        guint tid = g_timeout_add (1000, &reconnect_cb, (gpointer)&rcdata);
+        tid = g_timeout_add (1000, &reconnect_cb, (gpointer)&rcdata);
         
-        gint answer = gtk_dialog_run (GTK_DIALOG(dialog));
+        answer = gtk_dialog_run (GTK_DIALOG(dialog));
         
         if (answer == GTK_RESPONSE_CANCEL)
         {
@@ -556,7 +552,6 @@
 #endif
         }
         
-leave:
         active = FALSE;
         gtk_widget_hide (dialog);
 }
@@ -566,7 +561,6 @@
 ui_check_kicked (ui_t * ui)
 {
         static gboolean shown_shutdown_msg = FALSE;
-        static gboolean reconnect_active = TRUE;
   
         if (ui->shutdown && !shown_shutdown_msg
             && ui_get_state (ui) != STATE_QUITTING)
@@ -586,7 +580,6 @@
   ctrlmsg_t ctrlmsg;
   ui_t * ui;
   jack_rack_t * jack_rack;
-  gboolean enabled;
 #ifdef HAVE_LADCCA
   static int call_cca_idle = 1;
 #endif /* HAVE_LADCCA */
@@ -651,6 +644,8 @@
         gtk_main_quit ();
         break;
         
+      default:
+        break;
       }
     }
 
diff -rN -u old-jack-rack/src/ui_callbacks.h new-jack-rack/src/ui_callbacks.h
--- old-jack-rack/src/ui_callbacks.h	2006-05-30 04:26:01.000000000 +0100
+++ new-jack-rack/src/ui_callbacks.h	2006-05-30 04:26:01.000000000 +0100
@@ -52,7 +52,6 @@
 gint plugin_button_cb (GtkWidget *widget, GdkEvent *event);
 
 gboolean idle_cb (gpointer data);
-static gboolean is_connected = FALSE;
 
 void jack_shutdown_cb (void * data);
 
diff -rN -u old-jack-rack/src/util.c new-jack-rack/src/util.c
--- old-jack-rack/src/util.c	2006-05-30 04:26:01.000000000 +0100
+++ new-jack-rack/src/util.c	2006-05-30 04:26:01.000000000 +0100
@@ -1,3 +1,7 @@
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+
 #include "util.h"
 #include "types.h"
 
@@ -62,7 +66,7 @@
 	va_start(args, format);
 	msg = g_strdup_vprintf (format, args);
 
-	g_printf("Status update: %s\n", msg);
+	printf("Status update: %s\n", msg);
 
 	g_free (msg);
 }
@@ -73,6 +77,7 @@
  *
  * @todo: add "last message repeated n times'' functionality.
  */
+void
 default_error_handler (void* data, const error_severity_t severity,
                        const char* format, ...)
 {
@@ -102,7 +107,7 @@
 			break;
 			
 		case E_BUG:
-			printf ("BUG: ", msg);
+			printf ("BUG: %s\n", msg);
 			break;
 	}
 

Tue May 30 02:43:08 BST 2006  ats@offog.org
  * Use the new GTK about dialog API
diff -rN -u old-jack-rack/src/ui_callbacks.c new-jack-rack/src/ui_callbacks.c
--- old-jack-rack/src/ui_callbacks.c	2006-05-30 04:26:18.000000000 +0100
+++ new-jack-rack/src/ui_callbacks.c	2006-05-30 04:26:18.000000000 +0100
@@ -257,14 +257,11 @@
 void
 about_cb (GtkWidget * widget, gpointer user_data)
 {
-  GtkWidget * dialog;
   const char * authors[] = { "Bob Ham <node@users.sourceforge.net>", "Leslie P. Polzer <leslie.polzer@gmx.net>", NULL };
-  const char * documenters[] = { "", NULL };
-  GtkWidget * url;
   gchar * logo_file;
   GdkPixbuf * logo;
   GError * err = NULL;
-  
+
   logo_file = g_strdup_printf ("%s/%s", PKGDATADIR, JACK_RACK_LOGO_FILE);
   logo = gdk_pixbuf_new_from_file (logo_file, &err);
   if (err)
@@ -274,23 +271,20 @@
       g_error_free (err);
     }
   g_free (logo_file);
- 
-  dialog = gnome_about_new (PACKAGE_NAME,
-                              PACKAGE_VERSION,
-                              "Copyright (C) 2002,2003 Robert Ham <node@users.sourceforge.net>\n"
-                              "Copyright (C) 2005 Leslie P. Polzer <leslie.polzer@gmx.net>",
-                              _("A LADSPA effects rack for the JACK audio API"),
-                              authors,
-                              documenters,
-                              _("__TRANSLATOR_CREDITS"),
-                              logo);
-  
-  url = gnome_href_new (JACK_RACK_URL, JACK_RACK_URL);
-  gtk_widget_show (url);
-  GTK_WIDGET_UNSET_FLAGS (url, GTK_CAN_FOCUS);
-  gtk_box_pack_start (GTK_BOX (GTK_DIALOG(dialog)->vbox), url, FALSE, FALSE, 0);
-  
-  gtk_dialog_run (GTK_DIALOG (dialog));
+
+  gtk_show_about_dialog (NULL,
+                         "authors", authors,
+                         "comments", _("A LADSPA effects rack for the JACK audio API"),
+                         "copyright",
+                           "Copyright (C) 2002,2003 Robert Ham <node@users.sourceforge.net>\n"
+                           "Copyright (C) 2005 Leslie P. Polzer <leslie.polzer@gmx.net>",
+                         "logo", logo,
+                         "name", PACKAGE_NAME,
+                         "translator-credits", _("__TRANSLATOR_CREDITS"),
+                         "version", PACKAGE_VERSION,
+                         "website", JACK_RACK_URL,
+                         NULL);
+
 }
 #endif /* HAVE_GNOME */
 

Tue May 30 02:47:49 BST 2006  ats@offog.org
  * Fix headers for no-arg functions to use (void) rather than ()
  ... which is why the get_filename bug I'm about fix wasn't being reported.
diff -rN -u old-jack-rack/src/main.c new-jack-rack/src/main.c
--- old-jack-rack/src/main.c	2006-05-30 04:26:39.000000000 +0100
+++ new-jack-rack/src/main.c	2006-05-30 04:26:39.000000000 +0100
@@ -59,7 +59,7 @@
 
 #define CLIENT_NAME_BASE      "JACK Rack"
 
-void print_help () {
+void print_help (void) {
   printf("%s version %s\n", PACKAGE_NAME, PACKAGE_VERSION);
   printf("Copyright (C) 2002, 2003 Robert Ham (node@users.sourceforge.net)\n");
   printf("\n");
diff -rN -u old-jack-rack/src/plugin_desc.c new-jack-rack/src/plugin_desc.c
--- old-jack-rack/src/plugin_desc.c	2006-05-30 04:26:39.000000000 +0100
+++ new-jack-rack/src/plugin_desc.c	2006-05-30 04:26:39.000000000 +0100
@@ -77,7 +77,7 @@
 }
 
 plugin_desc_t *
-plugin_desc_new ()
+plugin_desc_new (void)
 {
   plugin_desc_t * pd;
   pd = g_malloc (sizeof (plugin_desc_t));
diff -rN -u old-jack-rack/src/ui.c new-jack-rack/src/ui.c
--- old-jack-rack/src/ui.c	2006-05-30 04:26:39.000000000 +0100
+++ new-jack-rack/src/ui.c	2006-05-30 04:26:39.000000000 +0100
@@ -182,7 +182,7 @@
 }
 
 static void
-ui_set_default_window_icon ()
+ui_set_default_window_icon (void)
 {
   gchar * icon_file;
   GError * icon_error = NULL;
diff -rN -u old-jack-rack/src/ui_callbacks.c new-jack-rack/src/ui_callbacks.c
--- old-jack-rack/src/ui_callbacks.c	2006-05-30 04:26:39.000000000 +0100
+++ new-jack-rack/src/ui_callbacks.c	2006-05-30 04:26:39.000000000 +0100
@@ -125,7 +125,7 @@
 
 #ifdef HAVE_XML
 static const char *
-get_filename ()
+get_filename (void)
 {
   static GtkWidget* dialog;
   static char* file = NULL;

Tue May 30 03:02:01 BST 2006  ats@offog.org
  * Use correct open/save file dialogs
diff -rN -u old-jack-rack/src/ui_callbacks.c new-jack-rack/src/ui_callbacks.c
--- old-jack-rack/src/ui_callbacks.c	2006-05-30 04:26:58.000000000 +0100
+++ new-jack-rack/src/ui_callbacks.c	2006-05-30 04:26:58.000000000 +0100
@@ -124,59 +124,36 @@
 }
 
 #ifdef HAVE_XML
-static const char *
-get_filename (void)
+void
+open_cb (GtkButton * button, gpointer user_data)
 {
-  static GtkWidget* dialog;
-  static char* file = NULL;
-  gint response;
-
-  if (!dialog)
-    dialog = gtk_file_chooser_dialog_new ( _("Select File"),
-                                          NULL,
-                                          GTK_FILE_CHOOSER_ACTION_SAVE,
-                                          GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-                                          GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
-                                          NULL );
-  gtk_widget_show (dialog);
-  response = gtk_dialog_run(GTK_DIALOG(dialog));
-  gtk_widget_hide (dialog);
+  ui_t * ui = (ui_t *) user_data;
+  GtkWidget * dialog;
 
-  if (response != GTK_RESPONSE_ACCEPT)
-    return NULL;
+  dialog = gtk_file_chooser_dialog_new (_("Open File"), NULL,
+                                        GTK_FILE_CHOOSER_ACTION_OPEN,
+                                        GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+                                        GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+                                        NULL);
 
-  file = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
+  if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
+    {
+      char * filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
 
-  return file;
-}
+      if (!ui_open_file (ui, filename))
+        ui_set_filename (ui, filename);
 
+      g_free (filename);
+    }
 
-void
-open_cb (GtkButton * button, gpointer user_data)
-{
-  const char * filename;
-  ui_t * ui;
-  int err;
-  
-  ui = (ui_t *) user_data;
-  
-  filename = get_filename ();
-  
-  if (!filename)
-    return;
-  
-  err = ui_open_file (ui, filename);
-  
-  if (!err)
-    ui_set_filename (ui, filename);
+  gtk_widget_destroy (dialog);
 }
- 
+
+
 void
 save_cb (GtkButton * button, gpointer user_data)
 {
-  ui_t * ui;
-  
-  ui = (ui_t *) user_data;
+  ui_t * ui = (ui_t *) user_data;
   
   if (!ui->filename)
     {
@@ -188,25 +165,29 @@
 }
 
 
- 
 void
 save_as_cb (GtkButton * button, gpointer user_data)
 {
-  const char * filename;
-  ui_t * ui;
-  int err;
-  
-  ui = (ui_t *) user_data;
-  
-  filename = get_filename (ui->jack_rack);
-  
-  if (!filename)
-    return;
-  
-  err = ui_save_file (ui, filename);
-  
-  if (!err)
-    ui_set_filename (ui, filename);
+  ui_t * ui = (ui_t *) user_data;
+  GtkWidget * dialog;
+
+  dialog = gtk_file_chooser_dialog_new (_("Save File"), NULL,
+                                        GTK_FILE_CHOOSER_ACTION_SAVE,
+                                        GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+                                        GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
+                                        NULL);
+
+  if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
+    {
+      char * filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
+
+      if (!ui_save_file (ui, filename))
+        ui_set_filename (ui, filename);
+
+      g_free (filename);
+    }
+
+  gtk_widget_destroy (dialog);
 }
 #endif /* HAVE_XML */
  

Tue May 30 04:22:06 BST 2006  ats@offog.org
  * Use new GTK toolbar API
  It doesn't look like you can trap events on toolbar buttons any more, so this
  uses a pulldown menu button instead to get a similar effect -- the plain button
  probably ought to do something else (although I'm not sure what).
diff -rN -u old-jack-rack/src/ui.c new-jack-rack/src/ui.c
--- old-jack-rack/src/ui.c	2006-05-30 04:27:10.000000000 +0100
+++ new-jack-rack/src/ui.c	2006-05-30 04:27:10.000000000 +0100
@@ -214,11 +214,13 @@
 {
   GtkWidget *main_box;
   GtkWidget *toolbar_handle;
+  GtkTooltips *toolbar_tips;
   GtkWidget *toolbar;
   GtkWidget *plugin_scroll;
   GtkWidget *plugin_viewport;
   GtkWidget *channel_icon;
   gchar *channel_icon_file;
+  GtkToolItem *tool_item;
 
 
   /* main window */
@@ -242,82 +244,89 @@
   gtk_widget_show (toolbar_handle);
   gtk_box_pack_start (GTK_BOX (main_box), toolbar_handle, FALSE, FALSE, 0);
 
+  toolbar_tips = gtk_tooltips_new ();
+
   toolbar = gtk_toolbar_new ();
-  gtk_widget_show (toolbar);
   gtk_container_add (GTK_CONTAINER (toolbar_handle), toolbar);
 
-
-  ui->add = gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
-				      GTK_STOCK_ADD,
-				      _("Add a plugin"),
-				      (const char *) NULL,
-				      (GtkSignalFunc) NULL,
-				      (gpointer)NULL,
-				      (gint)-1);
-  g_signal_connect_swapped (G_OBJECT (ui->add), "event",
-                            G_CALLBACK (plugin_button_cb),
-                            G_OBJECT (ui->add_menu));
-                                                         
+  ui->add = gtk_menu_tool_button_new_from_stock (GTK_STOCK_ADD);
+  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), ui->add, -1);
+  gtk_tool_item_set_tooltip (ui->add, toolbar_tips,
+                             _("Add a plugin"),
+                             _("Add a new plugin to the rack"));
+  gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (ui->add), ui->add_menu);
+  g_signal_connect (G_OBJECT (ui->add), "clicked",
+                    G_CALLBACK (plugin_add_button_cb), ui->add_menu);
 
   /* channels */
   channel_icon_file = g_strdup_printf ("%s/%s", PKGDATADIR, JACK_RACK_CHANNELS_ICON_FILE);
   channel_icon = gtk_image_new_from_file (channel_icon_file);
   g_free (channel_icon_file);
-  ui->channels = gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
-                           _("Channels"),
-                           _("Change the number of I/O channels the rack has"),
-                           NULL,
-                           channel_icon,
-                           G_CALLBACK (channel_cb), ui);
-                              
-  
-  gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
-
-
-  ui->new = gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
-                            GTK_STOCK_NEW,
+  ui->channels = gtk_tool_button_new (channel_icon, _("Channels"));
+  gtk_tool_item_set_tooltip (ui->channels, toolbar_tips,
+                             _("Channels"),
+                             _("Change the number of I/O channels the rack has"));
+  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), ui->channels, -1);
+  g_signal_connect (G_OBJECT (ui->channels), "clicked", G_CALLBACK (channel_cb), ui);
+
+  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), gtk_separator_tool_item_new (), -1);
+
+  ui->new = gtk_tool_button_new_from_stock (GTK_STOCK_NEW);
+  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), ui->new, -1);
+  gtk_tool_item_set_tooltip (ui->new, toolbar_tips,
                             _("Clear the rack"),
-                            NULL, G_CALLBACK (new_cb), ui, -1);
+                            _("Remove all the plugins from the rack"));
+  g_signal_connect (G_OBJECT (ui->new), "clicked", G_CALLBACK (new_cb), ui);
 
 #ifdef HAVE_XML
-  ui->open = gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
-                            GTK_STOCK_OPEN,
+  tool_item = gtk_tool_button_new_from_stock (GTK_STOCK_OPEN);
+  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), tool_item, -1);
+  gtk_tool_item_set_tooltip (tool_item, toolbar_tips,
                             _("Open a rack configuration file"),
-                            NULL, G_CALLBACK (open_cb), ui, -1);
+                            _("Load a previously-saved rack configuration"));
+  g_signal_connect (G_OBJECT (tool_item), "clicked", G_CALLBACK (open_cb), ui);
 
-  gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
-                            GTK_STOCK_SAVE,
+  tool_item = gtk_tool_button_new_from_stock (GTK_STOCK_SAVE);
+  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), tool_item, -1);
+  gtk_tool_item_set_tooltip (tool_item, toolbar_tips,
                             _("Save the rack configuration to the current file"),
-                            NULL, G_CALLBACK (save_cb), ui, -1);
+                            _("Save the rack configuration to the same file it was saved in last time"));
+  g_signal_connect (G_OBJECT (tool_item), "clicked", G_CALLBACK (save_cb), ui);
 
-  gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
-                            GTK_STOCK_SAVE_AS,
+  tool_item = gtk_tool_button_new_from_stock (GTK_STOCK_SAVE_AS);
+  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), tool_item, -1);
+  gtk_tool_item_set_tooltip (tool_item, toolbar_tips,
                             _("Save the rack configuration to a file"),
-                            NULL, G_CALLBACK (save_as_cb), ui, -1);
+                            _("Save the rack configuration to a new file"));
+  g_signal_connect (G_OBJECT (tool_item), "clicked", G_CALLBACK (save_as_cb), ui);
 #endif /* HAVE_XML */
 
 #ifdef HAVE_LADCCA
   if (cca_enabled (global_cca_client))
     {
-      gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
+      gtk_toolbar_insert (GTK_TOOLBAR (toolbar), gtk_separator_tool_item_new (), -1);
+
+      ui->cca_save = gtk_tool_button_new_from_stock (GTK_STOCK_SAVE);
+      gtk_toolbar_insert (GTK_TOOLBAR (toolbar), ui->cca_save, -1);
+      gtk_ui->cca_save_set_tooltip (ui->cca_save, toolbar_tips,
+                                _("Save the LADCCA project"),
+                                _("Save the current LADCCA project"));
+      g_signal_connect (G_OBJECT (ui->cca_save), "clicked", G_CALLBACK (cca_save_cb), ui);
 
-      ui->cca_save = gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
-                                           GTK_STOCK_SAVE,
-                                           _("Save the LADCCA project"),
-                                           NULL, G_CALLBACK (cca_save_cb), ui, -1);
     }
 #endif /* HAVE_LADCCA */
 
-  gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
+  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), gtk_separator_tool_item_new (), -1);
 
-  gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
-                            GTK_STOCK_QUIT,
+  tool_item = gtk_tool_button_new_from_stock (GTK_STOCK_QUIT);
+  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), tool_item, -1);
+  gtk_tool_item_set_tooltip (tool_item, toolbar_tips,
                             _("Quit JACK Rack"),
-                            NULL, G_CALLBACK (quit_cb), ui, -1);
+                            _("Exit the program"));
+  g_signal_connect (G_OBJECT (tool_item), "clicked", G_CALLBACK (quit_cb), ui);
 
-  gtk_toolbar_set_icon_size (GTK_TOOLBAR (toolbar), GTK_ICON_SIZE_SMALL_TOOLBAR);
+  gtk_widget_show_all (toolbar);
 
-                              
 
   /* viewport thingy */
   plugin_scroll = gtk_scrolled_window_new (NULL, NULL);
diff -rN -u old-jack-rack/src/ui.h new-jack-rack/src/ui.h
--- old-jack-rack/src/ui.h	2006-05-30 04:27:10.000000000 +0100
+++ new-jack-rack/src/ui.h	2006-05-30 04:27:10.000000000 +0100
@@ -71,22 +71,22 @@
   GtkWidget *       add_menu;
 
 /* all the widgets that can be desensitized */
-  GtkWidget *       add;
+  GtkToolItem *     add;
   GtkWidget *       add_menuitem;
   GtkWidget *       channels_menuitem;
-  GtkWidget *       channels;
+  GtkToolItem *     channels;
 #ifdef HAVE_ALSA
   GtkWidget         *midi_menuitem;
 #endif
   GtkWidget *       new_menuitem;
-  GtkWidget *       new;
+  GtkToolItem *     new;
 #ifdef HAVE_XML
   GtkWidget *       open_menuitem;
-  GtkWidget *       open;
+  GtkToolItem *     open;
 #endif
 
 #ifdef HAVE_LADCCA
-  GtkWidget *       cca_save;
+  GtkToolItem *     cca_save;
   GtkWidget *       cca_save_menu_item;
 #endif
 
diff -rN -u old-jack-rack/src/ui_callbacks.c new-jack-rack/src/ui_callbacks.c
--- old-jack-rack/src/ui_callbacks.c	2006-05-30 04:27:10.000000000 +0100
+++ new-jack-rack/src/ui_callbacks.c	2006-05-30 04:27:10.000000000 +0100
@@ -284,7 +284,6 @@
 gint
 plugin_button_cb (GtkWidget *widget, GdkEvent *event)
 {
-
   if (event->type == GDK_BUTTON_PRESS)
     {
       GdkEventButton * bevent = (GdkEventButton *) event;
@@ -300,6 +299,14 @@
 }
 
 
+void
+plugin_add_button_cb (GtkWidget *widget, gpointer user_data)
+{
+  gtk_menu_popup (GTK_MENU (user_data), NULL, NULL, NULL, NULL,
+                  0, gtk_get_current_event_time ());
+}
+
+
 #ifdef HAVE_LADCCA
 static int
 cca_idle (ui_t * ui, cca_client_t * client)
@@ -511,18 +518,18 @@
                 }
                 
                 gtk_widget_set_sensitive (ui->plugin_box, FALSE);
-                gtk_widget_set_sensitive (ui->add, FALSE);
+                gtk_widget_set_sensitive (GTK_WIDGET (ui->add), FALSE);
                 gtk_widget_set_sensitive (ui->add_menuitem, FALSE);
-                gtk_widget_set_sensitive (ui->channels, FALSE);
+                gtk_widget_set_sensitive (GTK_WIDGET (ui->channels), FALSE);
                 gtk_widget_set_sensitive (ui->channels_menuitem, FALSE);
-                gtk_widget_set_sensitive (ui->new, FALSE);
+                gtk_widget_set_sensitive (GTK_WIDGET (ui->new), FALSE);
                 gtk_widget_set_sensitive (ui->new_menuitem, FALSE);
 #ifdef HAVE_ALSA
                 gtk_widget_set_sensitive (ui->midi_menuitem, FALSE);
                 gtk_widget_set_sensitive (ui->midi_window->main_box, FALSE);
 #endif
 #ifdef HAVE_XML
-                gtk_widget_set_sensitive (ui->open, FALSE);
+                gtk_widget_set_sensitive (GTK_WIDGET (ui->open), FALSE);
                 gtk_widget_set_sensitive (ui->open_menuitem, FALSE);
 #endif
         }
diff -rN -u old-jack-rack/src/ui_callbacks.h new-jack-rack/src/ui_callbacks.h
--- old-jack-rack/src/ui_callbacks.h	2006-05-30 04:27:10.000000000 +0100
+++ new-jack-rack/src/ui_callbacks.h	2006-05-30 04:27:10.000000000 +0100
@@ -50,6 +50,7 @@
 #endif
 
 gint plugin_button_cb (GtkWidget *widget, GdkEvent *event);
+void plugin_add_button_cb (GtkWidget *widget, gpointer user_data);
 
 gboolean idle_cb (gpointer data);
 

