X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Finput%2Ffeed_queue.c;h=1647d8b0f2a6001a24cf2100ec5ff5aa6d38b024;hb=c12ca361e724ed1e04c659420d74dd68efe345a9;hp=b25fa77affdc8b7f90731dafa62ed5ef6b6ab9ab;hpb=f478c3e613ac047572cfad9c5dcde965050b17fe;p=libsigrok.git diff --git a/src/input/feed_queue.c b/src/input/feed_queue.c index b25fa77a..1647d8b0 100644 --- a/src/input/feed_queue.c +++ b/src/input/feed_queue.c @@ -162,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) {