diff --git a/glade/adrv9002.glade b/glade/adrv9002.glade index 9f70f7cd..893acb8e 100644 --- a/glade/adrv9002.glade +++ b/glade/adrv9002.glade @@ -3834,26 +3834,41 @@ - + True False - 12 - True + 0 + none - + + True + False + + + True + False + vertical + + + True + False + 12 + True + + True False end Frequency Offset Correction: - - + + False True 0 - - - - + + + + True True False @@ -3861,151 +3876,152 @@ 6 True True - - + + False True 1 - - - - - False - True - 1 - - - - - True - False - 12 - True - - + + + + + False + True + 0 + + + + + True + False + 12 + True + + True False end Bandwidth (Hz): - - + + False True 0 - - - - + + + + True False True - - - True - True - 8 - 8 + + False + True + 1 + - - + + False True 1 - - - - - False - True - 2 - - - - - True - False - 12 - True - - + + + + + True + False + 12 + True + + True False end Interface Sample Rate (Hz): - - + + False True 0 - - - - + + + + True False True - - - True - True - 8 - 8 - - - + False True 1 - - - - - False - True - 3 - - - - - True - False - 12 - True - - + + + + + False + True + 2 + + + + + True + False + 12 + True + + True False end RX RF Input: - - + + False True 0 - - - - + + + + True False Rx1A Rx1B - - + + False True 1 - + + + + + False + True + 3 + + + + + + + + + True + False + False True - 4 + 5 @@ -4089,26 +4105,41 @@ - + True False - 12 - True + 0 + none - + + True + False + + + True + False + vertical + + + True + False + 12 + True + + True False end Frequency Offset Correction: - - + + False True 0 - - - - + + + + True True False @@ -4116,151 +4147,152 @@ 6 True True - - + + False True 1 - - - - - False - True - 1 - - - - - True - False - 12 - True - - + + + + + False + True + 0 + + + + + True + False + 12 + True + + True False end Bandwidth (Hz): - - + + False True 0 - - - - + + + + True False True - - - True - True - 8 - 8 + + False + True + 1 + - - + + False True 1 - - - - - False - True - 2 - - - - - True - False - 12 - True - - + + + + + True + False + 12 + True + + True False end Interface Sample Rate (Hz): - - + + False True 0 - - - - + + + + True False True - - - True - True - 8 - 8 - - - + False True 1 - - - - - False - True - 3 - - - - - True - False - 12 - True - - + + + + + False + True + 2 + + + + + True + False + 12 + True + + True False end RX RF Input: - - + + False True 0 - - - - + + + + True False Rx2A Rx2B - - + + False True 1 - + + + + + False + True + 3 + + + + + + + + + True + False + False True - 4 + 5 @@ -4358,26 +4390,41 @@ - + True False - 12 - True + 0 + none - + + True + False + + + True + False + vertical + + + True + False + 12 + True + + True False end Frequency Offset Correction: - - + + False True 0 - - - - + + + + True True False @@ -4385,110 +4432,111 @@ 6 True True - - + + False True 1 - - - - - False - True - 1 - - - - - True - False - 12 - True - - + + + + + False + True + 0 + + + + + True + False + 12 + True + + True False end Bandwidth (Hz): - - + + False True 0 - - - - + + + + True False True - - - True - True - 8 - 8 + + False + True + 1 + - - + + False True 1 - - - - - False - True - 2 - - - - - True - False - 12 - True - - + + + + + True + False + 12 + True + + True False end Interface Sample Rate (Hz): - - + + False True 0 - - - - + + + + True False True - - - True - True - 8 - 8 - - - + False True 1 - + + + + + False + True + 2 + + + + + + + + + True + False + False True - 3 + 4 @@ -4572,26 +4620,42 @@ - + True False - 12 - True + 0 + none - + + True + False + 12 + + + True + False + vertical + + + True + False + 12 + True + + True False end Frequency Offset Correction: - - + + False True 0 - - - - + + + + True True False @@ -4599,110 +4663,111 @@ 6 True True - - + + False True 1 - - - - - False - True - 1 - - - - - True - False - 12 - True - - + + + + + False + True + 0 + + + + + True + False + 12 + True + + True False end Bandwidth (Hz): - - + + False True 0 - - - - + + + + True False True - - - True - True - 8 - 8 + + False + True + 1 + - - + + False True 1 - - - - - False - True - 2 - - - - - True - False - 12 - True - - + + + + + True + False + 12 + True + + True False end Interface Sample Rate (Hz): - - + + False True 0 - - - - + + + + True False True - - - True - True - 8 - 8 - - - + False True 1 - + + + + + False + True + 2 + + + + + + + + + True + False + False True - 3 + 4 diff --git a/plugins/adrv9002.c b/plugins/adrv9002.c index 484097e0..6c80b2fb 100644 --- a/plugins/adrv9002.c +++ b/plugins/adrv9002.c @@ -2399,6 +2399,22 @@ static int profile_gen_ui_refresh(GtkButton *self, struct plugin_private *priv) return 0; } +static void profile_gen_update_channels(GtkComboBox *self, struct plugin_private *priv) +{ + GtkWidget *channel_frame; + bool channel_en; + + char *ch_frames[4] = {"frame_tx1_controls", "frame_tx2_controls", "frame_rx1_controls", "frame_rx2_controls"}; + char *ch_buttons[4] = {"cb_tx_chan1_en", "cb_tx_chan2_en", "cb_rx_chan1_en", "cb_rx_chan2_en"}; + int i; + + for (i = 0; i < 4; i++) { + channel_frame = GTK_WIDGET(gtk_builder_get_object(priv->builder, ch_frames[i])); + channel_en = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(priv->builder, ch_buttons[i]))); + gtk_widget_set_sensitive(channel_frame, channel_en); + } +} + static void adrv9002_combo_box_init(struct iio_widget *combo, const char *w_str, const char *attr, const char *attr_avail, struct plugin_private *priv, struct iio_channel *chann) @@ -3053,6 +3069,19 @@ static GtkWidget *adrv9002_init(struct osc_plugin *plugin, GtkWidget *notebook, g_builder_connect_signal(priv->builder, "cb_preset", "changed", G_CALLBACK(profile_gen_ui_refresh), priv); + /* update channel controls sensitivity */ + g_builder_connect_signal(priv->builder, "cb_tx_chan1_en", "toggled", + G_CALLBACK(profile_gen_update_channels), priv); + + g_builder_connect_signal(priv->builder, "cb_tx_chan2_en", "toggled", + G_CALLBACK(profile_gen_update_channels), priv); + + g_builder_connect_signal(priv->builder, "cb_rx_chan1_en", "toggled", + G_CALLBACK(profile_gen_update_channels), priv); + + g_builder_connect_signal(priv->builder, "cb_rx_chan2_en", "toggled", + G_CALLBACK(profile_gen_update_channels), priv); + } else { gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(priv->builder, "boxProfileGen")), false); gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(priv->builder, "labelProfileGen")), false);