]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/asix-sigma/protocol.h
asix-sigma: prepare FTDI open/close for "optional open"
[libsigrok.git] / src / hardware / asix-sigma / protocol.h
index 8c4f2dfbc2fd2a2902fe4cddcecebe2b8e9b358c..edd15dffdb1f03e65dd8ae3998160a0a85d7cfcc 100644 (file)
@@ -4,6 +4,7 @@
  * Copyright (C) 2010-2012 Håvard Espeland <gus@ping.uio.no>,
  * Copyright (C) 2010 Martin Stensgård <mastensg@ping.uio.no>
  * Copyright (C) 2010 Carl Henrik Lunde <chlunde@ping.uio.no>
+ * Copyright (C) 2020 Gerhard Sittig <gerhard.sittig@gmx.net>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -324,7 +325,10 @@ struct dev_context {
                uint16_t prefix;
                enum asix_device_type type;
        } id;
-       struct ftdi_context ftdic;
+       struct {
+               struct ftdi_context ctx;
+               gboolean is_open, must_close;
+       } ftdi;
        uint64_t samplerate;
        struct sr_sw_limits cfg_limits; /* Configured limits (user specified). */
        struct sr_sw_limits acq_limits; /* Acquisition limits (internal use). */
@@ -342,6 +346,12 @@ struct dev_context {
 extern SR_PRIV const uint64_t samplerates[];
 extern SR_PRIV const size_t samplerates_count;
 
+/* "Automatic" and forced USB connection open/close support. */
+SR_PRIV int sigma_check_open(const struct sr_dev_inst *sdi);
+SR_PRIV int sigma_check_close(struct dev_context *devc);
+SR_PRIV int sigma_force_open(const struct sr_dev_inst *sdi);
+SR_PRIV int sigma_force_close(struct dev_context *devc);
+
 SR_PRIV int sigma_write_register(struct dev_context *devc,
        uint8_t reg, uint8_t *data, size_t len);
 SR_PRIV int sigma_set_register(struct dev_context *devc,