]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/rigol-ds/protocol.c
Introduce standard cleanup helper
[libsigrok.git] / src / hardware / rigol-ds / protocol.c
index 4647966c21dfa8c2843241107d9f70ec813eac34..b633977d662399f7459762baf0ab3fb71f9b1632 100644 (file)
@@ -19,6 +19,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <stdlib.h>
 #include <stdarg.h>
 #include <unistd.h>
@@ -538,7 +539,7 @@ SR_PRIV int rigol_ds_receive(int fd, int revents, void *cb_data)
        struct sr_scpi_dev_inst *scpi;
        struct dev_context *devc;
        struct sr_datafeed_packet packet;
-       struct sr_datafeed_analog analog;
+       struct sr_datafeed_analog_old analog;
        struct sr_datafeed_logic logic;
        double vdiv, offset;
        int len, i, vref;
@@ -616,8 +617,8 @@ SR_PRIV int rigol_ds_receive(int fd, int revents, void *cb_data)
                        if (len == -1) {
                                sr_err("Read error, aborting capture.");
                                packet.type = SR_DF_FRAME_END;
-                               sr_session_send(cb_data, &packet);
-                               sdi->driver->dev_acquisition_stop(sdi, cb_data);
+                               sr_session_send(sdi, &packet);
+                               sdi->driver->dev_acquisition_stop(sdi);
                                return TRUE;
                        }
                        /* At slow timebases in live capture the DS2072
@@ -649,8 +650,8 @@ SR_PRIV int rigol_ds_receive(int fd, int revents, void *cb_data)
        if (len == -1) {
                sr_err("Read error, aborting capture.");
                packet.type = SR_DF_FRAME_END;
-               sr_session_send(cb_data, &packet);
-               sdi->driver->dev_acquisition_stop(sdi, cb_data);
+               sr_session_send(sdi, &packet);
+               sdi->driver->dev_acquisition_stop(sdi);
                return TRUE;
        }
 
@@ -674,9 +675,9 @@ SR_PRIV int rigol_ds_receive(int fd, int revents, void *cb_data)
                analog.mq = SR_MQ_VOLTAGE;
                analog.unit = SR_UNIT_VOLT;
                analog.mqflags = 0;
-               packet.type = SR_DF_ANALOG;
+               packet.type = SR_DF_ANALOG_OLD;
                packet.payload = &analog;
-               sr_session_send(cb_data, &packet);
+               sr_session_send(sdi, &packet);
                g_slist_free(analog.channels);
        } else {
                logic.length = len;
@@ -687,7 +688,7 @@ SR_PRIV int rigol_ds_receive(int fd, int revents, void *cb_data)
                logic.data = devc->buffer;
                packet.type = SR_DF_LOGIC;
                packet.payload = &logic;
-               sr_session_send(cb_data, &packet);
+               sr_session_send(sdi, &packet);
        }
 
        if (devc->num_block_read == devc->num_block_bytes) {
@@ -706,8 +707,8 @@ SR_PRIV int rigol_ds_receive(int fd, int revents, void *cb_data)
                if (!sr_scpi_read_complete(scpi)) {
                        sr_err("Read should have been completed");
                        packet.type = SR_DF_FRAME_END;
-                       sr_session_send(cb_data, &packet);
-                       sdi->driver->dev_acquisition_stop(sdi, cb_data);
+                       sr_session_send(sdi, &packet);
+                       sdi->driver->dev_acquisition_stop(sdi);
                        return TRUE;
                }
                devc->num_block_read = 0;
@@ -741,11 +742,11 @@ SR_PRIV int rigol_ds_receive(int fd, int revents, void *cb_data)
        } else {
                /* Done with this frame. */
                packet.type = SR_DF_FRAME_END;
-               sr_session_send(cb_data, &packet);
+               sr_session_send(sdi, &packet);
 
                if (++devc->num_frames == devc->limit_frames) {
                        /* Last frame, stop capture. */
-                       sdi->driver->dev_acquisition_stop(sdi, cb_data);
+                       sdi->driver->dev_acquisition_stop(sdi);
                } else {
                        /* Get the next frame, starting with the first channel. */
                        devc->channel_entry = devc->enabled_channels;
@@ -754,7 +755,7 @@ SR_PRIV int rigol_ds_receive(int fd, int revents, void *cb_data)
 
                        /* Start of next frame. */
                        packet.type = SR_DF_FRAME_BEGIN;
-                       sr_session_send(cb_data, &packet);
+                       sr_session_send(sdi, &packet);
                }
        }