You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.4 KiB
C

/***************************************************************************
* steimdata.h:
*
* Declarations for Steim compression routines.
*
* modified: 2004.278
***************************************************************************/
#ifndef STEIMDATA_H
#define STEIMDATA_H 1
#ifdef __cplusplus
extern "C" {
#endif
#define STEIM1_FRAME_MAX_SAMPLES 60
#define STEIM2_FRAME_MAX_SAMPLES 105
#define VALS_PER_FRAME 15 /* # of ints for data per frame.*/
#define STEIM1_SPECIAL_MASK 0
#define STEIM1_BYTE_MASK 1
#define STEIM1_HALFWORD_MASK 2
#define STEIM1_FULLWORD_MASK 3
#define STEIM2_SPECIAL_MASK 0
#define STEIM2_BYTE_MASK 1
#define STEIM2_123_MASK 2
#define STEIM2_567_MASK 3
typedef union u_diff { /* union for Steim objects. */
int8_t byte[4]; /* 4 1-byte differences. */
int16_t hw[2]; /* 2 halfword differences. */
int32_t fw; /* 1 fullword difference. */
} U_DIFF;
typedef struct frame { /* frame in a seed data record. */
uint32_t ctrl; /* control word for frame. */
U_DIFF w[15]; /* compressed data. */
} FRAME;
typedef struct dframes { /* seed data frames. */
FRAME f[1]; /* data record header frames. */
} DFRAMES;
#ifdef __cplusplus
}
#endif
#endif /* STEIMDATA_H */