| // SPDX-License-Identifier: (GPL-2.0-only OR MIT) |
| /* |
| * Copyright (C) 2024 Amlogic, Inc. All rights reserved |
| */ |
| |
| #ifndef BINC_PARSER_H |
| #define BINC_PARSER_H |
| |
| #include <glib.h> |
| #include <endian.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| typedef struct parser_instance Parser; |
| |
| /** |
| * Create a parser for a byte array |
| * |
| * @param bytes the byte array |
| * @param byteOrder either LITTLE_ENDIAN or BIG_ENDIAN |
| * @return parser object |
| */ |
| Parser *parser_create(const GByteArray *bytes, int byteOrder); |
| |
| void parser_set_offset(Parser *parser, guint offset); |
| |
| void parser_free(Parser *parser); |
| |
| guint8 parser_get_uint8(Parser *parser); |
| |
| gint8 parser_get_sint8(Parser *parser); |
| |
| guint16 parser_get_uint16(Parser *parser); |
| |
| gint16 parser_get_sint16(Parser *parser); |
| |
| guint32 parser_get_uint24(Parser *parser); |
| |
| guint32 parser_get_uint32(Parser *parser); |
| |
| double parser_get_sfloat(Parser *parser); |
| |
| double parser_get_float(Parser *parser); |
| |
| double parser_get_754half(Parser *parser); |
| |
| double parser_get_754float(Parser *parser); |
| |
| GDateTime* parser_get_date_time(Parser *parser); |
| |
| GByteArray* binc_get_date_time(); |
| |
| GByteArray *binc_get_current_time(); |
| |
| GString *parser_get_string(Parser *parser); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif //BINC_PARSER_H |