52 lines
1.8 KiB
C
52 lines
1.8 KiB
C
/* ************************************************************************** */
|
|
/* _____ _ */
|
|
/* libg1m/format/addin.h |_ _|__ _ _| |__ ___ _ _ */
|
|
/* | Project: libg1m | |/ _ \| | | | '_ \ / _ \ | | | */
|
|
/* | | (_) | |_| | | | | __/ |_| | */
|
|
/* By: thomas <thomas@touhey.fr> |_|\___/ \__,_|_| |_|\___|\__, |.fr */
|
|
/* Last updated: 2016/11/02 14:15:46 |___/ */
|
|
/* */
|
|
/* ************************************************************************** */
|
|
#ifndef LIBG1M_FORMAT_ADDIN_H
|
|
# define LIBG1M_FORMAT_ADDIN_H
|
|
# include <stdint.h>
|
|
# pragma pack(1)
|
|
|
|
/* Add-ins are compiled programs. They only have one G1M part,
|
|
* These add-ins usually have the `g1a` extension.
|
|
*
|
|
* There is a declination of this format for fx-CG calculators:
|
|
* See `libg1m/format/addin_cg.h`.
|
|
*
|
|
* with one subheader, which is the following: */
|
|
|
|
struct g1a_subheader {
|
|
/* the internal name, of format "@APPNAME".
|
|
* useful for add-ins calling themselves... I guess? */
|
|
uint8_t internal_name[8];
|
|
|
|
/* the number of estrips (I don't know yet) */
|
|
uint8_t estrips_count;
|
|
|
|
/* the add-in version, of format "01.23.4567"
|
|
* the "01.23" will be displayed in SYSTEM > VERSION */
|
|
uint8_t version[10];
|
|
|
|
/* the add-in creation type, of format "YYYY.MMDD.HHMM" */
|
|
uint8_t creation_date[14];
|
|
|
|
/* 30x17 pixel menu icon bitmap */
|
|
uint8_t icon[68];
|
|
|
|
/* program title */
|
|
uint8_t title[8];
|
|
|
|
/* and the filesize of the part! */
|
|
uint32_t filesize;
|
|
};
|
|
|
|
/* Then the G1A file will just contain the add-in code and stop. */
|
|
|
|
# pragma pack()
|
|
#endif /* LIBG1M_FORMAT_ADDIN_H */
|