iio: Use info temporary variable

Using a temporary struct iio_channel_info makes that piece of code much
more readable.
This commit is contained in:
Bastien Nocera
2019-05-13 13:41:42 +02:00
committed by hadess
parent 55cf113780
commit f521ed1d87

View File

@@ -547,41 +547,43 @@ process_scan_1 (char *data,
*ch_scale = 1.0; *ch_scale = 1.0;
for (k = 0; k < buffer_data->channels_count; k++) { for (k = 0; k < buffer_data->channels_count; k++) {
if (strcmp (buffer_data->channels[k]->name, ch_name) != 0) struct iio_channel_info *info = buffer_data->channels[k];
if (strcmp (info->name, ch_name) != 0)
continue; continue;
g_debug ("process_scan_1: channel_index: %d, chan_name: %s, channel_data_index: %d location: %d bytes: %d is_signed: %d be: %d shift: %d bits_used: %d", g_debug ("process_scan_1: channel_index: %d, chan_name: %s, channel_data_index: %d location: %d bytes: %d is_signed: %d be: %d shift: %d bits_used: %d",
k, buffer_data->channels[k]->name, buffer_data->channels[k]->index, buffer_data->channels[k]->location, k, info->name, info->index, info->location,
buffer_data->channels[k]->bytes, buffer_data->channels[k]->is_signed, buffer_data->channels[k]->be, info->bytes, info->is_signed, info->be,
buffer_data->channels[k]->shift, buffer_data->channels[k]->bits_used); info->shift, info->bits_used);
switch (buffer_data->channels[k]->bytes) { switch (info->bytes) {
/* only a few cases implemented so far */ /* only a few cases implemented so far */
case 4: case 4:
if (!buffer_data->channels[k]->is_signed) { if (!info->is_signed) {
guint32 val = iio_readu32(buffer_data->channels[k], (guint8 *) data); guint32 val = iio_readu32(info, (guint8 *) data);
val = val >> buffer_data->channels[k]->shift; val = val >> info->shift;
if (buffer_data->channels[k]->bits_used < 32) if (info->bits_used < 32)
val &= ((guint32) 1 << buffer_data->channels[k]->bits_used) - 1; val &= ((guint32) 1 << info->bits_used) - 1;
*ch_val = (int) val; *ch_val = (int) val;
if (buffer_data->channels[k]->scale) if (info->scale)
*ch_scale = buffer_data->channels[k]->scale; *ch_scale = info->scale;
*ch_present = TRUE; *ch_present = TRUE;
} else { } else {
gint32 val = iio_read32(buffer_data->channels[k], (gint8 *) data); gint32 val = iio_read32(info, (gint8 *) data);
val = val >> buffer_data->channels[k]->shift; val = val >> info->shift;
if (buffer_data->channels[k]->bits_used < 32) if (info->bits_used < 32)
val &= ((guint32) 1 << buffer_data->channels[k]->bits_used) - 1; val &= ((guint32) 1 << info->bits_used) - 1;
val = (gint32) (val << (32 - buffer_data->channels[k]->bits_used)) >> (32 - buffer_data->channels[k]->bits_used); val = (gint32) (val << (32 - info->bits_used)) >> (32 - info->bits_used);
*ch_val = (int) val; *ch_val = (int) val;
if (buffer_data->channels[k]->scale) if (info->scale)
*ch_scale = buffer_data->channels[k]->scale; *ch_scale = info->scale;
*ch_present = TRUE; *ch_present = TRUE;
} }
break; break;
case 2: case 2:
case 8: case 8:
g_error ("Process %d bytes channels not supported yet", buffer_data->channels[k]->bytes); g_error ("Process %d bytes channels not supported yet", info->bytes);
default: default:
g_assert_not_reached (); g_assert_not_reached ();
break; break;