diff options
| author | henryk <henryk@6dc7ffe9-61d6-0310-9af1-9938baff3ed1> | 2007-11-24 07:59:42 +0000 | 
|---|---|---|
| committer | henryk <henryk@6dc7ffe9-61d6-0310-9af1-9938baff3ed1> | 2007-11-24 07:59:42 +0000 | 
| commit | 29ea5bbf5b9c3b3679aa40e4ee7029284cb424c6 (patch) | |
| tree | 0e20e9c665d05c228684e815ca142c0814057a80 /openpicc/application/decoder.h | |
| parent | 341b884abc8c29790dfffab1921a1f4fa127d62d (diff) | |
Add load modulation and encoding/decoding code from harald
git-svn-id: https://svn.openpcd.org:2342/trunk@351 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
Diffstat (limited to 'openpicc/application/decoder.h')
| -rw-r--r-- | openpicc/application/decoder.h | 32 | 
1 files changed, 32 insertions, 0 deletions
| diff --git a/openpicc/application/decoder.h b/openpicc/application/decoder.h new file mode 100644 index 0000000..bd25777 --- /dev/null +++ b/openpicc/application/decoder.h @@ -0,0 +1,32 @@ +#ifndef _DECODER_H +#define _DECODER_H + +struct decoder_state; + +struct decoder_algo { +	u_int8_t oversampling_rate;		 +	u_int8_t bits_per_sampled_char; +	u_int32_t bytesample_mask; +	int (*decode_sample)(const u_int32_t sample, u_int8_t *data); +	u_int32_t (*get_next_bytesample)(struct decoder_state *st, u_int8_t *parity_sample); +}; + +struct decoder_state { +	struct decoder_algo *algo; +	u_int8_t bit_ofs; +	const char *buf; +	const u_int32_t *buf32; +}; + +extern int decoder_register(int algnum, struct decoder_algo *algo); +extern int decoder_decode(u_int8_t algo, const char *sample_buf, +		  	  int sample_buf_size, unsigned char *data_buf); + +#define DECODER_MILLER		0 +#define DECODER_NRZL		1 +#define DECODER_NUM_ALGOS 	2 + +extern struct decoder_algo nrzl_decoder; +extern struct decoder_algo miller_decoder; + +#endif | 
