Files
SpaghettiKart/src/audio/seqplayer.h
T
Tyler McGavran e9415164bb Lots and lots of audio code copied from SM64 (#270)
* Lots of audio decomp

* effects and playback are 100% matched

* Took some notes from the SM64 Makefile to get the right compiler
 options for a couple files

* Added the audio files to rename_symbol utility

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2022-11-06 08:24:24 -07:00

42 lines
1.9 KiB
C

#ifndef AUDIO_SEQPLAYER_H
#define AUDIO_SEQPLAYER_H
#include <PR/ultratypes.h>
#include "audio/internal.h"
#define PORTAMENTO_IS_SPECIAL(x) ((x).mode & 0x80)
#define PORTAMENTO_MODE(x) ((x).mode & ~0x80)
#define PORTAMENTO_MODE_1 1
#define PORTAMENTO_MODE_2 2
#define PORTAMENTO_MODE_3 3
#define PORTAMENTO_MODE_4 4
#define PORTAMENTO_MODE_5 5
void sequence_channel_init(struct SequenceChannel *seqChannel);
s32 seq_channel_set_layer(struct SequenceChannel *seqChannel, s32 layerIndex);
void seq_channel_layer_disable(struct SequenceChannelLayer *seqPlayer);
void seq_channel_layer_free(struct SequenceChannel *seqChannel, s32 layerIndex);
void sequence_channel_disable(struct SequenceChannel *seqPlayer);
struct SequenceChannel *allocate_sequence_channel(void);
void sequence_player_init_channels(struct SequencePlayer *seqPlayer, u16 channelBits);
void sequence_player_disable_channels(struct SequencePlayer *seqPlayer, u16 channelBits);
void sequence_channel_enable(struct SequencePlayer *seqPlayer, u8 channelIndex, void *script);
void sequence_player_disable(struct SequencePlayer* seqPlayer);
void func_800BEF2C(struct SequencePlayer* seqPlayer);
void audio_list_push_back(struct AudioListItem *list, struct AudioListItem *item);
void *audio_list_pop_back(struct AudioListItem *list);
void init_layer_freelist(void);
u8 m64_read_u8(struct M64ScriptState *state);
s16 m64_read_s16(struct M64ScriptState *state);
u16 m64_read_compressed_u16(struct M64ScriptState *state);
void seq_channel_layer_process_script(struct SequenceChannelLayer *layer);
u8 get_instrument(struct SequenceChannel *seqChannel, u8 instId, struct Instrument **instOut, struct AdsrSettings *adsr);
void set_instrument(struct SequenceChannel *seqChannel, u8 instId);
void sequence_channel_set_volume(struct SequenceChannel *seqChannel, u8 volume);
// void process_sequences(s32 iterationsRemaining);
void init_sequence_player(u32 player);
void init_sequence_players(void);
#endif // AUDIO_SEQPLAYER_H