X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Falsa%2Fapi.c;h=43d9b51b5543484605f11826682f076ad8e4f27e;hb=e73ffd4238c6d1be58d3fcdcf7f100200f033856;hp=2e674fff6e3fe151aa2233108212aeab11ccfe3b;hpb=efdecf4c0553ce00ea2a6365212f5fe305496fed;p=libsigrok.git diff --git a/hardware/alsa/api.c b/hardware/alsa/api.c index 2e674fff..43d9b51b 100644 --- a/hardware/alsa/api.c +++ b/hardware/alsa/api.c @@ -92,6 +92,8 @@ static int hw_dev_open(struct sr_dev_inst *sdi) return SR_ERR; } + sdi->status = SR_ST_ACTIVE; + return SR_OK; } @@ -108,6 +110,7 @@ static int hw_dev_close(struct sr_dev_inst *sdi) sr_err("Failed to close device: %s.", snd_strerror(ret)); devc->capture_handle = NULL; + sdi->status = SR_ST_INACTIVE; } } else { sr_dbg("No capture handle, no need to close audio device."); @@ -143,6 +146,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; + devc = sdi->priv; switch (id) { @@ -203,6 +209,9 @@ static int hw_dev_acquisition_start(const struct sr_dev_inst *sdi, int count, ret; char *endianness; + if (sdi->status != SR_ST_ACTIVE) + return SR_ERR_DEV_CLOSED; + devc = sdi->priv; devc->cb_data = cb_data; devc->num_samples = 0;