X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=session_driver.c;h=64ec06d17b4dd779ad3d01088b0255a4b2b4b6a8;hb=387014de6355545d95958ec2666836318c2b3902;hp=0b8c1ed26cc2833b646708a6ba55c68cfb2e0903;hpb=444adea232d24951b056fd4d7e061608dfabef7f;p=libsigrok.git diff --git a/session_driver.c b/session_driver.c index 0b8c1ed2..64ec06d1 100644 --- a/session_driver.c +++ b/session_driver.c @@ -190,20 +190,27 @@ static int hw_dev_open(int dev_index) return SR_OK; } -static const void *hw_dev_info_get(int dev_index, int dev_info_id) +static int hw_info_get(int info_id, const void **data, + const struct sr_dev_inst *sdi) { struct session_vdev *vdev; - void *info; - if (dev_info_id != SR_DI_CUR_SAMPLERATE) - return NULL; - - if (!(vdev = get_vdev_by_index(dev_index))) - return NULL; - - info = &vdev->samplerate; + switch (info_id) { + case SR_DI_HWCAPS: + *data = hwcaps; + break; + case SR_DI_CUR_SAMPLERATE: + if (sdi) { + vdev = sdi->priv; + *data = &vdev->samplerate; + } else + return SR_ERR; + break; + default: + return SR_ERR_ARG; + } - return info; + return SR_OK; } static int hw_dev_status_get(int dev_index) @@ -217,17 +224,6 @@ static int hw_dev_status_get(int dev_index) return SR_ERR; } -/** - * Get the list of hardware capabilities. - * - * @return A pointer to the (hardware) capabilities of this virtual session - * driver. This could be NULL, if no such capabilities exist. - */ -static const int *hw_hwcap_get_all(void) -{ - return hwcaps; -} - static int hw_dev_config_set(int dev_index, int hwcap, const void *value) { struct session_vdev *vdev; @@ -344,9 +340,8 @@ SR_PRIV struct sr_dev_driver session_driver = { .cleanup = hw_cleanup, .dev_open = hw_dev_open, .dev_close = NULL, - .dev_info_get = hw_dev_info_get, + .info_get = hw_info_get, .dev_status_get = hw_dev_status_get, - .hwcap_get_all = hw_hwcap_get_all, .dev_config_set = hw_dev_config_set, .dev_acquisition_start = hw_dev_acquisition_start, .dev_acquisition_stop = NULL,