/****************************************************************************
 * This file is part of the project AqHome.
 * AqHome (c) by 2023 Martin Preuss, all rights reserved.
 *
 * The license for this file can be found in the file COPYING which you
 * should have received along with this file.
 ****************************************************************************/

#ifndef AQH_HEXFILE_H
#define AQH_HEXFILE_H


#include <aqhome/api.h>
#include <aqhome/hexfile/hexfilerecord.h>

#include <gwenhywfar/list.h>
#include <gwenhywfar/buffer.h>


/**
 * Reader and writer for INTEL HEX files (see https://en.wikipedia.org/wiki/Intel_HEX).
 */


typedef struct AQH_HEXFILE AQH_HEXFILE;


AQHOME_API AQH_HEXFILE *AQH_Hexfile_new();
AQHOME_API AQH_HEXFILE *AQH_Hexfile_fromString(const char *s);
AQHOME_API AQH_HEXFILE *AQH_Hexfile_fromFile(const char *filename);

AQHOME_API void AQH_Hexfile_toBuffer(const AQH_HEXFILE *h, GWEN_BUFFER *buffer);

AQHOME_API void AQH_Hexfile_free(AQH_HEXFILE *h);

AQHOME_API AQH_HEXFILERECORD_LIST *AQH_Hexfile_GetRecordList(const AQH_HEXFILE *h);






#endif


