#include <libsigrok/libsigrok.h>
#include "libsigrok-internal.h"
-/* @cond PRIVATE */
+/** @cond PRIVATE */
#define LOG_PREFIX "soft-trigger"
-/* @endcond */
+/** @endcond */
-static size_t logic_channel_unitsize(GSList *channels)
+SR_PRIV int logic_channel_unitsize(GSList *channels)
{
- size_t number = 0;
+ int number = 0;
struct sr_channel *channel;
GSList *l;
for (l = channels; l; l = l->next) {
channel = l->data;
if (channel->type == SR_CHANNEL_LOGIC)
- number += 1;
+ number++;
}
- sr_dbg("number of logic channels: %d", (int) number);
- return (number + 7) / 8;
-}
+ return (number + 7) / 8;
+}
SR_PRIV struct soft_trigger_logic *soft_trigger_logic_new(
const struct sr_dev_inst *sdi, struct sr_trigger *trigger,
stl = g_malloc0(sizeof(struct soft_trigger_logic));
stl->sdi = sdi;
stl->trigger = trigger;
- /* Retreive number of logic channels, unitsize */
stl->unitsize = logic_channel_unitsize(sdi->channels);
stl->prev_sample = g_malloc0(stl->unitsize);
stl->pre_trigger_size = stl->unitsize * pre_trigger_samples;
SR_PRIV int soft_trigger_logic_check(struct soft_trigger_logic *stl,
uint8_t *buf, int len, int *pre_trigger_samples)
{
- struct sr_datafeed_packet packet;
struct sr_trigger_stage *stage;
struct sr_trigger_match *match;
GSList *l, *l_stage;
/* Fire trigger. */
offset = i / stl->unitsize;
- packet.type = SR_DF_TRIGGER;
- packet.payload = NULL;
- sr_session_send(stl->sdi, &packet);
+ std_session_send_df_trigger(stl->sdi);
break;
}
} else if (stl->cur_stage > 0) {