gigatron/rom/Contrib/at67/gtmidi.h
2025-01-28 19:17:01 +03:00

31 lines
837 B
C++

#ifndef GTMIDI_H
#define GTMIDI_H
#include <cstdint>
#define GTMIDI_TAG_SIZE 6
#define GTMIDI_NAME_SIZE 32
#define GTMIDI_TAG_HEADER {'g', 't', 'M', 'I', 'D', 'I'}
#define GTMIDI_TAG_STRING "gtMIDI"
#pragma pack(push, 1)
struct GtMidiHdr
{
uint8_t _tag[GTMIDI_TAG_SIZE] = GTMIDI_TAG_HEADER;
uint8_t _name[GTMIDI_NAME_SIZE] = {0};
uint8_t _hasVolume = 0;
uint8_t _hiSize = 0;
uint8_t _loSize = 0;
};
#pragma pack(pop)
#define GTMIDI_HDR_SIZE sizeof(GtMidiHdr)
#define GTMIDI_TAG_OFFSET offsetof(GtMidiHdr, _tag)
#define GTMIDI_NAME_OFFSET offsetof(GtMidiHdr, _name)
#define GTMIDI_VOLUME_OFFSET offsetof(GtMidiHdr, _hasVolume)
#define GTMIDI_HI_SIZE_OFFSET offsetof(GtMidiHdr, _hiSize)
#define GTMIDI_LO_SIZE_OFFSET offsetof(GtMidiHdr, _loSize)
#define GTMIDI_STREAM_OFFSET GTMIDI_HDR_SIZE
#endif