]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/beaglelogic/protocol.c
windows: Fix various compiler warnings.
[libsigrok.git] / src / hardware / beaglelogic / protocol.c
index 05dcccf1ffac25bc0a1f0e3784e150f94bd68c7e..a07bb203d1526369190b1db7bfe0764215563542 100644 (file)
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "protocol.h"
 #include <errno.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include "protocol.h"
 
 /* Define data packet size independent of packet (bufunitsize bytes) size
  * from the BeagleLogic kernel module */
@@ -40,6 +40,7 @@ SR_PRIV int beaglelogic_receive_data(int fd, int revents, void *cb_data)
        struct sr_datafeed_logic logic;
 
        int trigger_offset;
+       int pre_trigger_samples;
        uint32_t packetsize;
        uint64_t bytes_remaining;
 
@@ -67,8 +68,9 @@ SR_PRIV int beaglelogic_receive_data(int fd, int revents, void *cb_data)
                } else {
                        /* Check for trigger */
                        trigger_offset = soft_trigger_logic_check(devc->stl,
-                                       logic.data, packetsize, NULL);
+                                       logic.data, packetsize, &pre_trigger_samples);
                        if (trigger_offset > -1) {
+                               devc->bytes_read += pre_trigger_samples * logic.unitsize;
                                trigger_offset *= logic.unitsize;
                                logic.length = MIN(packetsize - trigger_offset,
                                                bytes_remaining);