- num_probes = g_slist_length(o->device->probes);
- if (o->device->plugin) {
- samplerate = *((uint64_t *) o->device->plugin->get_device_info(
- o->device->plugin_index, DI_CUR_SAMPLERATE));
- if (!(samplerate_s = sigrok_samplerate_string(samplerate))) {
- free(ctx->header);
- free(ctx);
- return SIGROK_ERR;
+ 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;