]> git.alsa-project.org Git - alsa-tools.git/commitdiff
rmedigicontrol: Port to GTK+ 3 HEAD master
authorTakashi Iwai <tiwai@suse.de>
Tue, 18 Aug 2026 10:46:42 +0000 (12:46 +0200)
committerTakashi Iwai <tiwai@suse.de>
Wed, 19 Aug 2026 07:01:05 +0000 (09:01 +0200)
Port the application to use GTK+ 3:
- Use own legacy APIs for hbox and vbox creations
- Modernize deprecated signal connections and radio buttons
- Access adjustment values using gtk_adjustment_get_value

Also dropped the obsoleted configure.in.gtk-1, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
rmedigicontrol/README
rmedigicontrol/configure.ac
rmedigicontrol/configure.in-gtk1 [deleted file]
rmedigicontrol/level.c
rmedigicontrol/loopback.c
rmedigicontrol/rmedigicontrol.c
rmedigicontrol/rmedigicontrol.h

index df35d8a91ccd8b34e9ccf16acdadbd990bbdd52b..798f71bf0eaeb128180bd31f683cbde228aecc3c 100644 (file)
@@ -42,8 +42,6 @@ INSTALL:
 or
        ./configure
 
-If you use GTK+-1.2, pass --with-gtk2=no.
-
        make install
 
 
index 9c38754cbf88c00fd9d8169e5aa7a5ab217e356a..ab9bbb36a84f8c5105ee44ec22618fa29b46bb78 100644 (file)
@@ -4,6 +4,6 @@ AM_MAINTAINER_MODE([enable])
 AC_PROG_CC
 AC_PROG_INSTALL
 AC_HEADER_STDC
-PKG_CHECK_MODULES(RMEDIGICONTROL, gtk+-2.0 alsa >= 1.0.0)
+PKG_CHECK_MODULES(RMEDIGICONTROL, gtk+-3.0 alsa >= 1.0.0)
 
 AC_OUTPUT(Makefile)
diff --git a/rmedigicontrol/configure.in-gtk1 b/rmedigicontrol/configure.in-gtk1
deleted file mode 100644 (file)
index e7a49cb..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-AC_INIT(rmedigicontrol.c)
-AM_INIT_AUTOMAKE(rmedigicontrol, 0.3.5a)
-AC_PROG_CC
-AC_PROG_INSTALL
-AC_HEADER_STDC
-AM_PATH_GTK(1.0.1)
-AM_PATH_ALSA(1.0.0)
-RMEDIGICONTROL_CFLAGS="$CFLAGS $ALSA_CFLAGS $GTK_CFLAGS"
-RMEDIGICONTROL_LIBS="$LIBS $ALSA_LIBS $GTK_LIBS"
-AC_SUBST(RMEDIGICONTROL_CFLAGS)
-AC_SUBST(RMEDIGICONTROL_LIBS)
-
-AC_OUTPUT(Makefile)
index bce2e95326116e79041dadfe66cf541a3826b029..0252475dd0f936164f9d48c5398c6d03d1fb49bd 100644 (file)
@@ -26,15 +26,15 @@ static char *val2char(gdouble val)
 }
 static void changed(GtkAdjustment *a,gpointer p)
 {
-       snd_ctl_elem_value_set_integer(val,0,((100-a->value)*snd_ctl_elem_info_get_max(info))/100);
-       snd_ctl_elem_value_set_integer(val,1,((100-a->value)*snd_ctl_elem_info_get_max(info))/100);
+       snd_ctl_elem_value_set_integer(val,0,((100-gtk_adjustment_get_value(a))*snd_ctl_elem_info_get_max(info))/100);
+       snd_ctl_elem_value_set_integer(val,1,((100-gtk_adjustment_get_value(a))*snd_ctl_elem_info_get_max(info))/100);
        snd_ctl_elem_write(ctl,val);
-       gtk_label_set_text(p,val2char(a->value));
+       gtk_label_set_text(p,val2char(gtk_adjustment_get_value(a)));
 }
 
 GtkWidget *create_level_box()
 {
-       GtkObject *adjust;
+       GtkAdjustment *adjust;
        GtkWidget *box,*slider1,*label1,*vlabel;
        char *elem_name="DAC Playback Volume";
        
@@ -52,11 +52,11 @@ GtkWidget *create_level_box()
        snd_ctl_elem_value_set_name(val,elem_name);
        snd_ctl_elem_read(ctl,val);
 
-       adjust=GTK_OBJECT(gtk_adjustment_new(100-(snd_ctl_elem_value_get_integer(val,0)*100)/snd_ctl_elem_info_get_max(info),0,100,1,5,0));
+       adjust=GTK_ADJUSTMENT(gtk_adjustment_new(100-(snd_ctl_elem_value_get_integer(val,0)*100)/snd_ctl_elem_info_get_max(info),0,100,1,5,0));
 
-       vlabel=gtk_label_new(val2char((GTK_ADJUSTMENT(adjust))->value));
-       gtk_signal_connect(adjust,"value_changed",GTK_SIGNAL_FUNC(changed),vlabel);
-       slider1=gtk_vscale_new(GTK_ADJUSTMENT(adjust));
+       vlabel=gtk_label_new(val2char(gtk_adjustment_get_value(GTK_ADJUSTMENT(adjust))));
+       g_signal_connect(adjust,"value_changed",G_CALLBACK(changed),vlabel);
+       slider1=gtk_scale_new(GTK_ORIENTATION_VERTICAL, GTK_ADJUSTMENT(adjust));
        gtk_scale_set_draw_value(GTK_SCALE(slider1),FALSE);
        gtk_scale_set_digits(GTK_SCALE(slider1),0);
        
index b47eb20b42c49d97ac416b2a4f166b38c8e0dfaf..740d21add3d06571e405a5f061fbc5f68d99f8c6 100644 (file)
@@ -39,7 +39,7 @@ GtkWidget *create_loopback_toggle()
        
        t=gtk_check_button_new_with_label(elem_name);
 
-       gtk_signal_connect(GTK_OBJECT(t),"toggled",GTK_SIGNAL_FUNC(loopback_toggled),NULL);
+       g_signal_connect(G_OBJECT(t),"toggled",G_CALLBACK(loopback_toggled),NULL);
        if(snd_ctl_elem_value_get_integer(val,0))
                gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(t),TRUE);
 
