@@ -2113,6 +2113,7 @@ static gboolean check_valid_setup_of_device(OscPlot *plot, const char *name)
2113
2113
struct iio_device * dev ;
2114
2114
unsigned int nb_channels = num_of_channels_of_device (treeview , name );
2115
2115
unsigned enabled_channels_mask ;
2116
+ const struct iio_channels_mask * mask = NULL ;
2116
2117
2117
2118
GtkTreeModel * model ;
2118
2119
GtkTreeIter iter ;
@@ -2128,7 +2129,13 @@ static gboolean check_valid_setup_of_device(OscPlot *plot, const char *name)
2128
2129
if (!device_enabled && plot_type != TIME_PLOT )
2129
2130
return true;
2130
2131
2132
+ /* No additional checking is needed for non iio devices */
2133
+ if (!dev )
2134
+ return TRUE;
2131
2135
num_enabled = enabled_channels_of_device (treeview , name , & enabled_channels_mask );
2136
+ mask = iio_create_channels_mask (iio_device_get_channels_count (dev ));
2137
+
2138
+
2132
2139
2133
2140
/* Basic validation rules */
2134
2141
if (plot_type == FFT_PLOT ) {
@@ -2148,7 +2155,8 @@ static gboolean check_valid_setup_of_device(OscPlot *plot, const char *name)
2148
2155
gtk_widget_set_tooltip_text (priv -> capture_button ,
2149
2156
"Time Domain needs at least one channel" );
2150
2157
return false;
2151
- } else if (dev && !dma_valid_selection (name , enabled_channels_mask | global_enabled_channels_mask (dev ), nb_channels )) {
2158
+ } else if (dev && !dma_valid_selection (name , enabled_channels_mask |
2159
+ global_enabled_channels_mask (dev , (struct iio_channels_mask * ) mask ), nb_channels )) {
2152
2160
gtk_widget_set_tooltip_text (priv -> capture_button ,
2153
2161
"Channel selection not supported" );
2154
2162
return false;
@@ -2161,17 +2169,17 @@ static gboolean check_valid_setup_of_device(OscPlot *plot, const char *name)
2161
2169
}
2162
2170
}
2163
2171
2164
- /* No additional checking is needed for non iio devices */
2165
- if (!dev )
2166
- return TRUE;
2172
+
2173
+
2167
2174
2168
2175
char warning_text [100 ];
2169
2176
2170
2177
/* Check if devices that need a trigger have one and it's configured */
2171
2178
const struct iio_device * trigger ;
2172
2179
int ret ;
2173
2180
2174
- ret = iio_device_get_trigger (dev , & trigger );
2181
+ trigger = iio_device_get_trigger (dev );
2182
+ ret = iio_err (trigger );
2175
2183
if (ret == 0 && trigger == NULL && num_enabled > 0 ) {
2176
2184
snprintf (warning_text , sizeof (warning_text ),
2177
2185
"Device %s needs an impulse generator" , name );
@@ -6755,7 +6763,8 @@ static gboolean right_click_menu_show(OscPlot *plot, GdkEvent *event)
6755
6763
bool needs_trigger ;
6756
6764
int ret ;
6757
6765
6758
- ret = iio_device_get_trigger (dev , & trigger );
6766
+ trigger = iio_device_get_trigger (dev );
6767
+ ret = iio_err (trigger );
6759
6768
needs_trigger = false;
6760
6769
if (ret == 0 ) {
6761
6770
needs_trigger = true;
0 commit comments