]> sigrok.org Git - libsigrok.git/blobdiff - src/analog.c
Add a sr_analog_init() API to initialize sr_datafeed_analog2 struct.
[libsigrok.git] / src / analog.c
index 0f7a30719153fff25c0e3f1f610b6e4bdba071cb..29fb8426204c998f0512ca22735a3113f945cb0f 100644 (file)
 
 #define LOG_PREFIX "analog"
 
+SR_PRIV int sr_analog_init(struct sr_datafeed_analog2 *analog,
+               struct sr_analog_encoding *encoding,
+               struct sr_analog_meaning *meaning,
+               struct sr_analog_spec *spec,
+               int digits)
+{
+       memset(analog, 0, sizeof(*analog));
+       memset(encoding, 0, sizeof(*encoding));
+       memset(meaning, 0, sizeof(*meaning));
+       memset(spec, 0, sizeof(*spec));
+
+       analog->encoding = encoding;
+       analog->meaning = meaning;
+       analog->spec = spec;
+
+       encoding->unitsize = sizeof(float);
+       encoding->is_float = TRUE;
+#ifdef WORDS_BIGENDIAN
+       encoding->is_bigendian = TRUE;
+#else
+       encoding->is_bigendian = FALSE;
+#endif
+       encoding->digits = digits;
+       encoding->is_digits_decimal = TRUE;
+       encoding->scale.p = 1;
+       encoding->scale.q = 1;
+       encoding->offset.p = 0;
+       encoding->offset.q = 1;
+
+       spec->spec_digits = digits;
+
+       return SR_OK;
+}
+
 SR_API int sr_analog_to_float(const struct sr_datafeed_analog2 *analog,
                float *buf)
 {