* @param x a pointer to the input memory
* @return the corresponding unsigned integer
*/
-#define RB16(x) (((unsigned)((const uint8_t*)(x))[0] << 8) | \
+#define RB16(x) (((unsigned)((const uint8_t*)(x))[0] << 8) | \
(unsigned)((const uint8_t*)(x))[1])
/**
#define RL16(x) (((unsigned)((const uint8_t*)(x))[1] << 8) | \
(unsigned)((const uint8_t*)(x))[0])
+/**
+ * Read a 16 bits big endian signed integer out of memory.
+ * @param x a pointer to the input memory
+ * @return the corresponding signed integer
+ */
+#define RB16S(x) ((int16_t) \
+ (((unsigned)((const uint8_t*)(x))[0] << 8) | \
+ (unsigned)((const uint8_t*)(x))[1]))
+
/**
* Read a 16 bits little endian signed integer out of memory.
* @param x a pointer to the input memory
* @return the corresponding unsigned integer
*/
#define RB32(x) (((unsigned)((const uint8_t*)(x))[0] << 24) | \
- ((unsigned)((const uint8_t*)(x))[1] << 16) | \
- ((unsigned)((const uint8_t*)(x))[2] << 8) | \
+ ((unsigned)((const uint8_t*)(x))[1] << 16) | \
+ ((unsigned)((const uint8_t*)(x))[2] << 8) | \
(unsigned)((const uint8_t*)(x))[3])
/**
* @return the corresponding unsigned integer
*/
#define RL32(x) (((unsigned)((const uint8_t*)(x))[3] << 24) | \
- ((unsigned)((const uint8_t*)(x))[2] << 16) | \
- ((unsigned)((const uint8_t*)(x))[1] << 8) | \
+ ((unsigned)((const uint8_t*)(x))[2] << 16) | \
+ ((unsigned)((const uint8_t*)(x))[1] << 8) | \
(unsigned)((const uint8_t*)(x))[0])
+/**
+ * Read a 32 bits big endian signed integer out of memory.
+ * @param x a pointer to the input memory
+ * @return the corresponding signed integer
+ */
+#define RB32S(x) ((int32_t) \
+ (((unsigned)((const uint8_t*)(x))[0] << 24) | \
+ ((unsigned)((const uint8_t*)(x))[1] << 16) | \
+ ((unsigned)((const uint8_t*)(x))[2] << 8) | \
+ (unsigned)((const uint8_t*)(x))[3]))
+
/**
* Read a 32 bits little endian signed integer out of memory.
* @param x a pointer to the input memory
*/
#define RL32S(x) ((int32_t) \
(((unsigned)((const uint8_t*)(x))[3] << 24) | \
- ((unsigned)((const uint8_t*)(x))[2] << 16) | \
- ((unsigned)((const uint8_t*)(x))[1] << 8) | \
+ ((unsigned)((const uint8_t*)(x))[2] << 16) | \
+ ((unsigned)((const uint8_t*)(x))[1] << 8) | \
(unsigned)((const uint8_t*)(x))[0]))
+/**
+ * Read a 64 bits big endian unsigned integer out of memory.
+ * @param x a pointer to the input memory
+ * @return the corresponding unsigned integer
+ */
+#define RB64(x) (((uint64_t)((const uint8_t*)(x))[0] << 56) | \
+ ((uint64_t)((const uint8_t*)(x))[1] << 48) | \
+ ((uint64_t)((const uint8_t*)(x))[2] << 40) | \
+ ((uint64_t)((const uint8_t*)(x))[3] << 32) | \
+ ((uint64_t)((const uint8_t*)(x))[4] << 24) | \
+ ((uint64_t)((const uint8_t*)(x))[5] << 16) | \
+ ((uint64_t)((const uint8_t*)(x))[6] << 8) | \
+ (uint64_t)((const uint8_t*)(x))[7])
+
+/**
+ * Read a 64 bits little endian unsigned integer out of memory.
+ * @param x a pointer to the input memory
+ * @return the corresponding unsigned integer
+ */
+#define RL64(x) (((uint64_t)((const uint8_t*)(x))[7] << 56) | \
+ ((uint64_t)((const uint8_t*)(x))[6] << 48) | \
+ ((uint64_t)((const uint8_t*)(x))[5] << 40) | \
+ ((uint64_t)((const uint8_t*)(x))[4] << 32) | \
+ ((uint64_t)((const uint8_t*)(x))[3] << 24) | \
+ ((uint64_t)((const uint8_t*)(x))[2] << 16) | \
+ ((uint64_t)((const uint8_t*)(x))[1] << 8) | \
+ (uint64_t)((const uint8_t*)(x))[0])
+
+/**
+ * Read a 64 bits little endian signed integer out of memory.
+ * @param x a pointer to the input memory
+ * @return the corresponding unsigned integer
+ */
+#define RL64S(x) ((int64_t) \
+ (((uint64_t)((const uint8_t*)(x))[7] << 56) | \
+ ((uint64_t)((const uint8_t*)(x))[6] << 48) | \
+ ((uint64_t)((const uint8_t*)(x))[5] << 40) | \
+ ((uint64_t)((const uint8_t*)(x))[4] << 32) | \
+ ((uint64_t)((const uint8_t*)(x))[3] << 24) | \
+ ((uint64_t)((const uint8_t*)(x))[2] << 16) | \
+ ((uint64_t)((const uint8_t*)(x))[1] << 8) | \
+ (uint64_t)((const uint8_t*)(x))[0]))
+
/**
* Read a 32 bits big endian float out of memory.
* @param x a pointer to the input memory
SR_INPUT_META_FILESIZE = 0x02,
/** The first 128 bytes of the file, provided as a GString. */
SR_INPUT_META_HEADER = 0x04,
- /** The file's MIME type. */
- SR_INPUT_META_MIMETYPE = 0x08,
/** The module cannot identify a file without this metadata. */
SR_INPUT_META_REQUIRED = 0x80,
* SR_INPUT_META_FILENAME
* SR_INPUT_META_FILESIZE
* SR_INPUT_META_HEADER
- * SR_INPUT_META_MIMETYPE
*
* If the high bit (SR_INPUT META_REQUIRED) is set, the module cannot
* identify a stream without the given metadata.
* Returns a NULL-terminated list of options this module can take.
* Can be NULL, if the module has no options.
*/
- struct sr_option *(*options) (void);
+ const struct sr_option *(*options) (void);
/**
* Check if this input module can load and parse the specified stream.
* A unique ID for this output module, suitable for use in command-line
* clients, [a-z0-9-]. Must not be NULL.
*/
- char *id;
+ const char *id;
/**
* A unique name for this output module, suitable for use in GUI
* This can be displayed by frontends, e.g. when selecting the output
* module for saving a file.
*/
- char *desc;
+ const char *desc;
/**
* A NULL terminated array of strings containing a list of file name
* A unique ID for this transform module, suitable for use in
* command-line clients, [a-z0-9-]. Must not be NULL.
*/
- char *id;
+ const char *id;
/**
* A unique name for this transform module, suitable for use in GUI
* This can be displayed by frontends, e.g. when selecting
* which transform module(s) to add.
*/
- char *desc;
+ const char *desc;
/**
* Returns a NULL-terminated list of options this transform module
/*--- session_file.c --------------------------------------------------------*/
+#if !HAVE_ZIP_DISCARD
+/* Replace zip_discard() if not available. */
+#define zip_discard(zip) sr_zip_discard(zip)
+SR_PRIV void sr_zip_discard(struct zip *archive);
+#endif
+
SR_PRIV GKeyFile *sr_sessionfile_read_metadata(struct zip *archive,
const struct zip_stat *entry);
/*--- analog.c --------------------------------------------------------------*/
-SR_PRIV int sr_analog_init(struct sr_datafeed_analog2 *analog,
+SR_PRIV int sr_analog_init(struct sr_datafeed_analog *analog,
struct sr_analog_encoding *encoding,
struct sr_analog_meaning *meaning,
struct sr_analog_spec *spec,
SR_PRIV gboolean sr_es519xx_2400_11b_packet_valid(const uint8_t *buf);
SR_PRIV int sr_es519xx_2400_11b_parse(const uint8_t *buf, float *floatval,
- struct sr_datafeed_analog *analog, void *info);
+ struct sr_datafeed_analog_old *analog, void *info);
SR_PRIV gboolean sr_es519xx_2400_11b_altfn_packet_valid(const uint8_t *buf);
SR_PRIV int sr_es519xx_2400_11b_altfn_parse(const uint8_t *buf,
- float *floatval, struct sr_datafeed_analog *analog, void *info);
+ float *floatval, struct sr_datafeed_analog_old *analog, void *info);
SR_PRIV gboolean sr_es519xx_19200_11b_5digits_packet_valid(const uint8_t *buf);
SR_PRIV int sr_es519xx_19200_11b_5digits_parse(const uint8_t *buf,
- float *floatval, struct sr_datafeed_analog *analog, void *info);
+ float *floatval, struct sr_datafeed_analog_old *analog, void *info);
SR_PRIV gboolean sr_es519xx_19200_11b_clamp_packet_valid(const uint8_t *buf);
SR_PRIV int sr_es519xx_19200_11b_clamp_parse(const uint8_t *buf,
- float *floatval, struct sr_datafeed_analog *analog, void *info);
+ float *floatval, struct sr_datafeed_analog_old *analog, void *info);
SR_PRIV gboolean sr_es519xx_19200_11b_packet_valid(const uint8_t *buf);
SR_PRIV int sr_es519xx_19200_11b_parse(const uint8_t *buf, float *floatval,
- struct sr_datafeed_analog *analog, void *info);
+ struct sr_datafeed_analog_old *analog, void *info);
SR_PRIV gboolean sr_es519xx_19200_14b_packet_valid(const uint8_t *buf);
SR_PRIV int sr_es519xx_19200_14b_parse(const uint8_t *buf, float *floatval,
- struct sr_datafeed_analog *analog, void *info);
+ struct sr_datafeed_analog_old *analog, void *info);
SR_PRIV gboolean sr_es519xx_19200_14b_sel_lpf_packet_valid(const uint8_t *buf);
SR_PRIV int sr_es519xx_19200_14b_sel_lpf_parse(const uint8_t *buf,
- float *floatval, struct sr_datafeed_analog *analog, void *info);
+ float *floatval, struct sr_datafeed_analog_old *analog, void *info);
/*--- hardware/dmm/fs9922.c -------------------------------------------------*/
SR_PRIV gboolean sr_fs9922_packet_valid(const uint8_t *buf);
SR_PRIV int sr_fs9922_parse(const uint8_t *buf, float *floatval,
- struct sr_datafeed_analog *analog, void *info);
-SR_PRIV void sr_fs9922_z1_diode(struct sr_datafeed_analog *analog, void *info);
+ struct sr_datafeed_analog_old *analog, void *info);
+SR_PRIV void sr_fs9922_z1_diode(struct sr_datafeed_analog_old *analog, void *info);
/*--- hardware/dmm/fs9721.c -------------------------------------------------*/
SR_PRIV gboolean sr_fs9721_packet_valid(const uint8_t *buf);
SR_PRIV int sr_fs9721_parse(const uint8_t *buf, float *floatval,
- struct sr_datafeed_analog *analog, void *info);
-SR_PRIV void sr_fs9721_00_temp_c(struct sr_datafeed_analog *analog, void *info);
-SR_PRIV void sr_fs9721_01_temp_c(struct sr_datafeed_analog *analog, void *info);
-SR_PRIV void sr_fs9721_10_temp_c(struct sr_datafeed_analog *analog, void *info);
-SR_PRIV void sr_fs9721_01_10_temp_f_c(struct sr_datafeed_analog *analog, void *info);
-SR_PRIV void sr_fs9721_max_c_min(struct sr_datafeed_analog *analog, void *info);
+ struct sr_datafeed_analog_old *analog, void *info);
+SR_PRIV void sr_fs9721_00_temp_c(struct sr_datafeed_analog_old *analog, void *info);
+SR_PRIV void sr_fs9721_01_temp_c(struct sr_datafeed_analog_old *analog, void *info);
+SR_PRIV void sr_fs9721_10_temp_c(struct sr_datafeed_analog_old *analog, void *info);
+SR_PRIV void sr_fs9721_01_10_temp_f_c(struct sr_datafeed_analog_old *analog, void *info);
+SR_PRIV void sr_fs9721_max_c_min(struct sr_datafeed_analog_old *analog, void *info);
+
+/*--- hardware/dmm/dtm0660.c ------------------------------------------------*/
+
+#define DTM0660_PACKET_SIZE 15
+
+struct dtm0660_info {
+ gboolean is_ac, is_dc, is_auto, is_rs232, is_micro, is_nano, is_kilo;
+ gboolean is_diode, is_milli, is_percent, is_mega, is_beep, is_farad;
+ gboolean is_ohm, is_rel, is_hold, is_ampere, is_volt, is_hz, is_bat;
+ gboolean is_degf, is_degc, is_c2c1_01, is_c2c1_00, is_apo, is_min;
+ gboolean is_minmax, is_max, is_sign;
+};
+
+SR_PRIV gboolean sr_dtm0660_packet_valid(const uint8_t *buf);
+SR_PRIV int sr_dtm0660_parse(const uint8_t *buf, float *floatval,
+ struct sr_datafeed_analog_old *analog, void *info);
/*--- hardware/dmm/m2110.c --------------------------------------------------*/
SR_PRIV gboolean sr_m2110_packet_valid(const uint8_t *buf);
SR_PRIV int sr_m2110_parse(const uint8_t *buf, float *floatval,
- struct sr_datafeed_analog *analog, void *info);
+ struct sr_datafeed_analog_old *analog, void *info);
/*--- hardware/dmm/metex14.c ------------------------------------------------*/
#endif
SR_PRIV gboolean sr_metex14_packet_valid(const uint8_t *buf);
SR_PRIV int sr_metex14_parse(const uint8_t *buf, float *floatval,
- struct sr_datafeed_analog *analog, void *info);
+ struct sr_datafeed_analog_old *analog, void *info);
/*--- hardware/dmm/rs9lcd.c -------------------------------------------------*/
SR_PRIV gboolean sr_rs9lcd_packet_valid(const uint8_t *buf);
SR_PRIV int sr_rs9lcd_parse(const uint8_t *buf, float *floatval,
- struct sr_datafeed_analog *analog, void *info);
+ struct sr_datafeed_analog_old *analog, void *info);
/*--- hardware/dmm/bm25x.c --------------------------------------------------*/
SR_PRIV gboolean sr_brymen_bm25x_packet_valid(const uint8_t *buf);
SR_PRIV int sr_brymen_bm25x_parse(const uint8_t *buf, float *floatval,
- struct sr_datafeed_analog *analog, void *info);
+ struct sr_datafeed_analog_old *analog, void *info);
/*--- hardware/dmm/ut71x.c --------------------------------------------------*/
SR_PRIV gboolean sr_ut71x_packet_valid(const uint8_t *buf);
SR_PRIV int sr_ut71x_parse(const uint8_t *buf, float *floatval,
- struct sr_datafeed_analog *analog, void *info);
+ struct sr_datafeed_analog_old *analog, void *info);
/*--- hardware/dmm/vc870.c --------------------------------------------------*/
SR_PRIV gboolean sr_vc870_packet_valid(const uint8_t *buf);
SR_PRIV int sr_vc870_parse(const uint8_t *buf, float *floatval,
- struct sr_datafeed_analog *analog, void *info);
+ struct sr_datafeed_analog_old *analog, void *info);
/*--- hardware/lcr/es51919.c ------------------------------------------------*/
SR_PRIV gboolean sr_ut372_packet_valid(const uint8_t *buf);
SR_PRIV int sr_ut372_parse(const uint8_t *buf, float *floatval,
- struct sr_datafeed_analog *analog, void *info);
+ struct sr_datafeed_analog_old *analog, void *info);
/*--- hardware/scale/kern.c -------------------------------------------------*/
SR_PRIV gboolean sr_kern_packet_valid(const uint8_t *buf);
SR_PRIV int sr_kern_parse(const uint8_t *buf, float *floatval,
- struct sr_datafeed_analog *analog, void *info);
+ struct sr_datafeed_analog_old *analog, void *info);
#endif