X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fasix-sigma%2Fasix-sigma.c;h=acd3acb9db733153bd4ee79257fbd355c65f56c1;hb=961009b0c4002717c669a0cdcafb0fcf29f5ea1b;hp=e340e5408eb0b7a13c3a5d282ecb228dd2e9e26e;hpb=fbec8bd2f3ead02358df65240c2cf786c8267f54;p=libsigrok.git diff --git a/hardware/asix-sigma/asix-sigma.c b/hardware/asix-sigma/asix-sigma.c index e340e540..acd3acb9 100644 --- a/hardware/asix-sigma/asix-sigma.c +++ b/hardware/asix-sigma/asix-sigma.c @@ -37,7 +37,7 @@ #define USB_VENDOR_NAME "ASIX" #define USB_MODEL_NAME "SIGMA" #define USB_MODEL_VERSION "" -#define TRIGGER_TYPES "rf10" +#define TRIGGER_TYPE "rf10" #define NUM_PROBES 16 SR_PRIV struct sr_dev_driver asix_sigma_driver_info; @@ -70,10 +70,10 @@ static const char *probe_names[NUM_PROBES + 1] = { }; static const struct sr_samplerates samplerates = { - 0, - 0, - 0, - supported_samplerates, + .low = 0, + .high = 0, + .step = 0, + .list = supported_samplerates, }; static const int hwcaps[] = { @@ -420,16 +420,7 @@ static int clear_instances(void) static int hw_init(struct sr_context *sr_ctx) { - struct drv_context *drvc; - - if (!(drvc = g_try_malloc0(sizeof(struct drv_context)))) { - sr_err("Driver context malloc failed."); - return SR_ERR_MALLOC; - } - drvc->sr_ctx = sr_ctx; - di->priv = drvc; - - return SR_OK; + return std_hw_init(sr_ctx, di, DRIVER_LOG_DOMAIN); } static GSList *hw_scan(GSList *options) @@ -447,7 +438,9 @@ static GSList *hw_scan(GSList *options) (void)options; drvc = di->priv; + devices = NULL; + clear_instances(); if (!(devc = g_try_malloc(sizeof(struct dev_context)))) { @@ -520,11 +513,7 @@ free: static GSList *hw_dev_list(void) { - struct drv_context *drvc; - - drvc = di->priv; - - return drvc->instances; + return ((struct drv_context *)(di->priv))->instances; } static int upload_firmware(int firmware_idx, struct dev_context *devc) @@ -763,10 +752,7 @@ static int hw_dev_close(struct sr_dev_inst *sdi) { struct dev_context *devc; - if (!(devc = sdi->priv)) { - sr_err("%s: sdi->priv was NULL", __func__); - return SR_ERR_BUG; - } + devc = sdi->priv; /* TODO */ if (sdi->status == SR_ST_ACTIVE) @@ -792,13 +778,7 @@ static int config_get(int id, const void **data, const struct sr_dev_inst *sdi) struct dev_context *devc; switch (id) { - case SR_DI_HWCAPS: - *data = hwcaps; - break; - case SR_DI_TRIGGER_TYPES: - *data = (char *)TRIGGER_TYPES; - break; - case SR_DI_CUR_SAMPLERATE: + case SR_CONF_SAMPLERATE: if (sdi) { devc = sdi->priv; *data = &devc->cur_samplerate; @@ -846,9 +826,15 @@ static int config_list(int key, const void **data, const struct sr_dev_inst *sdi (void)sdi; switch (key) { + case SR_CONF_DEVICE_OPTIONS: + *data = hwcaps; + break; case SR_CONF_SAMPLERATE: *data = &samplerates; break; + case SR_CONF_TRIGGER_TYPE: + *data = (char *)TRIGGER_TYPE; + break; default: return SR_ERR_ARG; }