- num_probes = g_slist_length(o->dev->probes);
- if (o->dev->driver || sr_dev_has_hwcap(o->dev, SR_HWCAP_SAMPLERATE)) {
- samplerate = *((uint64_t *) o->dev->driver->dev_info_get(
- o->dev->driver_index, SR_DI_CUR_SAMPLERATE));
- if (!(samplerate_s = sr_samplerate_string(samplerate))) {
- g_free(ctx->header);
- g_free(ctx);
- return SR_ERR;
+ num_probes = g_slist_length(o->sdi->probes);
+ if (o->sdi->driver || sr_dev_has_hwcap(o->sdi, SR_HWCAP_SAMPLERATE)) {
+ ret = o->sdi->driver->info_get(SR_DI_CUR_SAMPLERATE,
+ (const void **)&samplerate, o->sdi);
+ if (ret != SR_OK)
+ goto err;
+ if (!(samplerate_s = sr_samplerate_string(*samplerate))) {
+ ret = SR_ERR;
+ goto err;