diff options
author | Michał Cichoń <michcic@gmail.com> | 2015-08-25 19:56:24 +0200 |
---|---|---|
committer | Michał Cichoń <michcic@gmail.com> | 2015-08-25 19:56:24 +0200 |
commit | 682f23e7bb4a52bedf46eff5c4859e1308eda124 (patch) | |
tree | 30ad4f37b434ecdfb5edc36dfbaf7fc924e53c0e /vtparse/src/vtparse.h | |
parent | 8b41fc907bcd27d24c895062ae8a61b305fc2d46 (diff) | |
download | pianobar-windows-build-682f23e7bb4a52bedf46eff5c4859e1308eda124.tar.gz pianobar-windows-build-682f23e7bb4a52bedf46eff5c4859e1308eda124.tar.bz2 pianobar-windows-build-682f23e7bb4a52bedf46eff5c4859e1308eda124.zip |
Update build ref
Diffstat (limited to 'vtparse/src/vtparse.h')
-rw-r--r-- | vtparse/src/vtparse.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/vtparse/src/vtparse.h b/vtparse/src/vtparse.h new file mode 100644 index 0000000..1d176ad --- /dev/null +++ b/vtparse/src/vtparse.h @@ -0,0 +1,31 @@ +/* + * VTParse - an implementation of Paul Williams' DEC compatible state machine parser + * + * Author: Joshua Haberman <joshua@reverberate.org> + * + * This code is in the public domain. + */ + +#include "vtparse_table.h" + +#define MAX_INTERMEDIATE_CHARS 2 +#define ACTION(state_change) (state_change & 0x0F) +#define STATE(state_change) (state_change >> 4) + +struct vtparse; + +typedef void (*vtparse_callback_t)(struct vtparse*, vtparse_action_t, unsigned char); + +typedef struct vtparse { + vtparse_state_t state; + vtparse_callback_t cb; + unsigned char intermediate_chars[MAX_INTERMEDIATE_CHARS+1]; + char ignore_flagged; + int params[16]; + int num_params; + void* user_data; +} vtparse_t; + +void vtparse_init(vtparse_t *parser, vtparse_callback_t cb); +void vtparse(vtparse_t *parser, unsigned char *data, int len); + |