7 #ifndef _SIFTEO_ABI_AUDIO_H
8 #define _SIFTEO_ABI_AUDIO_H
10 #include <sifteo/abi/types.h>
17 typedef uint8_t _SYSAudioChannelID;
19 #define _SYS_AUDIO_INVALID_CHANNEL_ID ((_SYSAudioChannelID)-1)
20 #define _SYS_AUDIO_MAX_CHANNELS 8
22 #define _SYS_AUDIO_MAX_VOLUME_LOG2 8
23 #define _SYS_AUDIO_MAX_VOLUME (1 << _SYS_AUDIO_MAX_VOLUME_LOG2)
24 #define _SYS_AUDIO_DEFAULT_VOLUME (_SYS_AUDIO_MAX_VOLUME / 2)
35 enum _SYSAudioLoopType {
39 _SYS_LOOP_EMULATED_PING_PONG = 2,
42 struct _SYSAudioModule {
53 struct _SYSXMPattern {
59 struct _SYSXMInstrument {
60 struct _SYSAudioModule sample;
62 int8_t relativeNoteNumber;
65 uint32_t volumeEnvelopePoints;
66 uint8_t nVolumeEnvelopePoints;
67 uint8_t volumeSustainPoint;
68 uint8_t volumeLoopStartPoint;
69 uint8_t volumeLoopEndPoint;
75 uint16_t volumeFadeout;
79 uint32_t patternOrderTable;
80 uint16_t patternOrderTableSize;
81 uint8_t restartPosition;
90 uint8_t frequencyTable;