devc->num_probes = channels;
devc->hw_params = hw_params;
memcpy(devrates, hwrates, offset * sizeof(uint64_t));
- devc->supp_rates.list = devrates;
+ devc->samplerates = devrates;
sdi->priv = devc;
sdi->driver = di;
for (i = 0; i < devc->num_probes; i++) {
snprintf(p_name, sizeof(p_name), "Ch_%d", i);
- if (!(probe = sr_probe_new(0, SR_PROBE_ANALOG, TRUE, p_name)))
+ if (!(probe = sr_probe_new(i, SR_PROBE_ANALOG, TRUE, p_name)))
goto scan_error_cleanup;
sdi->probes = g_slist_append(sdi->probes, probe);
}
return devices;
}
-/*
- * Helper to be used with g_slist_free_full(); for properly freeing an alsa
- * dev instance.
- */
-SR_PRIV void alsa_dev_inst_clear(struct sr_dev_inst *sdi)
-{
- struct dev_context *devc;
-
- if (!(devc = sdi->priv))
- return;
-
- snd_pcm_hw_params_free(devc->hw_params);
- g_free((void*)devc->supp_rates.list);
- sr_dev_inst_free(sdi);
-}
-
/**
* Set the samplerate of the ALSA device.
*
i = 0;
do {
- if (newrate == devc->supp_rates.list[i]) {
+ if (newrate == devc->samplerates[i]) {
rate = newrate;
break;
}
- } while (devc->supp_rates.list[i++] != 0);
+ } while (devc->samplerates[i++] != 0);
if (!rate) {
sr_err("Sample rate %" PRIu64 " not supported.", newrate);