port to Gtk+3 and add some casts to fix build with llvm 22
Index: gmpc-shout/src/plugin.c
--- gmpc-shout/src/plugin.c.orig
+++ gmpc-shout/src/plugin.c
@@ -89,22 +89,22 @@ static gboolean shout_si_button_press_event(GtkWidget 
     if(event->button == 3)
     {
         GtkWidget *item; 
-        GtkMenu *menu = gtk_menu_new();
+        GtkMenu *menu = GTK_MENU(gtk_menu_new());
         g_object_ref_sink(G_OBJECT(menu));
 
         if(ogg123_pid < 0 && mpd_player_get_state(connection) == MPD_STATUS_STATE_PLAY) {
             item = gtk_image_menu_item_new_with_label(_("Start"));
             g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(shout_si_start), NULL);
-            gtk_menu_shell_append(GTK_MENU(menu), item);
+            gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
         }
         else if (ogg123_pid >= 0 && mpd_player_get_state(connection) == MPD_STATUS_STATE_PLAY) {
             item = gtk_image_menu_item_new_with_label(_("Stop"));
             g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(shout_si_stop), NULL);
-            gtk_menu_shell_append(GTK_MENU(menu), item);
+            gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
         }
         item = gtk_image_menu_item_new_with_label(_("Preferences"));
         g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(shout_si_show_pref), NULL);
-        gtk_menu_shell_append(GTK_MENU(menu), item);
+        gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
 
         gtk_widget_show_all(GTK_WIDGET(menu));
         gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event->button, event->time);
@@ -134,7 +134,7 @@ static void shout_init(void)
 	bindtextdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
 	bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
 
-    gtk_init_add((GtkFunction)shout_add_si_icon, NULL);
+    g_idle_add(shout_add_si_icon, NULL);
 }
 
 /* main plugin_osd info */