index 111963721bfde3868a556f58972cedb4956e1802..1636d55d497ed11c24c2ca19bf1478109f53e8c9 100644 (file)
@@ -78,7 +78,7 @@ int main(int argc, char *argv[])
                err="No RME Digi Soundcard found...";
        gtk_init(&argc, &argv); 
        window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
-       gtk_signal_connect(GTK_OBJECT(window),"destroy",GTK_SIGNAL_FUNC(destroy),NULL);
+       g_signal_connect(G_OBJECT(window),"destroy",G_CALLBACK(destroy),NULL);
        if(err)
        {
                err_lbl=gtk_label_new(err);
@@ -130,7 +130,7 @@ void elem_radio_toggled(GtkRadioButton *r,gpointer p)
        ctl_elem_info_val_t *iv;
        
        iv=(ctl_elem_info_val_t *)p;
-       l=gtk_radio_button_group(r);
+       l=gtk_radio_button_get_group(r);
        i=snd_ctl_elem_info_get_items(iv->info);
        while(l)
        {
@@ -170,8 +170,8 @@ GtkWidget *create_enum_elem_radio(char *elem_name,ctl_elem_info_val_t *iv)
                snd_ctl_elem_info_set_item(iv->info, i);
                snd_ctl_elem_info(ctl,iv->info);
                r=gtk_radio_button_new_with_label(group,snd_ctl_elem_info_get_item_name(iv->info));
-               group=gtk_radio_button_group(GTK_RADIO_BUTTON(r));
-               gtk_signal_connect(GTK_OBJECT(r),"toggled",GTK_SIGNAL_FUNC(elem_radio_toggled),(gpointer)iv);
+               group=gtk_radio_button_get_group(GTK_RADIO_BUTTON(r));
+               g_signal_connect(G_OBJECT(r),"toggled",G_CALLBACK(elem_radio_toggled),(gpointer)iv);
                if(i==snd_ctl_elem_value_get_integer(iv->val,0))
                        active=r;
                gtk_box_pack_start(GTK_BOX(box),r,TRUE,FALSE,0);
index 6dc35119e947d651555aa3b12f1b06d1e74edeb3..c49ac0e09bac8fee097a583f46d7f37844a4ddd3 100644 (file)
@@ -23,3 +23,21 @@ GtkWidget *create_enum_elem_radio(char *elem_name,ctl_elem_info_val_t *iv);
 
 GtkWidget *create_loopback_toggle();
 GtkWidget *create_level_box();
+
+static inline GtkWidget *__gtk_hbox_new(gboolean homogeneous, gint spacing)
+{
+  GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, spacing);
+  gtk_box_set_homogeneous(GTK_BOX(box), homogeneous);
+  return box;
+}
+/* override for deprecation */
+#define gtk_hbox_new   __gtk_hbox_new
+
+static inline GtkWidget*__gtk_vbox_new(gboolean homogeneous, gint spacing)
+{
+  GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, spacing);
+  gtk_box_set_homogeneous(GTK_BOX(box), homogeneous);
+  return box;
+}
+/* override for deprecation */
+#define gtk_vbox_new   __gtk_vbox_new