X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Finput%2Ffeed_queue.c;h=1647d8b0f2a6001a24cf2100ec5ff5aa6d38b024;hb=c12ca361e724ed1e04c659420d74dd68efe345a9;hp=bd5c16c7f621947f55cd43dd8f641acb3874edab;hpb=57140e5a804dd5b616120f05e38c3409241bb37c;p=libsigrok.git diff --git a/src/input/feed_queue.c b/src/input/feed_queue.c index bd5c16c7..1647d8b0 100644 --- a/src/input/feed_queue.c +++ b/src/input/feed_queue.c @@ -95,6 +95,21 @@ SR_API int feed_queue_logic_flush(struct feed_queue_logic *q) return SR_OK; } +SR_API int feed_queue_logic_send_trigger(struct feed_queue_logic *q) +{ + int ret; + + ret = feed_queue_logic_flush(q); + if (ret != SR_OK) + return ret; + + ret = std_session_send_df_trigger(q->sdi); + if (ret != SR_OK) + return ret; + + return SR_OK; +} + SR_API void feed_queue_logic_free(struct feed_queue_logic *q) { @@ -147,6 +162,45 @@ SR_API struct feed_queue_analog *feed_queue_analog_alloc( return q; } +SR_API int feed_queue_analog_mq_unit(struct feed_queue_analog *q, + enum sr_mq mq, enum sr_mqflag mq_flag, enum sr_unit unit) +{ + int ret; + + if (!q) + return SR_ERR_ARG; + + ret = feed_queue_analog_flush(q); + if (ret != SR_OK) + return ret; + + q->meaning.mq = mq; + q->meaning.mqflags = mq_flag; + q->meaning.unit = unit; + + return SR_OK; +} + +SR_API int feed_queue_analog_scale_offset(struct feed_queue_analog *q, + const struct sr_rational *scale, const struct sr_rational *offset) +{ + int ret; + + if (!q) + return SR_ERR_ARG; + + ret = feed_queue_analog_flush(q); + if (ret != SR_OK) + return ret; + + if (scale) + q->encoding.scale = *scale; + if (offset) + q->encoding.offset = *offset; + + return SR_OK; +} + SR_API int feed_queue_analog_submit(struct feed_queue_analog *q, float data, size_t count) {