X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fchronovu-la8%2Fapi.c;h=6e5fd5b695638dfc3699516d9e1a43baa87717dc;hb=695d0e1efa819dc98914ce1baec388c8734e98a7;hp=53acf0b809386654184717fc35116240ae6edf7f;hpb=bd6fbf628abef9fab5293e016ad11e1a1ac4a0a9;p=libsigrok.git diff --git a/hardware/chronovu-la8/api.c b/hardware/chronovu-la8/api.c index 53acf0b8..6e5fd5b6 100644 --- a/hardware/chronovu-la8/api.c +++ b/hardware/chronovu-la8/api.c @@ -1,5 +1,5 @@ /* - * This file is part of the sigrok project. + * This file is part of the libsigrok project. * * Copyright (C) 2011-2012 Uwe Hermann * @@ -28,12 +28,13 @@ SR_PRIV struct sr_dev_driver chronovu_la8_driver_info; static struct sr_dev_driver *di = &chronovu_la8_driver_info; -/* This will be initialized via config_list()/SR_CONF_SAMPLERATE. +/* + * This will be initialized via config_list()/SR_CONF_SAMPLERATE. * * Min: 1 sample per 0.01us -> sample time is 0.084s, samplerate 100MHz * Max: 1 sample per 2.55us -> sample time is 21.391s, samplerate 392.15kHz */ -SR_PRIV uint64_t chronovu_la8_samplerates[255 + 1] = { 0 }; +SR_PRIV uint64_t chronovu_la8_samplerates[255] = { 0 }; /* Note: Continuous sampling is not supported by the hardware. */ SR_PRIV const int32_t chronovu_la8_hwcaps[] = { @@ -307,6 +308,9 @@ static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi) { struct dev_context *devc; + if (sdi->status != SR_ST_ACTIVE) + return SR_ERR_DEV_CLOSED; + if (!(devc = sdi->priv)) { sr_err("%s: sdi->priv was NULL.", __func__); return SR_ERR_BUG; @@ -353,14 +357,16 @@ static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi) switch (key) { case SR_CONF_DEVICE_OPTIONS: *data = g_variant_new_fixed_array(G_VARIANT_TYPE_INT32, - chronovu_la8_hwcaps, ARRAY_SIZE(chronovu_la8_hwcaps), + chronovu_la8_hwcaps, + ARRAY_SIZE(chronovu_la8_hwcaps), sizeof(int32_t)); break; case SR_CONF_SAMPLERATE: fill_supported_samplerates_if_needed(); g_variant_builder_init(&gvb, G_VARIANT_TYPE("a{sv}")); gvar = g_variant_new_fixed_array(G_VARIANT_TYPE("t"), - chronovu_la8_samplerates, ARRAY_SIZE(chronovu_la8_samplerates), + chronovu_la8_samplerates, + ARRAY_SIZE(chronovu_la8_samplerates), sizeof(uint64_t)); g_variant_builder_add(&gvb, "{sv}", "samplerates", gvar); *data = g_variant_builder_end(&gvb); @@ -430,6 +436,9 @@ static int hw_dev_acquisition_start(const struct sr_dev_inst *sdi, uint8_t buf[4]; int bytes_written; + if (sdi->status != SR_ST_ACTIVE) + return SR_ERR_DEV_CLOSED; + if (!(devc = sdi->priv)) { sr_err("%s: sdi->priv was NULL.", __func__); return SR_ERR_BUG;